36 lines
1.8 KiB
Python
36 lines
1.8 KiB
Python
from django import forms
|
|
from .models import Event, EventTag
|
|
|
|
class EventForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Event
|
|
fields = [
|
|
'title', 'description', 'start_datetime', 'end_datetime',
|
|
'timezone', 'location_name', 'location_address', 'city', 'state',
|
|
'is_online', 'online_url', 'visibility', 'group', 'capacity',
|
|
'cover_image', 'tags'
|
|
]
|
|
labels = {
|
|
'title': 'Session Title',
|
|
'description': 'Session Description',
|
|
'is_online': 'This is an online session',
|
|
'group': 'Squad',
|
|
}
|
|
widgets = {
|
|
'start_datetime': forms.DateTimeInput(attrs={'type': 'datetime-local', 'class': 'form-control'}),
|
|
'end_datetime': forms.DateTimeInput(attrs={'type': 'datetime-local', 'class': 'form-control'}),
|
|
'description': forms.Textarea(attrs={'rows': 4, 'class': 'form-control'}),
|
|
'title': forms.TextInput(attrs={'class': 'form-control'}),
|
|
'timezone': forms.TextInput(attrs={'class': 'form-control'}),
|
|
'location_name': forms.TextInput(attrs={'class': 'form-control'}),
|
|
'location_address': forms.TextInput(attrs={'class': 'form-control'}),
|
|
'city': forms.TextInput(attrs={'class': 'form-control'}),
|
|
'state': forms.TextInput(attrs={'class': 'form-control'}),
|
|
'online_url': forms.URLInput(attrs={'class': 'form-control'}),
|
|
'visibility': forms.Select(attrs={'class': 'form-select'}),
|
|
'group': forms.Select(attrs={'class': 'form-select'}),
|
|
'capacity': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
'cover_image': forms.FileInput(attrs={'class': 'form-control'}),
|
|
'tags': forms.SelectMultiple(attrs={'class': 'form-select'}),
|
|
}
|