
    kg;~                     @   d dl mZ d dlmZ d dlmZ ddlmZmZm	Z	m
Z
mZ d Zd Zd Zd d	lmZmZ d d
lmZmZmZmZmZ ddlm	Z	mZmZmZmZmZmZmZm
Z
 d Zd d	lmZmZ d dlmZmZmZmZ ddlm
Z
mZmZmZmZmZmZ d Zd dlmZ d dlmZmZmZmZmZ ddlm
Z
mZmZmZmZmZ d"dZd"dZd Zd d	lmZmZ ddlmZmZmZmZmZmZm
Z
 d Z d dlmZm!Z! d dl"m#Z# ddlmZmZmZmZmZm$Z$ d Z%d dl"m#Z# ddlm
Z
 d Z&d Z'd dl(Z(d dl"m#Z# d dl)m*Z* d d l+m,Z, e,d!        Z-y)#    )model_to_dict)render)Q   )SeasonReplayedgame
TeamseasonPlayerregisterReallifeconferencec                 v    t         j                  j                         }d|i}t        |       t	        | d|      S )Nplayerszstats/front_page.html)r
   objectsallprintr   )requestr   contexts      $/var/www/djangounited/stats/views.py
front_pager      s7    $$((*G'"G	'N'2G<<    c                 b    d| v r*t        | j                  dd            }|dk\  rd| S d| S | S )zAConvert '96p' to '1996' and '05p' to '2005' for display purposes.p `   1920)intreplace)year	base_years     r   format_playoff_yearr       sD    
d{S"-.	?	{##	{##Kr   c                 N   | j                   j                  d      }t        j                  j	                  dd      j                         }|rt        j                  j                  |      }t        j                  j                  |      D ci c]&  }|j                  |j                  |j                  d( }}t        j                  j                         D ci c]  }|j                  |j                   }}n"t        j                  j                         }i }i }i }|D ]  }	|	j                   df|	j"                  dffD ]  \  }
}|j                  |
i       }|j                  d      }|j                  |d	      }||vri ||<   |
||   vsL|
|j                  dd
|
       ddddddddddddddddddddddddd||   |
<    |	j                   |	j$                  |	j&                  df|	j"                  |	j&                  |	j$                  dffD ]  \  }
}}}|j                  |j                  |
i       j                  d      d	      }||   |
   d   dxx   |z  cc<   ||   |
   d   dxx   |z  cc<   ||   |
   |   dxx   |z  cc<   ||   |
   |   dxx   |z  cc<    |j                  |j                  |	j                   i       j                  d      d	      }|j                  |j                  |	j"                  i       j                  d      d	      }|	j$                  |	j&                  kD  r||   |	j                      d   dxx   dz  cc<   ||   |	j                      d   dxx   dz  cc<   ||   |	j                      d   dxx   dz  cc<   ||   |	j                      d   dxx   dz  cc<   ||   |	j"                     d   dxx   dz  cc<   ||   |	j"                     d   dxx   dz  cc<   |	j$                  |	j&                  k  r||   |	j"                     d   dxx   dz  cc<   ||   |	j"                     d   dxx   dz  cc<   ||   |	j"                     d   dxx   dz  cc<   ||   |	j"                     d   dxx   dz  cc<   ||   |	j                      d   dxx   dz  cc<   ||   |	j                      d   dxx   dz  cc<   ||   |	j                      d   dxx   dz  cc<   ||   |	j                      d   dxx   dz  cc<   ||   |	j                      d   dxx   dz  cc<   ||   |	j                      d   dxx   dz  cc<   ||   |	j"                     d   dxx   dz  cc<   ||   |	j"                     d   dxx   dz  cc<   ||   |	j"                     d   dxx   dz  cc<   ||   |	j"                     d   dxx   dz  cc<    |j)                         D ]%  \  }}|j	                         D ]  }|d   d   |d   d   z
  |d   d<   |d   d   |d   d   z
  |d   d<   |d   d   |d   d   z
  |d   d<   |d   d   |d   d   z   |d   d   z   |d   d<   |d   d   |d   d   z   |d   d   z   |d   d<   |d   d   |d   d   z   |d   d   z   |d   d<   |d   d   |d   d   z  |d   d<   |d   d   |d   d   z  |d   d<   |d   d   |d   d   z  |d   d<    t+        |j	                         d d      ||<   ( t-        | d|||d      S c c}w c c}w ) Nseason	year_codenamer   )r$   conf_idTFr&   zUnknown ConferencezTeam r   )winsdrawslossespoints	goals_forgoals_against	goal_diff)team_id	team_nametotalhomeawayr1   r2   r0   r+   r,   r'   r   r*      r)   r(   r-   games_playedpoints_per_gamec                 0    | d   d   | d   d   | d   d   fS )Nr0   r*   r'   r-    )xs    r   <lambda>zstandings.<locals>.<lambda>}   s)    1W:h/7F1CQwZP[E\] r   )keyreversezstats/standings.html)seasonsselected_seasonstandings_by_conference)GETgetr   r   valuesdistinctr   filterr	   r.   r$   r&   r   r   idnonehome_idaway_id
