From 461980d00347e80968eeea0c2388f742261c33f4 Mon Sep 17 00:00:00 2001
From: Jacek Lebioda <jacek.lebioda.001@student.uni.lu>
Date: Wed, 11 Jan 2017 16:23:47 +0100
Subject: [PATCH] Corrected subject details

---
 smash/web/forms.py                        |  9 ++++
 smash/web/models.py                       |  9 +++-
 smash/web/templates/subjects/delete.html  |  2 +-
 smash/web/templates/subjects/details.html | 53 ++++++++++++++++++-----
 smash/web/templates/subjects/edit.html    |  2 +-
 smash/web/views.py                        | 37 ++++++++--------
 6 files changed, 81 insertions(+), 31 deletions(-)

diff --git a/smash/web/forms.py b/smash/web/forms.py
index 2079ee1d..a5f4cfb1 100644
--- a/smash/web/forms.py
+++ b/smash/web/forms.py
@@ -2,31 +2,40 @@ from django import forms
 from django.forms import ModelForm
 from .models import *
 
+"""
+Redundancy? Maybe yes, but if need arises, contents of forms can be more easily customized
+"""
+
 class SubjectAddForm(ModelForm):
     class Meta:
         model = Subject
         fields = '__all__'
 
+
 class SubjectDetailForm(ModelForm):
     class Meta:
         model = Subject
         fields = '__all__'
 
+
 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
diff --git a/smash/web/models.py b/smash/web/models.py
index bc35407b..24789405 100644
--- a/smash/web/models.py
+++ b/smash/web/models.py
@@ -27,8 +27,13 @@ class Subject(models.Model):
         ('M','Male'),
         ('F','Female'),
     )
-    sex = models.CharField(max_length=1, choices=SEX_CHOICES)
-    firstName = models.CharField(max_length=50)
+    sex = models.CharField(max_length=1, 
+        choices=SEX_CHOICES,
+        verbose_name='Sex'
+    )
+    firstName = models.CharField(max_length=50,
+        verbose_name='First name'
+    )
     lastName = models.CharField(max_length=50)
     languages = models.ManyToManyField(Language)
     phoneNo = models.CharField(max_length=20)
diff --git a/smash/web/templates/subjects/delete.html b/smash/web/templates/subjects/delete.html
index ca5bce92..e10a3e29 100644
--- a/smash/web/templates/subjects/delete.html
+++ b/smash/web/templates/subjects/delete.html
@@ -24,7 +24,7 @@
 
 {% block content %}
 <form method="post" action="">
-    {{ formset.as_ul }}
+    {{ form.as_ul }}
     {% csrf_token %}
 
     <button type="submit" class="btn btn-block btn-danger">Delete</button>
diff --git a/smash/web/templates/subjects/details.html b/smash/web/templates/subjects/details.html
index 69fc9717..b2a71afb 100644
--- a/smash/web/templates/subjects/details.html
+++ b/smash/web/templates/subjects/details.html
@@ -8,24 +8,57 @@
 {% endblock styles %}
 
 {% block page_title %}'newsubject'{% endblock page_title %}
-{% block page_header %}New subject{% endblock page_header %}
-{% block page_description %}adding{% endblock page_description %}
+{% block page_header %}Details of the patient{% endblock page_header %}
+{% block page_description %}{% endblock page_description %}
+
+{% block title %}{{ block.super }} - Details of patient {% endblock %}
 
 {% block breadcrumb %}
-			  <li><a href="#"><i class="fa fa-dashboard"></i> Dashboard</a></li>
-			  <li class="active">Workers</li>
+			  <li>
+			  	<a href=""><i class="fa fa-dashboard"></i> Dashboard</a>
+			  </li>
+			  <li class="active">
+			  	<a href="{% url 'web.views.subjects' %}">Subjects</a>
+			  </li>
 {% endblock breadcrumb %}
 
 {% block maincontent %}
 
-{% block title %}{{object_name}} Form{% endblock %}
-
 {% block content %}
-<form method="post" action="">
-    {{ formset.as_ul }}
-    {% csrf_token %}
+<div class="box box-info">
+	{% comment %} <div class="box-header with-border">
+		<h3 class="box-title">Details of patient</h3>
+	</div>{% endcomment %}
+
+	<form class="form-horizontal">
+		<div class="box-body">
+			{% for field in form %}
+				<div class="form-group">
+					<label for="inputEmail3" class="col-sm-2 control-label">
+						{{ field.label }}
+					</label>
+
+					<div class="col-sm-10">
+						<!-- 
+						<input class="form-control" id="inputEmail3" placeholder="Email" type="email">
+						-->
+						{{ field }}
+					</div>
+
+					{% if field.help_text %}
+						<span class="help-block">
+							{{ field.help_text }}
+						</span>
+					{% endif %}
+				</div>
+			{% endfor %}
+		</div><!-- /.box-body -->
 
