o
    g                     @   s6   d dl mZ ddlmZmZmZ G dd dejZdS )    )forms   )SeasonPlayerregisterReallifeteamc                       s  e Zd Zejdg ddZejdg ddZejdg ddZejdej	ddZ
ejdg ddZejd	g ddZejd
dddZejddddZejdddZejdddZejdddddZejdg ddZejdg ddZejdddZejdddddZejdg ddZejdg ddZejdddddZejdg ddZejdg ddZejdddddZejd g ddZejd!g ddZejd"g ddZ ejd#ddZ! fd$d%Z" fd&d'Z#  Z$S )(GameStatsFormr   T)labelchoicesrequiredz	Home Teamz	Away Teamz	Game Date)r   widgetr
   zHome GoalkeeperzAway Goalkeeperz
Home Scorer   )r   	min_valuer
   z
Away ScorezHome Used Two GoalkeepersF)r   r
   zAway Used Two GoalkeeperszGoal Minuter   x   )r   r   	max_valuer
   z	Goal TeamzGoal ScorerzPenalty KickzYellow Card MinutezYellow Card TeamzYellow Card PlayerzRed Card MinutezRed Card TeamzRed Card PlayerzPenalty MinutezPenalty TeamzPenalty ScorerzPenalty KeeperzPenalty Scoredc                    s  t  j|i | dd tj D | jd _dd tj D | jd _dd tj D | jd _dd tj D  | jd	 _ | jd
 _ | jd _| jd _dd tj D }|| jd _|| jd _|| jd _|| jd _dd tjj	ddD | jd _d S )Nc                 S      g | ]}|j |jfqS  )	year_codename).0sr   r   )/root/dustats/djangounited/stats/forms.py
<listcomp>*       z*GameStatsForm.__init__.<locals>.<listcomp>seasonc                 S   r   r   idr   r   tr   r   r   r   +   r   	home_teamc                 S   r   r   r   r   r   r   r   r   ,   r   	away_teamc                 S   r   r   r   r   r   r   r   r   -   r   	goal_teamyellow_teamred_teampenalty_teamc                 S   0   g | ]}|j |jp
d |jrd|j nd  fqS   	player_id	firstnamelastnamer   pr   r   r   r   /      0 goal_scoreryellow_player
red_playerpenalty_scorerc                 S   r#   r$   r'   r+   r   r   r   r   4   r-   
Goalkeeper)positionpenalty_keeper)
super__init__r   objectsallfieldsr	   r   r   filter)selfargskwargsplayers	__class__r   r   r6   '   s   @$zGameStatsForm.__init__c                    s,   t   }|d|dkrtd|S )Nr   r   z'Home and away teams cannot be the same.)r5   cleangetr   ValidationError)r;   cleaned_datar?   r   r   rA   6   s   

zGameStatsForm.clean)%__name__
__module____qualname__r   ChoiceFieldr   r   r   	DateFieldSelectDateWidget	game_datehome_goalkeeperaway_goalkeeperIntegerFieldfinal_home_scorefinal_away_scoreBooleanFieldhome_two_keepersaway_two_keepersgoal_minuter   r.   goal_penaltyyellow_minuter    r/   
red_minuter!   r0   penalty_minuter"   r1   r4   penalty_goalr6   rA   __classcell__r   r   r?   r   r      s8    r   N)djangor   modelsr   r   r   Formr   r   r   r   r   <module>   s    