From 46ef7bfe9a984d5ec79a145046fbeddda63a0b99 Mon Sep 17 00:00:00 2001
From: "piotr.atyjaszyk" <piotrmk1@gmail.com>
Date: Wed, 18 Jan 2017 12:07:10 +0100
Subject: [PATCH] Added verbose names as well as default prints

---
 smash/web/models.py | 289 +++++++++++++++++++++++++++++++++-----------
 1 file changed, 220 insertions(+), 69 deletions(-)

diff --git a/smash/web/models.py b/smash/web/models.py
index 24789405..096f3993 100644
--- a/smash/web/models.py
+++ b/smash/web/models.py
@@ -27,26 +27,52 @@ class Subject(models.Model):
         ('M','Male'),
         ('F','Female'),
     )
-    sex = models.CharField(max_length=1, 
+    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)
-    email = models.EmailField()
-    born = models.DateField()
-    address = models.CharField(max_length=255)
-    postalCode = models.CharField(max_length=6)
-    city = models.CharField(max_length=50)
-    country = models.CharField(max_length=50)
-    screeningNo = models.CharField(max_length=50)
-    ndno = models.CharField(max_length=6)
-    visitNumber = models.IntegerField()
-    mpowerId = models.CharField(max_length=20)
+    lastName = models.CharField(max_length=50,
+        verbose_name='Last name'
+    )
+    languages = models.ManyToManyField(Language,
+        verbose_name='Known languages'
+    )
+    phoneNo = models.CharField(max_length=20,
+        verbose_name='Phone number'
+    )
+    email = models.EmailField(
+        verbose_name='E-mail'
+    )
+    born = models.DateField(
+        verbose_name='Date born'
+    )
+    address = models.CharField(max_length=255,
+        verbose_name='Address'
+    )
+    postalCode = models.CharField(max_length=6,
+        verbose_name='Postal code'
+    )
+    city = models.CharField(max_length=50,
+        verbose_name='City'
+    )
+    country = models.CharField(max_length=50,
+        verbose_name='Country'
+    )
+    screeningNo = models.CharField(max_length=50,
+        verbose_name='Screening number'
+    )
+    ndno = models.CharField(max_length=6,
+        verbose_name='ND number'
+    )
+    visitNumber = models.IntegerField(
+        verbose_name='Number of visits'
+    )
+    mpowerId = models.CharField(max_length=20,
+        verbose_name='MPower ID'
+    )
     STATUS_CHOICES = (
         ('INV', 'Invited'),
         ('OPT', 'Opted out'),
@@ -54,56 +80,132 @@ class Subject(models.Model):
         ('TST', 'Test group'),
         ('DEA', 'Dead')
     )
-    subjectStatus = models.CharField(max_length=3, choices=STATUS_CHOICES)
-    mainPseudonym = models.CharField(max_length=45)
-    comments = models.CharField(max_length=2000)
+    subjectStatus = models.CharField(max_length=3, choices=STATUS_CHOICES,
+        verbose_name='Status'
+    )
+    mainPseudonym = models.CharField(max_length=45,
+        verbose_name='Pseudonym'
+    )
+    comments = models.CharField(max_length=2000,
+        verbose_name='Comments'
+    )
 
     def __str__(self):
         return "%s %s" % (self.firstName, self.lastName)
 
 
 class Visit(models.Model):
-    subject = models.ForeignKey(Subject, on_delete=models.CASCADE)
-    visitBegin = models.DateTimeField()
-    visitEnd = models.DateTimeField()
-    assesmentNo = models.IntegerField()
-    visitType = models.IntegerField()
-    visitFinished = models.BooleanField()
+    subject = models.ForeignKey(Subject, on_delete=models.CASCADE,
+        verbose_name='Subject'
+    )
+    visitBegin = models.DateTimeField(
+        verbose_name='Visit starts at'
+    )
+    visitEnd = models.DateTimeField(
+        verbose_name='Visit ends at'
+    )
+    assesmentNo = models.IntegerField(
+        verbose_name='Which assesment'
+    )
+    visitType = models.IntegerField(
+        verbose_name='Type of visit'
+    )
+    visitFinished = models.BooleanField(
+        verbose_name='Has ended'
+    )
+
+    def __str__(self):
+        return "%s %s %d" % (self.subject.firstName, self.subject.lastName, self.assesmentNo)
 
 
 class Item (models.Model):
