dsite/timer/forms.py

31 lines
731 B
Python

from django import forms
import timer.models
class OfficeHoursForm(forms.ModelForm):
class Meta:
model = timer.models.OfficeHours
fields = ['user', 'begins_at', 'ends_at']
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user')
return super().__init__(*args, **kwargs)
def full_clean(self):
if not self.user.is_authenticated:
raise forms.ValidationError('Invalid User.')
return
def save(self):
begins_at = timer.models.OfficeHours.parse_time_str(self.data.get('begins_at'))
user = self.user
obj = timer.models.OfficeHours.objects.create(
user=user,
begins_at=begins_at,
ends_at=timer.models.OfficeHours.get_ends_at(begins_at))
return obj