home_score
away_scoreitemssortedr   )r   r=   r<   gamestteamscconferencesr>   gamer.   is_home	team_infor&   	conf_namer+   r,   	home_awayhome_team_confaway_team_confteams                        r   	standingsrY      sZ   kkooh/O nn##K8AACG $$+++A  ''..O.D
 II199==
 

 #5"<"<"@"@"B
ADD!&&L
 
 $$))+ ! <Y"&,,!5e7L M 	GW		'2.ImmI.G#1EFI 7757'	25i@@&!*vwi7H!I&'!qA\]pq  AB  C%&a1[\op  @A  B%&a1[\op  @A  B?'	27;	& \\4??DOOVD\\4??DOOVD=
 	e8GYy $		'2(>(B(B9(MOcdI#I.w7@MQZZM#I.w7@QUbbQ#I.w7	B;OS\\O#I.w7	B?SWddS	e %4<<)D)H)H)SUij$4<<)D)H)H)SUij??T__,#N3DLLA'J6RVWWR#N3DLLA'J8TXYYT#N3DLLA&I&QUVVQ#N3DLLA&I(SWXXS#N3DLLA'J8TXYYT#N3DLLA&I(SWXXS__t.#N3DLLA'J6RVWWR#N3DLLA'J8TXYYT#N3DLLA&I&QUVVQ#N3DLLA&I(SWXXS#N3DLLA'J8TXYYT#N3DLLA&I(SWXXS $N3DLLA'J7SWXXS#N3DLLA'J8TXYYT#N3DLLA&I'RVWWR#N3DLLA&I(SWXXS#N3DLLA'J7SWXXS#N3DLLA'J8TXYYT#N3DLLA&I'RVWWR#N3DLLA&I(SWXXSy<Y~ 499; 
	5LLN 		dD)-g{)Cd7mTcFd)dDM+&(,V[(ADLQ`Da(aDL%(,V[(ADLQ`Da(aDL%,0M&,ADMRZD[,[^bcj^kls^t,tDM.)+/<+?$v,xBX+X[_`f[gho[p+pDL(+/<+?$v,xBX+X[_`f[gho[p+pDL(/3G}X/FgWeIf/fDM+,.26l8.DtF|TbGc.cDL*+.26l8.DtF|TbGc.cDL*+		d .4LLN].
	*
$ '1*#:4  A

s   +\\")r   get_object_or_404)CountSumAvgMaxr   )	r	   r   Goals
YellowcardRedcardKeepergamesPlayerteamseasonReallifeteamr
   c                    t        t        ||      }t        j                  j	                         D ci c]  }|j
                  |j                   }}t        j                  j                  |      j                  t        |      t        |      z        }t        j                  j	                         D ci c](  }|j                  |j                   d|j                   * }}i }	|D ]  }
t        j                  j                  |||
j
                        }|D cg c]A  }|j                  |j                  |j                  d      |j                   |j"                  dC c}|	|
j
                  <    t$        j                  j                  ||	      j'                  d