-    isFixed = models.BooleanField
-    name = models.CharField(max_length=255)
+    isFixed = models.BooleanField(
+        default=False,
+        verbose_name='Is the item fixed?'
+    )
+    name = models.CharField(max_length=255,
+        verbose_name='Name'
+    )
+
+    def __str__(self):
+        return self.name
+
 
 
 class Room (models.Model):
-    possEquipment = models.ManyToManyField(Item)
-    owner = models.CharField(max_length=50)
-    address = models.CharField(max_length=255)
-    city = models.CharField(max_length=50)
-    roomNo = models.IntegerField()
-    floor = models.IntegerField()
-    isVehicle = models.BooleanField()
+    possEquipment = models.ManyToManyField(Item,
+        verbose_name='Posessed equipment'
+    )
+    owner = models.CharField(max_length=50,
+        verbose_name='Owner'
+    )
+    address = models.CharField(max_length=255,
+        verbose_name='Address'
+    )
+    city = models.CharField(max_length=50,
+        verbose_name='City'
+    )
+    roomNo = models.IntegerField(
+        verbose_name='Room number'
+    )
+    floor = models.IntegerField(
+        verbose_name='Floor'
+    )
+    isVehicle = models.BooleanField(
+        verbose_name='Is a vehicle?'
+    )
 
+    def __str__(self):
+        return "%d %s %s" % (self.roomNo, self.address, self.city)
 
 class AppType (models.Model):
-    reqEquipment = models.ManyToManyField(Item)
-    followUp = models.ForeignKey('self')
-    apCode = models.CharField(max_length=20)
-    apDescription = models.CharField(max_length=2000)
-    apDefaultTime = models.IntegerField()
-    apRestTime = models.IntegerField()
+    reqEquipment = models.ManyToManyField(Item,
+        verbose_name='Required equipment'
+    )
+    followUp = models.ForeignKey('self',
+        verbose_name='Follow-up visit'
+    )
+    apCode = models.CharField(max_length=20,
+        verbose_name='Appointment code'
+    )
+    apDescription = models.CharField(max_length=2000,
+        verbose_name='Appointment description'
+    )
+    apDefaultTime = models.IntegerField(
+        verbose_name='Default time'
+    )
+    apRestTime = models.IntegerField(
+        verbose_name='Suggested rest time'
+    )
 
+    def __str__(self):
+        return self.apCode
 
 class Worker (models.Model):
-    languages = models.ManyToManyField(Language)
-    appointments = models.ManyToManyField('Appointment', blank=True)
-    user = models.OneToOneField(User, blank=True, null=True)
-    firstName = models.CharField(max_length=50)
-    lastName = models.CharField(max_length=50)
-    phoneNo = models.CharField(max_length=20)
-    unit = models.CharField(max_length=50)
-    email = models.EmailField()
+    languages = models.ManyToManyField(Language,
+        verbose_name='Known languages'
+    )
+    appointments = models.ManyToManyField('Appointment', blank=True,
+        verbose_name='Appointments'
+    )
+    user = models.OneToOneField(User, blank=True, null=True,
+        verbose_name='Username'
+    )
+    firstName = models.CharField(max_length=50,
+        verbose_name='First name'
+    )
+    lastName = models.CharField(max_length=50,
+        verbose_name='Last name'
+    )
+    phoneNo = models.CharField(max_length=20,
+        verbose_name='Phone number'
+    )
+    unit = models.CharField(max_length=50,
+        verbose_name='Unit'
+    )
+    email = models.EmailField(
+        verbose_name='E-mail'
+    )
     ROLE_CHOICES = (
         ('DOCTOR', 'Doctor'),
         ('NURSE', 'Nurse'),
@@ -111,8 +213,12 @@ class Worker (models.Model):
         ('TECHNICIAN', 'Technician'),
         ('SECRETARY', 'Secretary')
     )
