From 32da7873fa919a5c51339aa86c7bf7cea0998adc Mon Sep 17 00:00:00 2001 From: Christopher Charbonneau Wells Date: Sun, 10 Sep 2017 05:11:09 -0400 Subject: [PATCH] Add a timer edit flow. --- core/forms.py | 6 ++++-- core/templates/core/timer_detail.html | 8 ++++++-- core/templates/core/timer_form.html | 2 +- core/urls.py | 2 ++ core/views.py | 11 +++++++++++ 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/core/forms.py b/core/forms.py index c05dd401..b841f5c9 100644 --- a/core/forms.py +++ b/core/forms.py @@ -137,12 +137,14 @@ class TimerForm(forms.ModelForm): fields = ['name'] def __init__(self, *args, **kwargs): - self.user = kwargs.pop('user') + if 'user' in kwargs: + self.user = kwargs.pop('user') super(TimerForm, self).__init__(*args, **kwargs) def save(self, commit=True): instance = super(TimerForm, self).save(commit=False) - instance.user = self.user + if 'user' in self: + instance.user = self.user instance.save() return instance diff --git a/core/templates/core/timer_detail.html b/core/templates/core/timer_detail.html index 5f48c515..ed5a4be9 100644 --- a/core/templates/core/timer_detail.html +++ b/core/templates/core/timer_detail.html @@ -19,7 +19,7 @@ {% endif %}

- Created by {{ object.user }} + {{ timer }} created by {{ object.user }}

{% if perms.core.add_feeding %} @@ -49,7 +49,11 @@ {% endif %} {% if perms.core.change_timer %} - + + diff --git a/core/templates/core/timer_form.html b/core/templates/core/timer_form.html index 10667414..71fe6c85 100644 --- a/core/templates/core/timer_form.html +++ b/core/templates/core/timer_form.html @@ -28,7 +28,7 @@ {% endif %} {% endfor %} - + Cancel {% endblock %} \ No newline at end of file diff --git a/core/urls.py b/core/urls.py index fd73c0fc..98120636 100644 --- a/core/urls.py +++ b/core/urls.py @@ -49,6 +49,8 @@ urlpatterns = [ url(r'^timers/$', views.TimerList.as_view(), name='timer-list'), url(r'^timer/add/$', views.TimerAdd.as_view(), name='timer-add'), + url(r'^timer/(?P[0-9]+)/edit$', views.TimerUpdate.as_view(), + name='timer-update'), url(r'^timer/add/quick/$', views.TimerAddQuick.as_view(), name='timer-add-quick'), url(r'^timer/(?P[0-9]+)/$', views.TimerDetail.as_view(), diff --git a/core/views.py b/core/views.py index 16065216..4731c8cd 100644 --- a/core/views.py +++ b/core/views.py @@ -173,6 +173,17 @@ class TimerAdd(PermissionRequiredMixin, CreateView): return kwargs +class TimerUpdate(PermissionRequiredMixin, UpdateView): + model = Timer + permission_required = ('core.change_timer',) + form_class = TimerForm + success_url = '/timers' + + def get_success_url(self): + instance = self.get_object() + return '/timer/{}/'.format(instance.id) + + class TimerAddQuick(PermissionRequiredMixin, RedirectView): permission_required = ('core.add_timer',)