d      }t        j                  j                  |      D ci c](  }|j                  |j                   d|j                   * }}g }|D ]  }t        j                  j                  |||      j)                         }t        j                  j                  |||d      j)                         }t*        j                  j                  |||      j)                         }t,        j                  j                  |||      j)                         }|j/                  ||j                  |d      ||||d        t0        j                  j                  ||	      }i }|D ]  }
|
j2                  |k(  r|
j4                  |
j6                  }}n|
j6                  |
j4                  }}d}||kD  rd}n||k  rd}|j                  |
j
                        }|j9                         s|j;                  t=        d            d   }|j                  |      j?                         }|D ]  }|j                  |vr=|j                  |j                  |j                  d      dddddddd	||j                  <   ||j                     dxx   |j@                  z  cc<   ||j                     dxx   |jB                  z  cc<   ||k(  rZ|dk(  r||j                     dxx   dz  cc<   n:|dk(  r||j                     dxx   dz  cc<   n||j                     dxx   dz  cc<   |dk(  s||j                     d xx   dz  cc<     |jE                         D ]  }|d   dkD  s|d   |d   d!z  z  |d"<    i }|D ]  }
t0        j                  j                  ||
j
                  |
j2                  #      }t0        j                  j                  ||
j
                  |
jF                  #      } |D !cg c]+  }!|!j                  |j                  |!j                  d      d$- }"}!| D !cg c]+  }!|!j                  |j                  |!j                  d      d$- }#}!|"r|"nd dd$g|#r|#nd dd$gd%||
j
                  <    i }$i }%|D ]  }
t*        j                  j                  |||
j
                        }&t,        j                  j                  |||
j
                        }'|&D (cg c]6  }(|(j                  |j                  |(j                  d      |(j                   d&8 c}(|$|
j
                  <   |'D (cg c]6  }(|(j                  |j                  |(j                  d      |(j                   d&8 c}(|%|
j
                  <    tI        |       tK        | d'||||	|$|%|tM        |jE                               ||d(
      S c c}w c c}w c c}w c c}w c c}!w c c}!w c c}(w c c}(w ))N)r.   r   r%   )rF   )rG    )r   r.   
game_id_idUnknown)	player_idplayer_nameminutepenalty_kick)r   r.   register_idTflat)player_id__in)r   ri   r.   r   )r   ri   r.   rl   )ri   rj   total_goalspenalty_goalstotal_yellow_cardstotal_red_cardsdrawwinloss)rg   minutesminutes__max)rx   r   )	ri   rj   total_minutestotal_goals_allowedgaa
total_winstotal_lossestotal_drawstotal_shutoutsrz   r{   r}   r~   r   r        V@r|   r   rg   r.   ri   rj   )r1   r2   )ri   rj   rk   zstats/team_detail.html)
rX   r"   rL   goals_by_gameyellow_cards_by_gamered_cards_by_gameplayer_statsgoalie_stats	team_abbrgame_goalkeepers)'rZ   r	   rd   r   r   rD   abbrevr   rC   r   r
   ri   	firstnamelastnamer_   r@   rk   rl   rc   values_listcountr`   ra   appendrb   rF   rH   rI   exists	aggregater^   firstrx   goalsrA   rG   r   r   list))r   r.   r"   rX   rM   r   rL   r   all_player_namesr   rQ   r   goalr   player_namesr   ri   rq   rr   rs   rt   goalie_stats_rawr   
team_score	opp_scoreresultgame_goaliesmax_minutesprimary_goaliegoalier   home_goaliesaway_goaliesghome_goalie_listaway_goalie_listr   r   yellow_cards	red_cardscards)                                            r   team_detailr      s   ZvFD *6)=)=)A)A)CDAqxxDID   ''V'4;;Ag<NQR[bQc<cdE M[LbLbLfLfLhiq}Aajj\%BBii M 
$$&'dgg$V "
 ..9I9M9Mdnn^g9htxtt  RV  Rc  Rc  d"
dgg
 &&--67-KWWXelpWqG IWH^H^HeHet{HeH|}1AKKAKK=!**!>>}L} L 	mm**)U\*]cce,,&IW^mn,ouuw'//66Fiah6iooq!//00f	[b0ciik"'++IyA&*"4.
 	  #**11vw1O L 3J<<7"$(OOT__	J$(OOT__	J	!F)#F (..$''.B &00Y@PK)000EKKMN& J##<7%+%5%5'3'7'78H8H)'T)*/0 &'()'(*+
6L!1!12 V--.?6>>Q?V--./DEUE ^+$V%5%56|DID6)$V%5%56~F!KF$V%5%56}EJE > !1!123CDID=J+3Jl %%' ]/"Q&"#89VO=TW[=[\F5M]
  
"**11v$''[_[g[g1h"**11v$''[_[g[g1h
 "
 ++6F6J6J1;;Xa6bc
 
 "
 ++6F6J6J1;;Xa6bc
 
 )9$Tbk?l>m(8$Tbk?l>m%
!!
,  
!))00fgZ^ZaZa0bOO**TXT[T[*\	 %)
 ..9I9M9Mdnn^g9htxtt  A)
TWW% "&
 ..9I9M9Mdnn^g9htxtt  A&
$''"
 

 '3& 4.$\0023,6  k E j"
 ~v


&)

&
s0   ]9-] A]%-]*0]/
0]4;]9;]>)r\   r[   r]   r   )r
   rc   rb   r_   r`   ra   rd   c                 j	   t        t        |      }|j                  r(|j                   d|j                   d|j                   nd}t
        j                  j                         D ci c]  }|j                  |j                   }}t        j                  j                  |      }g }g }dddddddd}	g }
