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',)