157 lines
5.2 KiB
Python
Executable File
157 lines
5.2 KiB
Python
Executable File
# This is an auto-generated Django model module.
|
|
# You'll have to do the following manually to clean this up:
|
|
# * Rearrange models' order
|
|
# * Make sure each model has one field with primary_key=True
|
|
# Feel free to rename the models, but don't rename db_table values or field names.
|
|
#
|
|
# Also note: You'll have to insert the output of 'django-admin.py sqlcustom [appname]'
|
|
# into your database.
|
|
|
|
from django.db import models
|
|
|
|
|
|
class Acexpressroutes(models.Model):
|
|
routecode = models.CharField(max_length=255)
|
|
stopserial = models.IntegerField()
|
|
stageno = models.IntegerField()
|
|
stopcode = models.ForeignKey('Stopmaster', db_column='stopcode')
|
|
stage = models.CharField(max_length=255)
|
|
km = models.FloatField()
|
|
stopname = models.CharField(max_length=255)
|
|
class Meta:
|
|
db_table = u'acexpressroutes'
|
|
|
|
class Areamaster(models.Model):
|
|
areacode = models.IntegerField(unique=True)
|
|
areaname = models.CharField(max_length=255)
|
|
class Meta:
|
|
db_table = u'areamaster'
|
|
|
|
class Expressroutes(models.Model):
|
|
routecode = models.CharField(max_length=255)
|
|
stopserial = models.IntegerField()
|
|
stageno = models.IntegerField()
|
|
stopcode = models.ForeignKey('Stopmaster', db_column='stopcode')
|
|
stage = models.CharField(max_length=255)
|
|
km = models.FloatField()
|
|
stopname = models.CharField(max_length=255)
|
|
class Meta:
|
|
db_table = u'expressroutes'
|
|
|
|
DAYS_MAP = {
|
|
"Monday": ['MF', 'FW', 'MS+HOL'],
|
|
"Tuesday": ['MF', 'FW', 'MS+HOL'],
|
|
"Wednesday": ['MF', 'FW', 'MS+HOL'],
|
|
"Thursday": ['MF', 'FW', 'MS+HOL'],
|
|
"Friday": ['MF', 'FW', 'MS+HOL'],
|
|
"Saturday": ['SAT','FW', 'MS+HOL'],
|
|
"Sunday": ['SH', 'FW'],
|
|
"Holiday": ['HOL', 'SH', 'MS+HOL'],
|
|
}
|
|
|
|
DAYS_OF_WEEK = {
|
|
1: 'Monday',
|
|
2: 'Tuesday',
|
|
3: 'Wednesday',
|
|
4: 'Thursday',
|
|
5: 'Friday',
|
|
6: 'Saturday',
|
|
7: 'Sunday'
|
|
}
|
|
|
|
class Atlas(models.Model):
|
|
routecode = models.CharField(max_length=255)
|
|
route = models.CharField(max_length=255)
|
|
busfrom = models.CharField(max_length=255)
|
|
firstfrom = models.CharField(max_length=255)
|
|
lastfrom = models.CharField(max_length=255)
|
|
busto = models.CharField(max_length=255)
|
|
firstto = models.CharField(max_length=255)
|
|
lastto = models.CharField(max_length=255)
|
|
routespan = models.CharField(max_length=255)
|
|
runtime7to11 = models.CharField(max_length=255)
|
|
runtime11to17 = models.CharField(max_length=255)
|
|
runtime17toend = models.CharField(max_length=255)
|
|
runtimenight = models.CharField(max_length=255)
|
|
headwaybefore7 = models.CharField(max_length=255)
|
|
headway7to11 = models.CharField(max_length=255)
|
|
headway11to17 = models.CharField(max_length=255)
|
|
headway17to20 = models.CharField(max_length=255)
|
|
headway20tolast = models.CharField(max_length=255)
|
|
reliefpoint = models.CharField(max_length=255)
|
|
traveltime = models.CharField(max_length=255)
|
|
scheduletype = models.CharField(max_length=255)
|
|
# id = models.IntegerField(unique=True)
|
|
class Meta:
|
|
db_table = u'atlas'
|
|
|
|
@staticmethod
|
|
def get_schedule(qset, schedules):
|
|
for s in schedules:
|
|
res = qset.filter(scheduletype__exact=s)
|
|
if res.count() > 0:
|
|
return res
|
|
return qset[0]
|
|
|
|
@classmethod
|
|
def get_atlas(kls, route, dateObj):
|
|
dayofweek = dateObj.isoweekday()
|
|
dayString = DAYS_OF_WEEK[dayofweek]
|
|
schedules = DAYS_MAP[dayString]
|
|
atlases = kls.objects.filter(route__iexact=route)
|
|
if atlases.count() < 1:
|
|
return False
|
|
a = kls.get_schedule(atlases, schedules)
|
|
if not a:
|
|
return False
|
|
return a.get_data(dateObj)
|
|
|
|
def get_data(self, dateObj):
|
|
d = {
|
|
'route': self.route,
|
|
'from': self.busfrom,
|
|
'to': self.busto,
|
|
# 'lastbusfrom': self.lastfrom,
|
|
# 'lastbusto': self.lastto,
|
|
|
|
}
|
|
return d
|
|
|
|
class Routetype(models.Model):
|
|
typenumber = models.IntegerField()
|
|
routetype = models.CharField(max_length=255)
|
|
class Meta:
|
|
db_table = u'routetype'
|
|
|
|
class Regularroutes(models.Model):
|
|
routecode = models.CharField(max_length=255)
|
|
stopserial = models.IntegerField()
|
|
stageno = models.IntegerField()
|
|
stopcode = models.ForeignKey('Stopmaster', db_column='stopcode')
|
|
stage = models.CharField(max_length=255)
|
|
km = models.FloatField()
|
|
stopname = models.CharField(max_length=255)
|
|
class Meta:
|
|
db_table = u'regularroutes'
|
|
|
|
class Stopmaster(models.Model):
|
|
stopcode = models.IntegerField(unique=True)
|
|
stopname = models.CharField(max_length=255)
|
|
areacode = models.ForeignKey(Areamaster, db_column='areacode')
|
|
displayname = models.CharField(max_length=255)
|
|
smlength = models.IntegerField()
|
|
class Meta:
|
|
db_table = u'stopmaster'
|
|
|
|
class Asroutes(models.Model):
|
|
routecode = models.CharField(max_length=255)
|
|
stopserial = models.IntegerField()
|
|
stageno = models.IntegerField()
|
|
stopcode = models.ForeignKey(Stopmaster, db_column='stopcode')
|
|
stage = models.CharField(max_length=255)
|
|
km = models.FloatField()
|
|
stopname = models.CharField(max_length=255)
|
|
class Meta:
|
|
db_table = u'asroutes'
|
|
|