-    role = models.CharField(max_length=20, choices=ROLE_CHOICES)
-    specialization = models.CharField(max_length=20)
+    role = models.CharField(max_length=20, choices=ROLE_CHOICES,
+        verbose_name='Role'
+    )
+    specialization = models.CharField(max_length=20,
+        verbose_name='Specialization'
+    )
 
     def isOnLeave(self):
         if len(self.holiday_set.filter(holidayEnd__gt=datetime.datetime.now(),
@@ -135,33 +241,78 @@ class Worker (models.Model):
 
 
 class FlyingTeam(models.Model):
-    doctor = models.ForeignKey(Worker, related_name='FlyingTeamDoctor')
-    nurse = models.ForeignKey(Worker, related_name='FlyingTeamNurse')
-    psychologist = models.ForeignKey(Worker, related_name='FlyingTeamPsychologist')
-    dateTimeCalled = models.DateTimeField()
-    dateTimeUntil = models.DateTimeField()
+    doctor = models.ForeignKey(Worker, related_name='FlyingTeamDoctor',
+        verbose_name='Doctor'
+    )
+    nurse = models.ForeignKey(Worker, related_name='FlyingTeamNurse',
+        verbose_name='Nurse'
+    )
+    psychologist = models.ForeignKey(Worker, related_name='FlyingTeamPsychologist',
+        verbose_name='Psychologist'
+    )
+    dateTimeCalled = models.DateTimeField(
+        verbose_name='Created on'
+    )
+    dateTimeUntil = models.DateTimeField(
+        verbose_name='Disbanded on'
+    )
 
+    def __str__(self):
+        return "%s %s %s" % (self.doctor.lastName, self.nurse.lastName, self.psychologist.lastName)
 
 class Avaibility(models.Model):
-    person = models.ForeignKey(Worker, on_delete=models.CASCADE)
-    dayNo = models.IntegerField()
-    availFro = models.TimeField()
-    availTil = models.TimeField()
-    current = models.BooleanField()
+    person = models.ForeignKey(Worker, on_delete=models.CASCADE,
+        verbose_name='Worker'
+    )
+    dayNo = models.IntegerField(
+        verbose_name='Day of the week'
+    )
+    availFro = models.TimeField(
+        verbose_name='Avaible since'
+    )
+    availTil = models.TimeField(
+        verbose_name='Avaible until'
+    )
+    current = models.BooleanField(
+        verbose_name='Is current?'
+    )
 
+    def __str__(self):
+        return "%d %s %s" % (self.dayNo, self.person.lastName, self.person.firstName)
 
 class Holiday(models.Model):
-    person = models.ForeignKey(Worker, on_delete=models.CASCADE)
-    holidayStart = models.DateTimeField()
-    holidayEnd = models.DateTimeField()
+    person = models.ForeignKey(Worker, on_delete=models.CASCADE,
+        verbose_name='Worker'
+    )
+    holidayStart = models.DateTimeField(
+        verbose_name='On leave since'
+    )
+    holidayEnd = models.DateTimeField(
+        verbose_name='On leave until'
+    )
 
+    def __str__(self):
+        return "%s %s" % (self.person.firstName, self.person.lastName)
 
 class Appointment(models.Model):
-    flyingTeam = models.ForeignKey(FlyingTeam)
-    appType = models.ForeignKey(AppType)
-    room = models.ForeignKey(Room)
-    visit = models.ForeignKey(Visit)
-    appDateTime = models.DateTimeField()
-    appLength = models.IntegerField()
-    appFinished = models.BooleanField()
-
+    flyingTeam = models.ForeignKey(FlyingTeam,
+        verbose_name='Flying team (if applicable)'
+    )
+    appType = models.ForeignKey(AppType,
+        verbose_name='Appointment type'
+    )
+    room = models.ForeignKey(Room,
+        verbose_name='Room ID'
+    )
+    visit = models.ForeignKey(Visit,
+        verbose_name='Visit ID'
+    )
+    appDateTime = models.DateTimeField(
+        verbose_name='Appointment on'
+    )
+    appLength = models.IntegerField(
+        verbose_name='Appointment length'
+    )
+    appFinished = models.BooleanField(
+        verbose_name='Has the appointment ended?'
+    )
-- 
GitLab