WM-22: fixed end quartal calculation

This commit is contained in:
Oliver Zander 2026-01-06 14:03:11 +01:00 committed by Tobias Herre
parent 8abc051a59
commit 8733704d2e
3 changed files with 39 additions and 1 deletions

View File

@ -0,0 +1,31 @@
# Generated by Django 5.2.5 on 2026-01-06 10:31
from django.db import migrations
from input.utils.migrations import get_queryset
from input.utils.quarter import get_quarter_label
def fix_project_end_quartal(apps, schema_editor):
projects = get_queryset(apps, schema_editor, 'input', 'Project').exclude(end=None).only('end', 'end_quartal')
for project in projects:
end_quartal = get_quarter_label(project.end.month)
if project.end_quartal != end_quartal:
project.end_quartal = end_quartal
project.save(update_fields=['end_quartal'], force_update=True)
class Migration(migrations.Migration):
dependencies = [
('input', '0107_alter_category_other_fields'),
]
operations = [
migrations.RunPython(
code=fix_project_end_quartal,
reverse_code=migrations.RunPython.noop,
),
]

View File

@ -12,6 +12,7 @@ from django.utils.html import format_html
from django.utils.safestring import mark_safe
from foerderbarometer.constants import *
from input.utils.quarter import get_quarter_label
EMAIL_STATES = {
@ -263,7 +264,7 @@ class Project(Volunteer):
kwargs['using'] = using
if self.end:
self.end_quartal = f'Q{self.end.month // 4 + 1}'
self.end_quartal = get_quarter_label(self.end.month)
else:
self.end_quartal = ''

6
input/utils/quarter.py Normal file
View File

@ -0,0 +1,6 @@
def get_quarter(month: int):
return (month - 1) // 3 + 1
def get_quarter_label(month: int):
return 'Q%d' % get_quarter(month)