27 lines
785 B
Python
27 lines
785 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
|