Add a timer edit flow.

This commit is contained in:
Christopher Charbonneau Wells 2017-09-10 05:11:09 -04:00
parent 476b7ece70
commit 32da7873fa
5 changed files with 24 additions and 5 deletions

View File

@ -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

View File

@ -19,7 +19,7 @@
{% endif %}
</p>
<p class="text-muted">
Created by {{ object.user }}
{{ timer }} created by {{ object.user }}
</p>
{% if perms.core.add_feeding %}
@ -49,7 +49,11 @@
{% endif %}
{% if perms.core.change_timer %}
<a class="btn btn-secondary"
<a class="btn btn-primary"
href="{% url 'timer-update' timer.id %}"
role="button"><i class="fa fa-pencil" aria-hidden="true"></i></a>
<a class="btn btn-dark"
href="{% url 'timer-restart' timer.id %}"
role="button"><i class="fa fa-refresh" aria-hidden="true"></i></a>

View File

@ -28,7 +28,7 @@
{% endif %}
</div>
{% endfor %}
<button type="submit" class="btn btn-success">Start Timer</button>
<button type="submit" class="btn btn-success">Submit</button>
<a href="{% url 'timer-list' %}" class="btn btn-default">Cancel</a>
</form>
{% endblock %}

View File

@ -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<pk>[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<pk>[0-9]+)/$', views.TimerDetail.as_view(),

View File

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