[docs]classRoute(models.Model):"""A bus route (e.g. TJ-24)"""ARRIVAL_STATUSES=(("a","Arrived (In the lot)"),("d","Delayed"),("o","On Time (Expected)"))route_name=models.CharField(max_length=30,unique=True)space=models.CharField(max_length=4,blank=True)bus_number=models.CharField(max_length=5,blank=True)status=models.CharField("arrival status",choices=ARRIVAL_STATUSES,max_length=1,default="o")
[docs]defreset_status(self):"""Reset status to (on time)"""self.status="o"self.space=""self.save(update_fields=["status","space"])
[docs]classBusAnnouncement(models.Model):"""Announcement on the bus page. Only one instance of this model is allowed."""message=models.TextField(blank=True)@classmethoddefobject(cls):returncls.objects.first()orcls.objects.create()defsave(self,*args,**kwargs):self.pk=self.id=1returnsuper().save(*args,**kwargs)def__str__(self):returnf"Bus announcement: {self.message}"