g }ddddd}dddddddd}dddddddd}ddddd}ddddd}|j                  rd|j                  v rt        j                  j                  |      }|j                  d	d
      j                         D ]  }|j                  |      }t!        |      |j#                  |j%                         j&                  d      |j)                  t+        d            d   xs d|j)                  t+        d            d   xs d|j)                  t+        d            d   xs d|j)                  t+        d            d   xs d|j)                  t+        d            d   xs dd|j                  dd      j-                         d	}|d   dkD  rt/        |d   |d   dz  z  d      |d<   d|v r0|j1                  |       |D ]  }|dk7  s	||xx   ||   z  cc<    d|j1                  |       |D ]  }|dk7  s	||xx   ||   z  cc<     |d   dkD  rt/        |d   |d   dz  z  d      |d<   |d   dkD  rt/        |d   |d   dz  z  d      |d<   |j                  d	d
      j                         D ]X  }t!        |      |j#                  |j                  |      j%                         j&                  d      t2        j                  j                  ||      j-                         t2        j                  j                  ||d !      j-                         t4        j                  j                  ||      j-                         t6        j                  j                  ||      j-                         d"}d|v r*|j1                  |       |D ]  }||xx   ||   z  cc<    1|
j1                  |       |D ]  }||xx   ||   z  cc<    [ t9        | d#|||||||
|||d$
      S c c}w )%N)ri   /rh   )rm   r   )r'   r)   r(   rx   goals_allowedr|   shutouts)r   pk_goalsr   r   
Goalkeeperr   Trn   r%   rv   win__sumrw   	loss__sumru   	draw__sumrx   minutes__sumr   
goals__sumZ   minutes__gter   )	r   rX   r'   r)   r(   rx   r   r|   r   r   r      r|   r   )ri   r   r   )ri   r   rl   )r   rX   r   r   r   r   zstats/player_detail.html)
playerdobregular_season_gk_statsplayoff_gk_statstotal_regular_gk_statstotal_playoff_gk_statsregular_season_statsplayoff_statstotal_regular_player_statstotal_playoff_player_stats)rZ   r
   yearofbirthmonthofbirth
