Truncate trip id

This commit is contained in:
2024-02-09 23:15:14 +01:00
parent 8d2ffe3014
commit 77c3ef9e74
5 changed files with 225 additions and 159 deletions

View File

@ -230,7 +230,7 @@ class Route(models.Model):
agency = models.ForeignKey(
to="Agency",
on_delete=models.CASCADE,
verbose_name=_("Agency ID"),
verbose_name=_("Agency"),
related_name="routes",
)
@ -272,6 +272,12 @@ class Route(models.Model):
blank=True,
)
transport_type = models.CharField(
max_length=255,
verbose_name=_("Transport type"),
choices=TransportType,
)
def __str__(self):
return f"{self.long_name}"
@ -346,6 +352,11 @@ class Trip(models.Model):
null=True,
)
last_update = models.DateTimeField(
verbose_name=_("Last update"),
null=True,
)
@property
def origin(self):
return self.stop_times.order_by('stop_sequence').first().stop
@ -354,16 +365,30 @@ class Trip(models.Model):
def destination(self):
return self.stop_times.order_by('-stop_sequence').first().stop
@property
def departure_time(self):
dep_time = self.stop_times.order_by('stop_sequence').first().departure_time
hours = int(dep_time.total_seconds() // 3600)
minutes = int((dep_time.total_seconds() % 3600) // 60)
return f"{hours:02}:{minutes:02}"
@property
def arrival_time(self):
arr_time = self.stop_times.order_by('-stop_sequence').first().arrival_time
hours = int(arr_time.total_seconds() // 3600)
minutes = int((arr_time.total_seconds() % 3600) // 60)
return f"{hours:02}:{minutes:02}"
@property
def train_type(self):
if self.service.transport_type == TransportType.TRANSILIEN:
if self.route.transport_type == TransportType.TRANSILIEN:
return self.route.short_name
else:
return self.origin.stop_type
@property
def train_number(self):
if self.service.transport_type == TransportType.TRANSILIEN:
if self.route.transport_type == TransportType.TRANSILIEN:
return self.short_name
else:
return self.headsign
@ -389,7 +414,8 @@ class Trip(models.Model):
return "000000"
def __str__(self):
return f"{self.route.long_name} - {self.id}"
return f"{self.origin.name} {self.departure_time}{self.destination.name} {self.arrival_time}" \
f" - {self.service_id}"
class Meta:
verbose_name = _("Trip")
@ -470,7 +496,7 @@ class StopTime(models.Model):
return f"{hours:02}:{minutes:02}"
def __str__(self):
return f"{self.trip.route.long_name} - {self.trip_id} - {self.stop.name}"
return f"{self.stop.name} - {self.trip_id}"
class Meta:
verbose_name = _("Stop time")
@ -558,12 +584,6 @@ class CalendarDate(models.Model):
choices=ExceptionType,
)
transport_type = models.CharField(
max_length=255,
verbose_name=_("Transport type"),
choices=TransportType,
)
def __str__(self):
return f"{self.service.id} - {self.date} - {self.exception_type}"