diff --git a/smash/web/admin.py b/smash/web/admin.py index 39e6b331929e6b9de76c23aab0b9c9c4bea38190..a375578b188739c1300310912e3daab9741c38db 100644 --- a/smash/web/admin.py +++ b/smash/web/admin.py @@ -12,7 +12,7 @@ admin.site.register(Subject) admin.site.register(Visit) admin.site.register(Item) admin.site.register(Room) -admin.site.register(AppType) +admin.site.register(AppointmentType) admin.site.register(Language, LanguageAdmin) admin.site.register(Worker) admin.site.register(FlyingTeam) diff --git a/smash/web/models.py b/smash/web/models.py index bd76a27ea2a10549213fdcee844933e1e5e3f273..e544a95af69b17b93647649084ea0a49f8ab818b 100644 --- a/smash/web/models.py +++ b/smash/web/models.py @@ -74,14 +74,16 @@ class Subject(models.Model): verbose_name='MPower ID' ) STATUS_CHOICES = ( - ('INV', 'Invited'), - ('OPT', 'Opted out'), - ('PAR', 'Participating'), + ('NCO', 'Not contacted'), ('TST', 'Test group'), + ('LEA', 'Level A'), + ('LEB', 'Level B'), + ('OPT', 'Opted out'), ('DEA', 'Dead') ) subjectStatus = models.CharField(max_length=3, choices=STATUS_CHOICES, - verbose_name='Status' + verbose_name='Status', + default='NCO' ) mainPseudonym = models.CharField(max_length=45, verbose_name='Pseudonym' @@ -90,6 +92,15 @@ class Subject(models.Model): verbose_name='Comments' ) + dateAdded = models.DateField(verbose_name='Added on', + auto_now=True + ) + + referral = models.CharField(max_length=128, + null=True, + verbose_name='Referred by' + ) + def __str__(self): return "%s %s" % (self.firstName, self.lastName) @@ -106,15 +117,19 @@ class Visit(models.Model): ) visitEnd = models.DateTimeField( verbose_name='Visit ends at' + ) # Deadline before which all appointments need to be scheduled + TYPE_CHOICES = ( + ('A', 'Level A visit'), + ('B', 'Level B visit'), + ('O', 'Other') ) - assesmentNo = models.IntegerField( - verbose_name='Which assesment' - ) - visitType = models.IntegerField( - verbose_name='Type of visit' + visitType = models.CharField(max_length=1, choices=TYPE_CHOICES, + verbose_name='Visit type', + default='O' ) visitFinished = models.BooleanField( - verbose_name='Has ended' + verbose_name='Has ended', + default=False ) def __str__(self): @@ -138,7 +153,7 @@ class Item (models.Model): class Room (models.Model): possEquipment = models.ManyToManyField(Item, verbose_name='On-site equipment', - null=True, blank=True + blank=True ) owner = models.CharField(max_length=50, verbose_name='Owner' @@ -162,24 +177,20 @@ class Room (models.Model): def __str__(self): return "%d %s %s" % (self.roomNo, self.address, self.city) -class AppType (models.Model): - reqEquipment = models.ManyToManyField(Item, +class AppointmentType (models.Model): + requiredEquipment = models.ManyToManyField(Item, verbose_name='Required equipment' ) - followUp = models.ForeignKey('self', - verbose_name='Follow-up visit', - null=True, blank=True - ) - apCode = models.CharField(max_length=20, + code = models.CharField(max_length=20, verbose_name='Appointment code' ) - apDescription = models.CharField(max_length=2000, + description = models.CharField(max_length=2000, verbose_name='Appointment description' ) - apDefaultTime = models.IntegerField( + defaultTime = models.IntegerField( verbose_name='Default time' ) - apRestTime = models.IntegerField( + restTime = models.IntegerField( verbose_name='Suggested rest time' ) @@ -279,7 +290,8 @@ class Avaibility(models.Model): verbose_name='Avaible until' ) current = models.BooleanField( - verbose_name='Is current?' + verbose_name='Is current?', + default=True ) def __str__(self): @@ -304,8 +316,13 @@ class Appointment(models.Model): verbose_name='Flying team (if applicable)', null=True, blank=True ) - appType = models.ForeignKey(AppType, - verbose_name='Appointment type' + workerAssigned = models.ForeignKey(Worker, + verbose_name='Worker conducting the assessment (if applicable)', + null=True, blank=True + ) + appointmentType = models.ForeignKey(AppointmentType, + verbose_name='Appointment type', + null=True, blank=True ) room = models.ForeignKey(Room, verbose_name='Room ID' @@ -318,7 +335,8 @@ class Appointment(models.Model): ) appLength = models.IntegerField( verbose_name='Appointment length' - ) + )#Potentially redundant; but can be used to manually adjust appointment's length appFinished = models.BooleanField( - verbose_name='Has the appointment ended?' + verbose_name='Has the appointment ended?', + default=False )