adds timezone for clubs

tz
Laurent 1 year ago
parent baee01063b
commit bd941387c2
  1. 7
      tournaments/models/club.py
  2. 9
      tournaments/models/match.py
  3. 9
      tournaments/models/tournament.py

@ -1,4 +1,5 @@
from django.db import models from django.db import models
from zoneinfo import available_timezones
import uuid import uuid
class Club(models.Model): class Club(models.Model):
@ -15,7 +16,11 @@ class Club(models.Model):
zip_code = models.CharField(max_length=10, null=True, blank=True) zip_code = models.CharField(max_length=10, null=True, blank=True)
latitude = models.FloatField(null=True, blank=True) latitude = models.FloatField(null=True, blank=True)
longitude = models.FloatField(null=True, blank=True) longitude = models.FloatField(null=True, blank=True)
timezone = models.CharField(
max_length=50,
choices=[(tz, tz) for tz in sorted(available_timezones())],
default='CET'
)
court_count = models.IntegerField(default=2) court_count = models.IntegerField(default=2)
broadcast_code = models.CharField(max_length=10, null=True, blank=True, unique=True) broadcast_code = models.CharField(max_length=10, null=True, blank=True, unique=True)

@ -2,7 +2,8 @@ from django.db import models
from tournaments.models import group_stage from tournaments.models import group_stage
from . import Round, GroupStage, FederalMatchCategory from . import Round, GroupStage, FederalMatchCategory
from django.utils import timezone, formats from django.utils import timezone, formats
from datetime import timedelta from datetime import datetime, timedelta
import uuid import uuid
from ..utils.extensions import format_seconds from ..utils.extensions import format_seconds
@ -80,8 +81,10 @@ class Match(models.Model):
def formatted_start_date(self): def formatted_start_date(self):
if self.start_date: if self.start_date:
timezoned_datetime = timezone.localtime(self.start_date) timezone = self.tournament().timezone()
return formats.date_format(timezoned_datetime, format='H:i') local_start = self.start_date.astimezone(timezone)
# timezoned_datetime = timezone.localtime(self.start_date)
return formats.date_format(local_start, format='H:i')
# return formats.date_format(self.start_date, format='H:i') # return formats.date_format(self.start_date, format='H:i')
else: else:
return '' return ''

@ -1,3 +1,4 @@
from zoneinfo import ZoneInfo
from django.db import models from django.db import models
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
if TYPE_CHECKING: if TYPE_CHECKING:
@ -7,6 +8,8 @@ from . import Event, TournamentPayment, FederalMatchCategory, FederalCategory, F
import uuid import uuid
from django.utils import timezone, formats from django.utils import timezone, formats
from datetime import datetime, timedelta from datetime import datetime, timedelta
from zoneinfo import ZoneInfo
from shared.cryptography import encryption_util from shared.cryptography import encryption_util
from ..utils.extensions import plural_format from ..utils.extensions import plural_format
@ -129,6 +132,12 @@ class Tournament(models.Model):
components.append(self.name) components.append(self.name)
return (' ').join(components) return (' ').join(components)
def timezone(self):
tz = 'CET'
if self.event and self.event.club:
tz = self.event.club.timezone
return ZoneInfo(tz)
def level(self): def level(self):
if self.federal_level_category == 0: if self.federal_level_category == 0:
return "Anim." return "Anim."

Loading…
Cancel
Save