Loading sample.env +2 −0 Changes for sample.env: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -9,3 +9,5 @@ SITE_URL="http://localhost:8000" # RQ_URL="redis://localhost:6379/0" # TIME_ZONE="Etc/UTC" # DATABASE_URL="sqlite:///db.sqlite3" # SCHOOL_YEAR_MONTH=9 # SCHOOL_YEAR_DAY=1 voters/models.py +10 −18 Changes for voters/models.py: 10 added lines, 18 removed lines. Original line number Diff line number Diff line Loading @@ -19,25 +19,17 @@ class Group(models.Model): super().clean() @property def class_name(self): start_of_school_year = (2000 + int(self.name.split('_')[0][1:])) def class_name(self) -> str | None: now = timezone.now() # check whether students have graduated if timezone.make_aware(datetime.datetime(year=start_of_school_year + 4, month = 9, day = 1)) < now: return None # chcek if start of school is correct (not in the future) if timezone.make_aware(datetime.datetime(year=start_of_school_year, month = 9, day = 1)) > now: return None # compute class number class_number = now.year - start_of_school_year if now >= timezone.make_aware(datetime.datetime(year=now.year, month = 9, day = 1)): class_number += 1 return str(class_number) + self.name.split('_')[-1].capitalize() class_first_year = ((now.year//100)*100 + int(self.name.split('_')[0][1:])) class_number = now.year - class_first_year + 1 school_year_start = timezone.make_aware(datetime.datetime(year=now.year, month=settings.SCHOOL_YEAR_MONTH, day=settings.SCHOOL_YEAR_DAY)) if now < school_year_start: class_number -= 1 if class_number <= 0: return class_letter = self.name.split('_')[-1].upper() return f"{class_number}{class_letter}" @property def display_name(self): Loading wybory/settings.py +7 −1 Changes for wybory/settings.py: 7 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -29,7 +29,9 @@ env = environ.Env( ALLOWED_HOSTS=(str, "localhost"), RQ_URL=(str, "redis://localhost:6379/0"), TIME_ZONE=(str, "Etc/UTC"), DATABASE_URL=(str, "sqlite:///db.sqlite3") DATABASE_URL=(str, "sqlite:///db.sqlite3"), SCHOOL_YEAR_MONTH=(int, 9), SCHOOL_YEAR_DAY=(int, 1), ) environ.Env.read_env(BASE_DIR / '.env') Loading Loading @@ -61,6 +63,10 @@ if ALLOWED_HOSTS == "": else: ALLOWED_HOSTS = ALLOWED_HOSTS.split(",") # misc SCHOOL_YEAR_MONTH = env("SCHOOL_YEAR_MONTH") SCHOOL_YEAR_DAY = env("SCHOOL_YEAR_DAY") # Django messages from django.contrib.messages import constants as messages MESSAGE_TAGS = { Loading Loading
sample.env +2 −0 Changes for sample.env: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -9,3 +9,5 @@ SITE_URL="http://localhost:8000" # RQ_URL="redis://localhost:6379/0" # TIME_ZONE="Etc/UTC" # DATABASE_URL="sqlite:///db.sqlite3" # SCHOOL_YEAR_MONTH=9 # SCHOOL_YEAR_DAY=1
voters/models.py +10 −18 Changes for voters/models.py: 10 added lines, 18 removed lines. Original line number Diff line number Diff line Loading @@ -19,25 +19,17 @@ class Group(models.Model): super().clean() @property def class_name(self): start_of_school_year = (2000 + int(self.name.split('_')[0][1:])) def class_name(self) -> str | None: now = timezone.now() # check whether students have graduated if timezone.make_aware(datetime.datetime(year=start_of_school_year + 4, month = 9, day = 1)) < now: return None # chcek if start of school is correct (not in the future) if timezone.make_aware(datetime.datetime(year=start_of_school_year, month = 9, day = 1)) > now: return None # compute class number class_number = now.year - start_of_school_year if now >= timezone.make_aware(datetime.datetime(year=now.year, month = 9, day = 1)): class_number += 1 return str(class_number) + self.name.split('_')[-1].capitalize() class_first_year = ((now.year//100)*100 + int(self.name.split('_')[0][1:])) class_number = now.year - class_first_year + 1 school_year_start = timezone.make_aware(datetime.datetime(year=now.year, month=settings.SCHOOL_YEAR_MONTH, day=settings.SCHOOL_YEAR_DAY)) if now < school_year_start: class_number -= 1 if class_number <= 0: return class_letter = self.name.split('_')[-1].upper() return f"{class_number}{class_letter}" @property def display_name(self): Loading
wybory/settings.py +7 −1 Changes for wybory/settings.py: 7 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -29,7 +29,9 @@ env = environ.Env( ALLOWED_HOSTS=(str, "localhost"), RQ_URL=(str, "redis://localhost:6379/0"), TIME_ZONE=(str, "Etc/UTC"), DATABASE_URL=(str, "sqlite:///db.sqlite3") DATABASE_URL=(str, "sqlite:///db.sqlite3"), SCHOOL_YEAR_MONTH=(int, 9), SCHOOL_YEAR_DAY=(int, 1), ) environ.Env.read_env(BASE_DIR / '.env') Loading Loading @@ -61,6 +63,10 @@ if ALLOWED_HOSTS == "": else: ALLOWED_HOSTS = ALLOWED_HOSTS.split(",") # misc SCHOOL_YEAR_MONTH = env("SCHOOL_YEAR_MONTH") SCHOOL_YEAR_DAY = env("SCHOOL_YEAR_DAY") # Django messages from django.contrib.messages import constants as messages MESSAGE_TAGS = { Loading