dayofbirthrd   r   r   rD   r   rc   rC   positionrb   r   rB   r    r@   r   r.   r   r\   r   roundr   r_   r`   ra   r   )r   ri   r   r   rX   rN   team_seasonsr   r   total_gk_statsr   r   total_player_statsr   r   r   r   keeper_gamesr   season_gamesgk_statsr:   statss                          r   player_detailr   <  sF   ~CF PVOaOaV  !6#4#4"5Qv7I7I6J
KgpC /;.B.B.F.F.HIdTWWdkk!IEI $++22y2IL !1qQYZcdrstNM#$!QUVW '(1qQabklz{|&'1qQabklz{|+,!Q]^!_+,!Q]^!_ <6??:"**11I1F ,,V$,?HHJ 	ED'..D.9L+D1		,"4"4"6">">	J$..s5z::FK!&00V=kJOa%//F<[INQ'11#i.A.QVUV!-!7!7G!El!S!XWX(//Rq/IOOQ
H 	"Q&"'(AXiEX[_E_(`bc"dd{ ''11 ECe|.s3x}D3E (..x81 ECe|.s3x}D3E1	E: i(1,(-.D_.UYopyYz  ~B  ZB  /C  EF  )Gu%i(1,(-.D_.UYopyYz  ~B  ZB  /C  EF  )Gu% ((d(;DDF >'-IIl11t1<BBDLLiX]]))ID)IOOQ,,ytZ[,\bbd&..55	PT5U[[] //)$/OUUW
 $;  '1 >*3/5:=/> !''.1 >*3/5:=/>!>( '5#:,"8"8 4&&@&@8  c Js   (R0)r\   r[   r]   r   F)r
   r_   r`   ra   rb   rd   c                      | j                   j                  di |j                  |d      j                  t	        |            j                  d      d| S )z7Helper function to get top players in a given category.r.   r0   -totalNr7   )r   rC   rA   annotater[   order_by)modelfilter_kwargsgroup_by_fieldcount_fieldlimits        r   get_top_playersr     sP     	-}-			*	k*	+	(	FU	$r   c                     t        j                  j                  di | j                  dd      j	                  t        |            j                  d      d| S )z;Helper function to get top goalkeepers in a given category.ri   r.   r   r   Nr7   )rb   r   rC   rA   r   r\   r   )r   
stat_fieldr   s      r   get_top_goalkeepersr     sO     	""3]3	Y	'	J	(	(	FU	$r   c                 h   | j                   j                  dd       }t        t        j                  j                  dd      j                         d      }|j                  d       t        j                  j                         D ci c](  }|j                  |j                   d|j                   * }}t        j                  j                         D ci c]  }|j                  |j                   }}dd	lm} dd
lm} t(        j                  j+                  dd      }	i }
|	D ]D  }t-        |d         }|j                  |d   d      }||
v r|
|   j                  |       ?|g|
|<   F dd l}|j1                  d      }|j/                  |
       |
j3                         D ]N  \  }}dj5                  t        t7        |                  |
|<   t9        |
|          |dk(  ri }B|rd|ind|d   i}P t;        t        dd      t;        t        i |ddidd      t;        t<        |dd      t;        t>        |dd      tA        |d      tA        |d      tA        |d      tA        |tC        d      dz  tC        d      dz  z         tA        |d      tE        j                  jF                  d-i |dddj+                  dd      jI                  tK        dd            jM                  d      d d  tE        j                  jF                  d-i |j+                  d      jI                  tO        d!      tO        d      "      jG                  d#$      jI                  tC        d%      tC        d&      d'z  z  (      jM                  d)      d d  d*}tQ        | d+|r|n|d   |||||
d,      S c c}w c c}w ).Nr"   r   Trn   )r;   Careerrf   r   )Value)Concatrm   r.   rh   r   )indentz / ri   rD   rl   r   rv   ru   rw   r3   r   r   r   rg   )rB   r   r   
   rx   )rz   r{   i  )total_minutes__gter{   rz   r   )r|   r|   )r   r   r   r   gk_winsgk_draws	gk_losses	gk_pointsmost_goals_allowedmost_shutouts
lowest_gaazstats/leaders.html)r=   all_seasonsleaders_datar   r   player_teams_dictr7   ))r?   r@   rK   r_   r   r   rB   r   r
   r   ri   r   r   rd   rD   r   django.db.modelsr   django.db.models.functionsr   rc   rA   strpprintPrettyPrinterrJ   joinsetr   r   r`   ra   r   r   rb   rC   r   r[   r   r\   r   )r   r=   r   r   r   rM   r   r   r   player_teamsr   entryri   r/   r   pprN   r   r   s                      r   leadersr     s   kkooh5O 2262ENNPZ^_Kx  IWH^H^HbHbHde1AKKAKK=!**!>>eLe)5)=)=)A)A)CDAqxxDID&1 	  ''yA 
  7m,-	MM%	"2I>	))i(//	:,5;i(7  
		Q		'BII  .335 g	5',zz&U2D'E)$	*+h&M9HV_5vWbcdWeNfMg !{DI#E+Om+O^Q+OQ\^bc'
