Private
Public Access
1
0

Uploading files

This commit is contained in:
sanderroosendaal
2016-10-30 17:39:32 +01:00
parent c135e98d61
commit 3eed3cc3e7
2164 changed files with 3126790 additions and 0 deletions

152
cvkbrno/forms.py Normal file
View File

@@ -0,0 +1,152 @@
# -*- coding: utf-8 -*-
from django import forms
from cvkbrno.models import Outing,Member,Boat,BoatCategory,Races,MemberWork
from django.contrib.auth.models import User
from django.forms import ModelForm
from models import Outing
from django.contrib.admin import widgets
from django.contrib import admin
from django.utils import timezone,translation
from django.forms.widgets import CheckboxSelectMultiple
from django.forms.models import ModelMultipleChoiceField
from django.utils.translation import ugettext_lazy as _
import datetime
def is_future_date_validator(value):
if value < timezone.now().date():
raise forms.ValidationError("{0} is not a future date.".format(value))
# forms here
class CustomSelectMultiple(ModelMultipleChoiceField):
def label_from_instance(self, obj):
return "%s" %(obj.name)
class OutingForm(ModelForm):
class Meta:
model = Outing
fields = ['distance']
class OutingCloseForm(ModelForm):
class Meta:
model = Outing
fields = ['distance','comment']
widgets = {
'comment': forms.Textarea,
}
class DateInput(forms.DateInput):
input_type = 'date'
class TimeInput(forms.TimeInput):
input_type = 'time'
class OutingReserveForm(ModelForm):
startdate = forms.DateField(widget=DateInput(),label = _("Start Date"),
validators=[is_future_date_validator])
starttime = forms.TimeField(widget=TimeInput(format='%H:%M'),
label = _("Start Time"))
endtime = forms.TimeField(widget=TimeInput(format='%H:%M'),
label = _("End Time"))
class Meta:
model = Outing
fields = ['distance']
class RacesEditForm(ModelForm):
startdate = forms.DateField(widget=DateInput(),label = _("Start Date"),
)
starttime = forms.TimeField(widget=TimeInput(format='%H:%M'),
label = _("Start Time"))
enddate = forms.DateField(widget=DateInput,label = _("End Date"),
)
endtime = forms.TimeField(widget=TimeInput(format='%H:%M'),
label = _("End Time"))
def clean(self):
cleaned_data = super(RacesEditForm, self).clean()
enddate = cleaned_data.get('enddate')
endtime = cleaned_data.get('endtime')
startdate = cleaned_data.get('startdate')
starttime = cleaned_data.get('starttime')
if startdate and starttime:
startdatetime = (str(startdate) + ' ' + str(starttime))
startdatetime = datetime.datetime.strptime(startdatetime,"%Y-%m-%d %H:%M:%S")
startdatetime = timezone.make_aware(startdatetime)
if timezone.now() >= startdatetime:
msg = _("Start date/time must be in the future")
self.add_error('startdate', msg)
self.add_error('starttime', msg)
if enddate and endtime:
enddatetime = (str(enddate) + ' ' + str(endtime))
enddatetime = datetime.datetime.strptime(enddatetime,"%Y-%m-%d %H:%M:%S")
enddatetime = timezone.make_aware(enddatetime)
if startdatetime >= enddatetime:
msg = _("End date/time must be after Start date/time")
self.add_error('enddate', msg)
self.add_error('endtime', msg)
return cleaned_data
class Meta:
model = Races
fields = ['name','startdate','starttime','enddate','endtime','transportboats']
widgets = {
'transportboats': CheckboxSelectMultiple(),
}
class MemberEditForm(ModelForm):
class Meta:
model = Member
fields = ['status','contributions','categories','hoursworked']
widgets = {
'categories': CheckboxSelectMultiple(),
}
class UserEditForm(ModelForm):
email = forms.CharField(required=False)
class Meta:
model = User
fields = ['first_name','last_name','email']
class UserCreateForm(ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
email = forms.CharField(required=False)
class Meta:
model = User
fields = ['first_name','last_name','email','username','password']
class PassWordConfirmForm(forms.Form):
passwordconfirm = forms.CharField(widget=forms.PasswordInput(),
label="repeat your password")
class BoatEditForm(ModelForm):
class Meta:
model = Boat
fields = ['boatcode','boatname','categories',
'nrseats','status','comment']
widgets = {
'comment': forms.Textarea,
'categories': CheckboxSelectMultiple(),
}
class BoatCategoryEditForm(ModelForm):
class Meta:
model = BoatCategory
fields = ['name']
class MemberWorkCreateForm(ModelForm):
class Meta:
model = MemberWork
fields = ['date','name','hours','comment','worker']
widgets = {
'date': DateInput(),
'comment': forms.Textarea,
'worker': CheckboxSelectMultiple(),
}