55 lines
3.0 KiB
Python

from django import forms
from .models import Event, Training, Game, GameResult
from clubs.models import Team
class EventForm(forms.ModelForm):
start_time = forms.DateTimeField(input_formats=['%d.%m.%Y %H:%M', '%Y-%m-%dT%H:%M'], widget=forms.DateTimeInput(format='%d.%m.%Y %H:%M', attrs={'type': 'datetime-local'}))
end_time = forms.DateTimeField(input_formats=['%d.%m.%Y %H:%M', '%Y-%m-%dT%H:%M'], widget=forms.DateTimeInput(format='%d.%m.%Y %H:%M', attrs={'type': 'datetime-local'}), required=False)
class Meta:
model = Event
fields = ['title', 'description', 'start_time', 'end_time', 'location_address', 'team']
class TrainingForm(forms.ModelForm):
start_time = forms.DateTimeField(input_formats=['%d.%m.%Y %H:%M', '%Y-%m-%dT%H:%M'], widget=forms.DateTimeInput(format='%d.%m.%Y %H:%M', attrs={'type': 'datetime-local'}))
end_time = forms.DateTimeField(input_formats=['%d.%m.%Y %H:%M', '%Y-%m-%dT%H:%M'], widget=forms.DateTimeInput(format='%d.%m.%Y %H:%M', attrs={'type': 'datetime-local'}), required=False)
class Meta:
model = Training
fields = ['title', 'description', 'start_time', 'end_time', 'location_address', 'team']
class GameForm(forms.ModelForm):
start_time = forms.DateTimeField(input_formats=['%d.%m.%Y %H:%M', '%Y-%m-%dT%H:%M'], widget=forms.DateTimeInput(format='%d.%m.%Y %H:%M', attrs={'type': 'datetime-local'}))
end_time = forms.DateTimeField(input_formats=['%d.%m.%Y %H:%M', '%Y-%m-%dT%H:%M'], widget=forms.DateTimeInput(format='%d.%m.%Y %H:%M', attrs={'type': 'datetime-local'}), required=False)
is_home_game = forms.BooleanField(required=False)
class Meta:
model = Game
fields = ['title', 'description', 'start_time', 'end_time', 'location_address', 'team', 'opponent', 'meeting_minutes_before_game', 'season', 'min_players', 'is_home_game']
class OpenGameForm(forms.Form):
teams = forms.ModelMultipleChoiceField(queryset=Team.objects.none(), widget=forms.CheckboxSelectMultiple)
def __init__(self, *args, **kwargs):
club = kwargs.pop('club')
super().__init__(*args, **kwargs)
self.fields['teams'].queryset = Team.objects.filter(club=club)
class GameResultForm(forms.ModelForm):
class Meta:
model = GameResult
fields = []
def __init__(self, *args, **kwargs):
game = kwargs.pop('game')
super().__init__(*args, **kwargs)
if game.is_home_game:
home_team = game.team.name
guest_team = game.opponent
else:
home_team = game.opponent
guest_team = game.team.name
for i in range(1, game.number_of_innings + 1):
self.fields[f'inning_{i}_home'] = forms.IntegerField(label=f'Inning {i} ({home_team})', required=False, widget=forms.NumberInput(attrs={'class': 'inning-score-input'}))
self.fields[f'inning_{i}_guest'] = forms.IntegerField(label=f'Inning {i} ({guest_team})', required=False, widget=forms.NumberInput(attrs={'class': 'inning-score-input'}))