M;PTU$Wm[$O&}e<'v>(?(%1qyST}8TU1-I&&QQRqQVK+XE,>X?Xh% &&77VK X!)n$'L   VsV+X+,/0BT0IJ   Xe_Sb
"# LD '/.=?;q>"$$.2  U fDs   -N*N/)r   r_   r`   ra   rb   rd   r
   c                    t        t        |      }t        j                  j	                  |j
                        }t        j                  j	                  |j                        }t        j                  j                  |j                  ||j
                        }t        j                  j                  |j                  ||j                        }t        j                  j                  |j                  ||j
                        }t        j                  j                  |j                  ||j                        }t        j                  j                  |j                  ||j
                        }	t        j                  j                  |j                  ||j                        }
t        j                  j                  |j                  ||j
                        }t        j                  j                  |j                  ||j                        }t        j                  j                         D ci c](  }|j                  |j                    d|j"                   * c}g fd} ||dd        ||dd        ||dd        ||dd        ||	dd	        ||
dd	       j%                  d
        |D cg c]+  }|j                  j	                  |j                  d      d- }}|D cg c]+  }|j                  j	                  |j                  d      d- }}|||||d}t'        |       t)        | d|      S c c}w c c}w c c}w )N)rD   r   rf   c                     | D ]S  }j                  |j                  j                  |j                  d      |j                  ||t	        |dd      d       U y )Nrh   rl   r   )rk   rj   ri   rX   typerl   )r   rk   r@   ri   getattr)queryset
team_label
event_typeitemeventsplayer_caches       r   	add_eventzgame_detail.<locals>.add_event-  sW     	DMM+++//	J!^^"" 'na @ 	r   r1   r   r2   yellowredc                     | d   S )Nrk   r7   )es    r   r9   zgame_detail.<locals>.<lambda>?  s
    ak r   )r:   rh   r   )rQ   	home_team	away_teamr  home_goalkeepersaway_goalkeeperszstats/game_detail.html)rZ   r   rd   r   r@   rF   rG   r_   rC   r   r`   ra   rb   r
   r   ri   r   r   sortr   r   )r   game_idrQ   r
  r  
home_goals
away_goalshome_yellowsaway_yellows	home_reds	away_redsr   r   r   r  r   r  r  r   r  r  s                      @@r   game_detailr    s   \g6D$$((DLL(9I$$((DLL(9I%%499RVR^R^%_J%%499RVR^R^%_J%%,,$))Y]YeYe,fL%%,,$))Y]YeYe,fL&&DII'SWS_S_&`I&&DII'SWS_S_&`I&&--499Z^ZfZf-gL&&--499Z^ZfZf-gLHVH^H^HbHbHde1AKKAKK=!**!>>eLF	 j&&)j&&)lFH-lFH-i'i'
KK)K*  kk,2B2B1;;PY2Z[   kk,2B2B1;;PY2Z[  ,,G 
'N'3W==c f6
s   8-M0M90M)r   redirect)JsonResponse)r   r_   rb   r`   ra   Regulationpenaltyc           
         | j                   dk(  rM| j                  j                  d      }| j                  j                  d      }| j                  j                  d      }| j                  j                  d      }| j                  j                  dd      }| j                  j                  dd      }t        j                  j                  ||||||d	
      \  }}t        | j                  j                  d      | j                  j                  d      | j                  j                  d      | j                  j                  d            D ]H  \  }	}
}}t        j                  j                  |j                  |	|
t        |      t        |      |       J t        | j                  j                  d      | j                  j                  d      | j                  j                  d      | j                  j                  d            D ]H  \  }}	}}t        j                  j                  |j                  t        |      |	|t        |      |       J t        | j                  j                  d      | j                  j                  d      | j                  j                  d      | j                  j                  d            D ]H  \  }}	}}t        j                  j                  |j                  t        |      |	|t        |      |       J t        | j                  j                  d      | j                  j                  d      | j                  j                  d            D ]=  \  }}	}
t        j                  j                  |j                  t        |      |	|
|       ? t        | j                  j                  d      | j                  j                  d      | j                  j                  d             D ]=  \  }}	}
t        j                  j                  |j                  t        |      |	|
|       ? t!        d!|j                  d"      S t!        d#d$d%d&'      S )(NPOSTr"   	game_dater
  r  final_home_scorer   final_away_score)rH   rI   date)r   rF   rG   defaultszkeeper_team[]zkeeper_player[]zkeeper_minutes[]zkeeper_goals_allowed[])r  r.   ri   rx   r   r   zgoal_minute[]zgoal_team[]zgoal_scorer[]zgoal_penalty[])r  rk   r.   ri   rl   r   zpenalty_minute[]zpenalty_team[]zpenalty_scorer[]zpenalty_scored[])r  rk   r.   ri   r   r   zyellow_minute[]zyellow_team[]zyellow_player[])r  rk   r.   ri   r   zred_minute[]z
