Files
benchcoach-django/teamsnap/forms.py
2022-05-18 14:24:05 -05:00

120 lines
3.6 KiB
Python

from django import forms
from .models import Team, Location, Opponent, Event, Member
from django.forms import modelformset_factory, formset_factory, inlineformset_factory
select_kwargs = {
'attrs':{'class': 'form-control form-control-sm'}
}
text_input_kwargs = {
'attrs':{"readonly": "readonly", 'class':'form-control form-control-sm'}
}
class MemberForm(forms.ModelForm):
class Meta:
model = Member
fields = ('first_name', 'last_name', 'benchcoach_object')
labels = {
'benchcoach_object': 'BenchCoach Link',
}
widgets = {
"benchcoach_object": forms.Select(**select_kwargs),
"first_name": forms.TextInput(**text_input_kwargs),
"last_name": forms.TextInput(**text_input_kwargs),
}
class EventForm(forms.ModelForm):
class Meta:
model = Event
fields = ('formatted_title', 'start_date', 'benchcoach_object')
labels ={
'formatted_title':"Title",
'benchcoach_object':'BenchCoach Link',
'start_date':'Date/Time'
}
widgets = {
"benchcoach_object": forms.Select(**select_kwargs),
"formatted_title":forms.TextInput(**text_input_kwargs),
"start_date": forms.DateTimeInput(**text_input_kwargs)
}
class TeamForm(forms.ModelForm):
class Meta:
model = Team
fields = ('name', 'benchcoach_object')
labels ={
'benchcoach_object':'BenchCoach Link',
}
widgets = {
"name":forms.TextInput(**text_input_kwargs),
"benchcoach_object": forms.Select(**select_kwargs)
}
class OpponentForm(forms.ModelForm):
class Meta:
model = Opponent
fields = ('name', 'benchcoach_object')
labels ={
'benchcoach_object':'BenchCoach Link',
}
widgets = {
"name":forms.TextInput(**text_input_kwargs),
"benchcoach_object": forms.Select(**select_kwargs)
}
class LocationForm(forms.ModelForm):
class Meta:
model = Location
fields = ('name', 'benchcoach_object')
labels ={
'benchcoach_object':'BenchCoach Link',
}
widgets = {
"name":forms.TextInput(**text_input_kwargs),
"benchcoach_object": forms.Select(**select_kwargs)
}
class LineupEntryForm(forms.Form):
member = None
availability = None
lineup_entry = None
event_lineup_entry_id = forms.Field(required=False)
event_lineup_id = forms.Field(required=False)
event_id = forms.Field()
member_id = forms.Field()
position_only = forms.BooleanField(initial=False, required=False)
sequence = forms.IntegerField(required=False)
label = forms.ChoiceField(required=False, choices=[
("", "--"),
("P","P"),
("C","C"),
("1B","1B"),
("2B", "2B"),
("3B", "3B"),
("SS", "SS"),
('LF','LF'),
('CF','CF'),
('RF','RF'),
('DH','DH'),
('DR','DR'),
('EH','EH')
],
widget=forms.Select(
attrs = {'onchange' : "colorPositions();"}
)
)
class EventChooseForm(forms.Form):
event_id = forms.ChoiceField()
# checked = forms.BooleanField(required=False)
# def __init__(self, events, *args, **kwargs):
# super(EventChooseForm, self).__init__(*args, **kwargs)
# self.fields['foo'].choices = [e.data['id'] for e in events]
LineupEntryFormset = formset_factory(LineupEntryForm, can_delete=True, can_order=True, extra=0)