diff --git a/timer/forms.py b/timer/forms.py
index 25a9ab9..bdf4591 100644
--- a/timer/forms.py
+++ b/timer/forms.py
@@ -8,4 +8,23 @@ class OfficeHoursForm(forms.ModelForm):
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 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
+
diff --git a/timer/templates/index.html b/timer/templates/index.html
index 0fcdec9..0a0253e 100644
--- a/timer/templates/index.html
+++ b/timer/templates/index.html
@@ -10,11 +10,14 @@
{% csrf_token %}
{% for f in form %}
+ {% if f.name == 'begins_at' %}
+ {% endif %}
{% endfor %}
+
{% endblock content %}
diff --git a/timer/urls.py b/timer/urls.py
index 164da41..4f658e4 100644
--- a/timer/urls.py
+++ b/timer/urls.py
@@ -1,4 +1,5 @@
from django.conf.urls import include, url
+# from django.core.urlresolvers import reverse
from django.urls import path
from rest_framework import routers
from timer import views
diff --git a/timer/views.py b/timer/views.py
index fdad16f..f164e2e 100644
--- a/timer/views.py
+++ b/timer/views.py
@@ -12,6 +12,7 @@ import timer.forms
import datetime
from django.utils.timezone import localtime
+from django.urls import reverse
class OfficeHoursAPI(CreateAPIView):
@@ -49,6 +50,21 @@ class OfficeHoursFormView(django.views.generic.FormView):
template_name = 'index.html'
form_class = timer.forms.OfficeHoursForm
+ def get_form_kwargs(self):
+ kwargs = super().get_form_kwargs()
+ kwargs['user'] = self.request.user
+ return kwargs
+
+ def post(self, request, *args, **kwargs):
+ form = self.form_class(**self.get_form_kwargs())
+ if form.is_valid():
+ form.save()
+
+ return super().post(request, *args, **kwargs)
+
+ def get_success_url(self):
+ return reverse('office-hours-page')
+
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
today_oh = timer.models.OfficeHours.objects.filter(begins_at__date=localtime().date()).last()