red_team[]zred_player[]success)statusr  errorInvalid requestr"  message  r"  )methodr  r@   r   r   update_or_createzipgetlistrb   createrD   r   r_   r  r`   ra   r  )r   r"   r  r
  r  r  r  rQ   createdrX   r   rx   r   rk   scorerpenaltyscoreds                    r   
save_statsr2  a  s   ~~!!(+LL$$[1	LL$$[1	LL$$[1	"<<++,>B"<<++,>B %,,==I$4DT^gh > 
g 58$$_5$$%67$$%78$$%=>	5@ 	0D&'=
 &&GC,>V ' 	 .1$$_5$$]3$$_5$$%56	.8 	)FD&'
 MM  FTV \ ! 	 -0$$%78$$%56$$%78$$%78	-: 	(FD&&
 %%,,FT s6{ - 	 %($$%67$$_5$$%67%9 	 FD& %%FTV & 		 %($$^4$$\2$$^4%6 	 FD& OO""FTV # 		 yTWWEFF77HIRUVVr   )r
   c                     t         j                  j                  |      j                  ddd      }|D cg c]  }|d   |d    d|d    d }}t	        d|i      S c c}w )N)r.   ri   r   r   rf   )rD   r$   r   )r
   r   rC   rA   r  )r   r.   r   r   players_lists        r   get_players_by_teamr5    ss    $$++G+<CCKQ\^hiGahi\]1[>an5EQq}o3VWiLiL122 js   Ac                 X    t        | ddt        j                  j                         i      S )Nzstats/updated_frontend.htmlr<   )r   r   r   r   )r   s    r   record_game_statsr7    s$    '89fnnFXFXFZ:[\\r   N)
connection)csrf_exemptc                 F   | j                   dk(  r	 t        j                  | j                        }|j	                  d      |j	                  d      |j	                  d      |j	                  d      |j	                  d      |j	                  d      g}t        j                         5 }|D ]  }|s|j                  |        	 d d d        t        dd	i      S t        d
ddd      S # 1 sw Y   &xY w# t        $ r#}t        d
t        |      dd      cY d }~S d }~ww xY w)Nr  rQ   keepersr   r   r   	penaltiesr"  r!  r#  r%  r'  r(  r$  )r)  jsonloadsbodyr@   r8  cursorexecuter  	Exceptionr   )r   dataqueriesr@  queryr	  s         r   process_queriesrF    s	   ~~	T::gll+D #!(%%G ""$ .$ .Eu-..
  9 566
 77HIRUVV. .  	T7s1v FsSS	Ts<   BC4 &C(/C(C4 (C1-C4 4	D =DD D )r   ).django.formsr   django.shortcutsr   r   r   modelsr   r   r	   r
   r   r   r    rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   r   r   r   r   r   r   r  r  django.httpr  r  r2  r5  r7  r=  	django.dbr8  django.views.decorators.csrfr9  rF  r7   r   r   <module>rM     s    & #  X X=m^ 7 4 4  
eN 7 / /  
dL $ 2 2 Y YZx 7 g g gC>L . $ \ \GWR % "3
]  $   4W Wr   