From c8ee56f61bc94e2b8adb4105e5b2be138760c47d Mon Sep 17 00:00:00 2001 From: "piotr.atyjaszyk" <piotrmk1@gmail.com> Date: Wed, 1 Feb 2017 17:15:23 +0100 Subject: [PATCH] Added appointment edition, avaible from visit details and personal lists --- smash/web/forms.py | 5 ++ smash/web/templates/assignments/edit.html | 90 +++++++++++++++++++ .../web/templates/subjects/visitdetails.html | 4 +- smash/web/templates/visits/details.html | 4 +- smash/web/urls.py | 1 + smash/web/views.py | 10 +++ 6 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 smash/web/templates/assignments/edit.html diff --git a/smash/web/forms.py b/smash/web/forms.py index 454cb6ac..ef870ce1 100644 --- a/smash/web/forms.py +++ b/smash/web/forms.py @@ -61,6 +61,11 @@ class AppointmentDetailForm(ModelForm): fields = '__all__' +class AppointmentEditForm(ModelForm): + class Meta: + model = Appointment + fields = '__all__' + class AppointmentAddForm(ModelForm): class Meta: model = Appointment diff --git a/smash/web/templates/assignments/edit.html b/smash/web/templates/assignments/edit.html new file mode 100644 index 00000000..3ba01a89 --- /dev/null +++ b/smash/web/templates/assignments/edit.html @@ -0,0 +1,90 @@ +{% extends "_base.html" %} +{% load static %} +{% load filters %} + +{% block styles %} +{{ block.super }} + <!-- DataTables --> + <link rel="stylesheet" href="{% static 'AdminLTE/plugins/datatables/dataTables.bootstrap.css' %}"> +{% endblock styles %} + +{% block page_title %}'assignments'{% endblock page_title %} +{% block page_header %}Edit assignment{% endblock page_header %} +{% block page_description %}{% endblock page_description %} + +{% block title %} - Edit assignment information{% endblock %} + +{% block breadcrumb %} +{% include "assignments/breadcrumb.html" %} +{% endblock breadcrumb %} + +{% block maincontent %} + +{% block content %} +<div class="box box-info"> + <div class="box-header with-border"> + <a href="{% url 'web.views.assignments' %}" class="btn btn-block btn-default" onclick="history.back()">Go back (without changes)</a> + </div> + + {% comment %} <div class="box-header with-border"> + <h3 class="box-title">Details of appointment</h3> + </div>{% endcomment %} + + <form method="post" action="" class="form-horizontal"> + {% csrf_token %} + + <div class="box-body"> + {% for field in form %} + <div class="col-md-6 form-group {% if field.errors %}has-error{% endif %}"> + <label for="{# TODO #}" class="col-sm-4 control-label"> + {{ field.label }} + </label> + + <div class="col-sm-8"> + {{ field|add_class:'form-control' }} + </div> + + {% if field.errors %} + <span class="help-block"> + {{ field.errors }} + </span> + {% endif %} + </div> + {% endfor %} + </div><!-- /.box-body --> + + <div class="box-footer"> + <div class="col-sm-6"> + <button type="submit" class="btn btn-block btn-success">Save</button> + </div> + <div class="col-sm-6"> + <a href="{% url 'web.views.assignments' %}" class="btn btn-block btn-default" onclick="history.back()">Cancel</a> + </div> + </div><!-- /.box-footer --> + </form> +</div> +{% endblock %} + + + + +{% endblock maincontent %} + +{% block scripts %} + {{ block.super }} + + <script src="{% static 'AdminLTE/plugins/datatables/jquery.dataTables.min.js' %}"></script> + <script src="{% static 'AdminLTE/plugins/datatables/dataTables.bootstrap.min.js' %}"></script> + <script> + $(function () { + $('#table').DataTable({ + "paging": true, + "lengthChange": false, + "searching": true, + "ordering": true, + "info": true, + "autoWidth": false + }); + }); + </script> +{% endblock scripts %} diff --git a/smash/web/templates/subjects/visitdetails.html b/smash/web/templates/subjects/visitdetails.html index 982b4a8e..55812732 100644 --- a/smash/web/templates/subjects/visitdetails.html +++ b/smash/web/templates/subjects/visitdetails.html @@ -99,7 +99,9 @@ {% else %} {{ app.flying_team }} {% endif %} </td> - <td> <a href="" type="button" class="btn btn-block btn-default">TODO</a> </td> + <td> + <a href="{% url 'web.views.assignment_edit' app.id %}" type="button" class="btn btn-block btn-default">Edit</a> + </td> </tr> {% endfor %} diff --git a/smash/web/templates/visits/details.html b/smash/web/templates/visits/details.html index 94bac5ca..6a2002d8 100644 --- a/smash/web/templates/visits/details.html +++ b/smash/web/templates/visits/details.html @@ -102,7 +102,9 @@ {% else %} {{ app.flying_team }} {% endif %} </td> - <td> <a href="" type="button" class="btn btn-block btn-default">TODO</a> </td> + <td> + <a href="{% url 'web.views.assignment_edit' app.id %}" type="button" class="btn btn-block btn-default">Edit</a> + </td> </tr> {% endfor %} diff --git a/smash/web/urls.py b/smash/web/urls.py index 5191920e..030dd7b6 100644 --- a/smash/web/urls.py +++ b/smash/web/urls.py @@ -20,6 +20,7 @@ urlpatterns = [ url(r'assignments$', views.assignments, name='web.views.assignments'), url(r'assignments/details/(?P<id>\d+)$', views.assignment_details, name='web.views.assignment_details'), url(r'assignments/add/(?P<id>\d+)$', views.assignment_add, name='web.views.assignment_add'), + url(r'assignments/edit/(?P<id>\d+)$', views.assignment_edit, name='web.views.assignment_edit'), url(r'visits$', views.visits, name='web.views.visits'), url(r'visits/details/(?P<id>\d+)$', views.visit_details, name='web.views.visit_details'), diff --git a/smash/web/views.py b/smash/web/views.py index 9acb1d4b..a697fffb 100644 --- a/smash/web/views.py +++ b/smash/web/views.py @@ -294,3 +294,13 @@ def assignment_add(request, id): vid = id return wrap_response(request, 'assignments/add.html', {'form': form, 'visitID': vid}) + +def assignment_edit(request, id): + if request.method == 'POST': + form = AppointmentEditForm(request.POST, request.FILES, instance=Appointment.objects.get(id=id)) + if form.is_valid(): + form.save() + return redirect(assignments) + else: + form = AppointmentEditForm(instance=Appointment.objects.get(id=id)) + return wrap_response(request, 'assignments/edit.html', {'form': form}) -- GitLab