Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.db import models
- _weekdays = {
- 0 : 'M',
- 1 : 'T',
- 2 : 'W',
- 3 : 'R',
- 4 : 'F',
- 5 : 'Sa',
- 6 : 'Su',
- }
- class Lot(models.Model):
- name = models.CharField(primary_key=True, max_length=50)
- description = models.CharField(max_length=50)
- lat = models.DecimalField(max_digits=8, decimal_places=6)
- lng = models.DecimalField(max_digits=8, decimal_places=6)
- times = models.ManyToManyField('ParkTime', through='ParkRule')
- def toJSON(self):
- return {
- 'name' : self.name,
- 'description' : self.description,
- 'lat' : float(self.lat),
- 'lng' : float(self.lng),
- }
- def __unicode__(self):
- return u'%s' % (self.name)
- class Tag(models.Model):
- name = models.CharField(primary_key=True, max_length=5)
- lots = models.ManyToManyField('ParkTime', through='ParkRule')
- def __unicode__(self):
- return u'%s' % (self.name)
- class ParkTime(models.Model):
- start = models.TimeField()
- end = models.TimeField()
- days = models.ManyToManyField('Weekday')
- def __unicode__(self):
- (startStr, endStr) = (self.start.strftime("%H:%M"), self.end.strftime("%H:%M"))
- daysStr = ''.join([str(day) for day in self.days.all()])
- return u'%s - %s %s' % (startStr, endStr, daysStr)
- class ParkRule(models.Model):
- lot = models.ForeignKey(Lot)
- tag = models.ForeignKey(Tag)
- when = models.ForeignKey(ParkTime)
- canPark = models.BooleanField()
- takesEffect = models.DateField()
- lastsUntil = models.DateField()
- def __unicode__(self):
- return u'%s in %s: %s' % (self.tag, self.lot, self.when)
- class Weekday(models.Model):
- day = models.IntegerField()
- def __unicode__(self):
- return u'%s' % (_weekdays[self.day])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement