Update GTFS Realtime data
This commit is contained in:
@ -58,6 +58,13 @@ class ExceptionType(models.IntegerChoices):
|
||||
REMOVED = 2, _("Removed")
|
||||
|
||||
|
||||
class ScheduleRelationship(models.IntegerChoices):
|
||||
SCHEDULED = 0, _("Scheduled")
|
||||
SKIPPED = 1, _("Skipped")
|
||||
NO_DATA = 2, _("No data")
|
||||
UNSCHEDULED = 3, _("Unscheduled")
|
||||
|
||||
|
||||
class Agency(models.Model):
|
||||
id = models.CharField(
|
||||
max_length=255,
|
||||
@ -189,6 +196,17 @@ class Stop(models.Model):
|
||||
blank=True,
|
||||
)
|
||||
|
||||
@property
|
||||
def stop_type(self):
|
||||
train_type = self.id.split('StopPoint:OCE')[1].split('-')[0]
|
||||
if train_type == "Train TER":
|
||||
train_type = "TER"
|
||||
elif train_type == "INTERCITES":
|
||||
train_type = "INTER-CITÉS"
|
||||
elif train_type == "INTERCITES de nuit":
|
||||
train_type = "INTER-CITÉS de nuit"
|
||||
return train_type
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.name} ({self.id})"
|
||||
|
||||
@ -337,14 +355,7 @@ class Trip(models.Model):
|
||||
if self.service.transport_type == TransportType.TRANSILIEN:
|
||||
return self.route.short_name
|
||||
else:
|
||||
train_type = self.origin.id.split('StopPoint:OCE')[1].split('-')[0]
|
||||
if train_type == "Train TER":
|
||||
train_type = "TER"
|
||||
elif train_type == "INTERCITES":
|
||||
train_type = "INTER-CITÉS"
|
||||
elif train_type == "INTERCITES de nuit":
|
||||
train_type = "INTER-CITÉS de nuit"
|
||||
return train_type
|
||||
return self.origin.stop_type
|
||||
|
||||
@property
|
||||
def train_number(self):
|
||||
@ -379,7 +390,6 @@ class Trip(models.Model):
|
||||
class Meta:
|
||||
verbose_name = _("Trip")
|
||||
verbose_name_plural = _("Trips")
|
||||
ordering = ("id",)
|
||||
|
||||
|
||||
class StopTime(models.Model):
|
||||
@ -629,3 +639,84 @@ class FeedInfo(models.Model):
|
||||
verbose_name = _("Feed info")
|
||||
verbose_name_plural = _("Feed infos")
|
||||
ordering = ("publisher_name",)
|
||||
|
||||
|
||||
class TripUpdate(models.Model):
|
||||
trip = models.OneToOneField(
|
||||
to="Trip",
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_("Trip"),
|
||||
related_name="update",
|
||||
primary_key=True,
|
||||
)
|
||||
|
||||
start_date = models.DateField(
|
||||
verbose_name=_("Start date"),
|
||||
)
|
||||
|
||||
start_time = models.TimeField(
|
||||
verbose_name=_("Start time"),
|
||||
)
|
||||
|
||||
schedule_relationship = models.IntegerField(
|
||||
verbose_name=_("Schedule relationship"),
|
||||
choices=ScheduleRelationship,
|
||||
default=ScheduleRelationship.SCHEDULED,
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.trip)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Trip update")
|
||||
verbose_name_plural = _("Trip updates")
|
||||
ordering = ("start_date", "trip",)
|
||||
unique_together = ("trip", "start_date", "start_time",)
|
||||
|
||||
|
||||
class StopTimeUpdate(models.Model):
|
||||
trip_update = models.ForeignKey(
|
||||
to="TripUpdate",
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_("Trip update"),
|
||||
related_name="stop_time_updates",
|
||||
)
|
||||
|
||||
stop_time = models.OneToOneField(
|
||||
to="StopTime",
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name=_("Stop time"),
|
||||
related_name="update",
|
||||
primary_key=True,
|
||||
)
|
||||
|
||||
arrival_delay = models.DurationField(
|
||||
verbose_name=_("Arrival delay"),
|
||||
)
|
||||
|
||||
arrival_time = models.DateTimeField(
|
||||
verbose_name=_("Arrival time"),
|
||||
)
|
||||
|
||||
departure_delay = models.DurationField(
|
||||
verbose_name=_("Departure delay"),
|
||||
)
|
||||
|
||||
departure_time = models.DateTimeField(
|
||||
verbose_name=_("Departure time"),
|
||||
)
|
||||
|
||||
schedule_relationship = models.IntegerField(
|
||||
verbose_name=_("Schedule relationship"),
|
||||
choices=ScheduleRelationship,
|
||||
default=ScheduleRelationship.SCHEDULED,
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.trip_update)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Stop time update")
|
||||
verbose_name_plural = _("Stop time updates")
|
||||
ordering = ("trip_update", "stop_time",)
|
||||
unique_together = ("trip_update", "stop_time",)
|
||||
|
Reference in New Issue
Block a user