-    <a href="{% url 'web.views.subjects' %}" class="btn btn-block btn-default">Back</a>
+		<div class="box-footer">
+			<a href="{% url 'web.views.subjects' %}" class="btn btn-block btn-default">Back</a>
+		</div><!-- /.box-footer -->
+	</form>
+</div>
 
 </form>
 {% endblock %}
diff --git a/smash/web/templates/subjects/edit.html b/smash/web/templates/subjects/edit.html
index 5acfa49e..f2781f1e 100644
--- a/smash/web/templates/subjects/edit.html
+++ b/smash/web/templates/subjects/edit.html
@@ -22,7 +22,7 @@
 
 {% block content %}
 <form method="post" action="">
-    {{ formset.as_ul }}
+    {{ form.as_ul }}
     {% csrf_token %}
 
     <button type="submit" class="btn btn-block btn-success">Save</button>
diff --git a/smash/web/views.py b/smash/web/views.py
index a53b8b08..eec71fae 100644
--- a/smash/web/views.py
+++ b/smash/web/views.py
@@ -7,8 +7,8 @@ from .forms import *
 from .auth import * # Own wrapper for django logging in/out
 from django.forms import modelformset_factory
 from django.shortcuts import render
+import collections
 
-# Create your views here.
 def index(request):
 	if request.user.is_authenticated():
 		return redirect(assignments)
@@ -37,11 +37,12 @@ def logout(request):
 	return redirect('/login?error=' + state[1])
 
 
-
 def assignments(request):
 	template = loader.get_template("assignments/index.html")
 	details = Worker.get_details(request.user)
 
+	# TODO: Make a details decorator 
+
 	return HttpResponse(template.render({
 		'person' : details[0],
 		'role': details[1]
@@ -57,43 +58,45 @@ def subjects(request):
 
 	return HttpResponse(template.render(context,request))
 
+
 def subjectadd(request):
-    SubjectFormSet = modelformset_factory(Subject , fields='__all__')
+    subjectFormSet = modelformset_factory(Subject , fields='__all__')
     if request.method == 'POST':
-        formset = SubjectFormSet(request.POST, request.FILES)
+        formset = subjectFormSet(request.POST, request.FILES)
         if formset.is_valid():
 			formset.save()
 			return redirect(subjects)
     else:
-		formset = SubjectFormSet(queryset=Subject.objects.none())
+		formset = subjectFormSet(queryset=Subject.objects.none())
     return render(request, 'subjects/add.html', {'formset': formset})
 
 
 def subjectdet(request, ids):
-	SubjectFormSet = modelformset_factory(Subject , fields='__all__')
-	formset = SubjectDetailForm(instance=Subject.objects.get(id=ids))
-	return render(request, 'subjects/details.html', {'formset': formset})
+	form = SubjectDetailForm(instance=Subject.objects.get(id=ids))
+	
+		
+	return render(request, 'subjects/details.html', {'form': form})
 
 
 def subjectedit(request, ids):
-	SubjectFormSet = modelformset_factory(Subject , fields='__all__')
 	if request.method == 'POST':
-		formset = SubjectEditForm(request.POST, request.FILES, instance=Subject.objects.get(id=ids))
-		if formset.is_valid():
-			formset.save()
+		form = SubjectEditForm(request.POST, request.FILES, instance=Subject.objects.get(id=ids))
+		if form.is_valid():
+			form.save()
 			return redirect(subjects)
 	else:
-		formset = SubjectEditForm(instance=Subject.objects.get(id=ids))
-	return render(request, 'subjects/edit.html', {'formset': formset})
+		form = SubjectEditForm(instance=Subject.objects.get(id=ids))
+	return render(request, 'subjects/edit.html', {'form': form})
+
 
 def subjectdelete(request, ids):
-    SubjectFormSet = modelformset_factory(Subject , fields='__all__')
     if request.method == 'POST':
 		Subject.objects.get(id=ids).delete()
 		return redirect(subjects)
     else:
-		formset = SubjectEditForm(instance=Subject.objects.get(id=ids))
-    return render(request, 'subjects/delete.html', {'formset': formset})
+		form = SubjectEditForm(instance=Subject.objects.get(id=ids))
+    return render(request, 'subjects/delete.html', {'form': form})
+
 
 def doctors(request):
 	doctors_list = Worker.objects.order_by('-lastName')
-- 
GitLab