diff --git a/smash/web/forms.py b/smash/web/forms.py index 454cb6ac6c0ac56d5b2921e71726e7a9abbc7105..ef870ce1f2eb8471e0b2a98ea41f6b1b926c2aa7 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 0000000000000000000000000000000000000000..3ba01a89e856ff57b32b9b6b9a8f20bdf2463668 --- /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 982b4a8e3638296372bba50897e6b75f051cad36..558127324540c0ffbae8e787067817a16b739937 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 94bac5ca1e293062d47ad4e2e709acfee66290f5..6a2002d87b32fe96c5009602d3e80f8e494b2d8f 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 5191920ef1101e68bddc61f8f5c35b3b027462c2..030dd7b6995d3a177bf72ccfef46b21afd8584c8 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 9acb1d4b8359db660d8069068f02b43ec49bd2cd..a697fffbb43bffb3ff5a91e69ba75121bf55a831 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})