From 963dafefd20ffa233b2dfb79f8fd57d8cb6ef739 Mon Sep 17 00:00:00 2001 From: "piotr.atyjaszyk" <piotrmk1@gmail.com> Date: Wed, 11 Jan 2017 13:57:59 +0100 Subject: [PATCH] Added details and edit functionalities for workers --- smash/web/forms.py | 15 +++++++ smash/web/templates/doctors/details.html | 55 ++++++++++++++++++++++++ smash/web/templates/doctors/edit.html | 55 ++++++++++++++++++++++++ smash/web/templates/doctors/index.html | 4 +- smash/web/urls.py | 2 + smash/web/views.py | 14 ++++++ 6 files changed, 143 insertions(+), 2 deletions(-) create mode 100644 smash/web/templates/doctors/details.html create mode 100644 smash/web/templates/doctors/edit.html diff --git a/smash/web/forms.py b/smash/web/forms.py index 3e6530ef..2079ee1d 100644 --- a/smash/web/forms.py +++ b/smash/web/forms.py @@ -16,3 +16,18 @@ class SubjectEditForm(ModelForm): class Meta: model = Subject fields = '__all__' + +class WorkerAddForm(ModelForm): + class Meta: + model = Worker + fields = '__all__' + +class WorkerDetailForm(ModelForm): + class Meta: + model = Worker + fields = '__all__' + +class WorkerEditForm(ModelForm): + class Meta: + model = Worker + fields = '__all__' diff --git a/smash/web/templates/doctors/details.html b/smash/web/templates/doctors/details.html new file mode 100644 index 00000000..1600110c --- /dev/null +++ b/smash/web/templates/doctors/details.html @@ -0,0 +1,55 @@ +{% extends "_base.html" %} +{% load static %} + +{% block styles %} +{{ block.super }} + <!-- DataTables --> + <link rel="stylesheet" href="{% static 'AdminLTE/plugins/datatables/dataTables.bootstrap.css' %}"> +{% endblock styles %} + +{% block page_title %}'worker'{% endblock page_title %} +{% block page_header %}Worker details{% endblock page_header %} +{% block page_description %}details{% endblock page_description %} + +{% block breadcrumb %} + <li><a href="#"><i class="fa fa-dashboard"></i> Dashboard</a></li> + <li class="active">Workers</li> +{% endblock breadcrumb %} + +{% block maincontent %} + +{% block title %}{{object_name}} Form{% endblock %} + +{% block content %} +<form method="post" action=""> + {{ formset.as_ul }} + {% csrf_token %} + + <a href="{% url 'web.views.doctors' %}" class="btn btn-block btn-default">Back</a> + +</form> +{% 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/doctors/edit.html b/smash/web/templates/doctors/edit.html new file mode 100644 index 00000000..26b91e32 --- /dev/null +++ b/smash/web/templates/doctors/edit.html @@ -0,0 +1,55 @@ +{% extends "_base.html" %} +{% load static %} + +{% block styles %} +{{ block.super }} + <!-- DataTables --> + <link rel="stylesheet" href="{% static 'AdminLTE/plugins/datatables/dataTables.bootstrap.css' %}"> +{% endblock styles %} + +{% block page_title %}'editworker'{% endblock page_title %} +{% block page_header %}Edit worker{% endblock page_header %} +{% block page_description %}editing{% endblock page_description %} + +{% block breadcrumb %} + <li><a href="#"><i class="fa fa-dashboard"></i> Dashboard</a></li> + <li class="active">Workers</li> +{% endblock breadcrumb %} + +{% block maincontent %} + +{% block title %}{{object_name}} Form{% endblock %} + +{% block content %} +<form method="post" action=""> + {{ formset.as_ul }} + {% csrf_token %} + + <button type="submit" class="btn btn-block btn-success">Save</button> + <a href="{% url 'web.views.doctors' %}" class="btn btn-block btn-default">Cancel</a> +</form> +{% 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/doctors/index.html b/smash/web/templates/doctors/index.html index 360985ce..46de2281 100644 --- a/smash/web/templates/doctors/index.html +++ b/smash/web/templates/doctors/index.html @@ -54,8 +54,8 @@ {% endautoescape %} </td> <td>{{ worker.unit }}</td> - <td><button type="button" class="btn btn-block btn-default">Details</button></td> - <td><button type="button" class="btn btn-block btn-default">Edit</button></td> + <td><a href="{% url 'web.views.doctordetails' worker.id %}" type="button" class="btn btn-block btn-default">Details</a></td> + <td><a href="{% url 'web.views.doctoredit' worker.id %}" type="button" class="btn btn-block btn-default">Edit</a></td> <td><button type="button" class="btn btn-block btn-default">Modify availability</button></td> <td> {% if worker.isOnLeave %}<button type="button" class="btn btn-block btn-danger">YES</button> diff --git a/smash/web/urls.py b/smash/web/urls.py index 18520a4e..d11ecc6d 100644 --- a/smash/web/urls.py +++ b/smash/web/urls.py @@ -25,6 +25,8 @@ urlpatterns = [ url(r'subjects/delete/(?P<ids>\d+)$', views.subjectdelete, name='web.views.subjectdelete'), url(r'doctors$', views.doctors, name='web.views.doctors'), url(r'doctors/add$', views.doctoradd, name='web.views.doctoradd'), + url(r'doctors/details/(?P<ids>\d+)$', views.doctordetails, name='web.views.doctordetails'), + url(r'doctors/edit/(?P<ids>\d+)$', views.doctoredit, name='web.views.doctoredit'), url(r'equipment_and_rooms$', views.equipment_and_rooms, name='web.views.equipment_and_rooms'), url(r'equipment_and_rooms/eqdef$', views.equipment_def, name='web.views.equipment_def'), url(r'mail_templates$', views.mail_templates, name='web.views.mail_templates'), diff --git a/smash/web/views.py b/smash/web/views.py index 2705c072..5132f14c 100644 --- a/smash/web/views.py +++ b/smash/web/views.py @@ -112,7 +112,21 @@ def doctoradd(request): formset = WorkerFormSet(queryset=Worker.objects.none()) return render(request, 'doctors/add.html', {'formset': formset}) +def doctoredit(request, ids): + WorkerFormSet = modelformset_factory(Worker , fields='__all__') + if request.method == 'POST': + formset = WorkerEditForm(request.POST, request.FILES, instance=Worker.objects.get(id=ids)) + if formset.is_valid(): + formset.save() + return redirect(doctors) + else: + formset = WorkerEditForm(instance=Worker.objects.get(id=ids)) + return render(request, 'doctors/edit.html', {'formset': formset}) +def doctordetails(request, ids): + WorkerFormSet = modelformset_factory(Worker , fields='__all__') + formset = WorkerDetailForm(instance=Worker.objects.get(id=ids)) + return render(request, 'doctors/details.html', {'formset': formset}) def equipment_def(request): equipment_list = Item.objects.order_by('-name') -- GitLab