75 lines
2.4 KiB
Python
75 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Erstellt Standard-Schuljahre für österreichische Schulen
|
|
Führe dieses Skript nach der Migration aus, um Standard-Perioden zu erstellen.
|
|
"""
|
|
|
|
from datetime import date
|
|
from models.models import AcademicPeriod, AcademicPeriodType
|
|
from server.database import Session
|
|
import sys
|
|
sys.path.append('/workspace')
|
|
|
|
|
|
def create_default_academic_periods():
|
|
"""Erstellt Standard-Schuljahre für österreichische Schulen"""
|
|
session = Session()
|
|
|
|
try:
|
|
# Prüfe ob bereits Perioden existieren
|
|
existing = session.query(AcademicPeriod).first()
|
|
if existing:
|
|
print("Academic periods already exist. Skipping creation.")
|
|
return
|
|
|
|
# Standard Schuljahre erstellen
|
|
periods = [
|
|
{
|
|
'name': 'Schuljahr 2024/25',
|
|
'display_name': 'SJ 24/25',
|
|
'start_date': date(2024, 9, 2),
|
|
'end_date': date(2025, 7, 4),
|
|
'period_type': AcademicPeriodType.schuljahr,
|
|
'is_active': True # Aktuelles Schuljahr
|
|
},
|
|
{
|
|
'name': 'Schuljahr 2025/26',
|
|
'display_name': 'SJ 25/26',
|
|
'start_date': date(2025, 9, 1),
|
|
'end_date': date(2026, 7, 3),
|
|
'period_type': AcademicPeriodType.schuljahr,
|
|
'is_active': False
|
|
},
|
|
{
|
|
'name': 'Schuljahr 2026/27',
|
|
'display_name': 'SJ 26/27',
|
|
'start_date': date(2026, 9, 7),
|
|
'end_date': date(2027, 7, 2),
|
|
'period_type': AcademicPeriodType.schuljahr,
|
|
'is_active': False
|
|
}
|
|
]
|
|
|
|
for period_data in periods:
|
|
period = AcademicPeriod(**period_data)
|
|
session.add(period)
|
|
|
|
session.commit()
|
|
print(f"Successfully created {len(periods)} academic periods")
|
|
|
|
# Zeige erstellte Perioden
|
|
for period in session.query(AcademicPeriod).all():
|
|
status = "AKTIV" if period.is_active else "inaktiv"
|
|
print(
|
|
f" - {period.name} ({period.start_date} - {period.end_date}) [{status}]")
|
|
|
|
except Exception as e:
|
|
session.rollback()
|
|
print(f"Error creating academic periods: {e}")
|
|
finally:
|
|
session.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
create_default_academic_periods()
|