Format code with Black and isort for CI/CD compliance
- Apply Black formatting to all Python files in core and stiftung modules - Fix import statement ordering with isort - Ensure all code meets automated quality standards - Resolve CI/CD pipeline formatting failures - Maintain consistent code style across the entire codebase
This commit is contained in:
@@ -1,84 +1,93 @@
|
||||
import logging
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.db import transaction
|
||||
from stiftung.models import Land, Verpachtung, Paechter
|
||||
import logging
|
||||
|
||||
from stiftung.models import Land, Paechter, Verpachtung
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Migriert bestehende Verpachtungen in die neue Land-Struktur'
|
||||
help = "Migriert bestehende Verpachtungen in die neue Land-Struktur"
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument(
|
||||
'--dry-run',
|
||||
action='store_true',
|
||||
help='Zeigt nur an, was gemacht würde, ohne Änderungen zu speichern',
|
||||
"--dry-run",
|
||||
action="store_true",
|
||||
help="Zeigt nur an, was gemacht würde, ohne Änderungen zu speichern",
|
||||
)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
dry_run = options['dry_run']
|
||||
|
||||
dry_run = options["dry_run"]
|
||||
|
||||
if dry_run:
|
||||
self.stdout.write(self.style.WARNING('DRY RUN - Keine Änderungen werden gespeichert!'))
|
||||
|
||||
self.stdout.write(
|
||||
self.style.WARNING("DRY RUN - Keine Änderungen werden gespeichert!")
|
||||
)
|
||||
|
||||
# Alle aktiven Verpachtungen finden
|
||||
aktive_verpachtungen = Verpachtung.objects.filter(status='aktiv')
|
||||
|
||||
self.stdout.write(f'Gefunden: {aktive_verpachtungen.count()} aktive Verpachtungen')
|
||||
|
||||
aktive_verpachtungen = Verpachtung.objects.filter(status="aktiv")
|
||||
|
||||
self.stdout.write(
|
||||
f"Gefunden: {aktive_verpachtungen.count()} aktive Verpachtungen"
|
||||
)
|
||||
|
||||
migrated_count = 0
|
||||
skipped_count = 0
|
||||
|
||||
|
||||
with transaction.atomic():
|
||||
for verpachtung in aktive_verpachtungen:
|
||||
land = verpachtung.land
|
||||
|
||||
|
||||
# Prüfen ob bereits migriert
|
||||
if land.aktueller_paechter is not None:
|
||||
self.stdout.write(
|
||||
self.style.WARNING(
|
||||
f'Übersprungen: {land} hat bereits einen aktuellen Pächter'
|
||||
f"Übersprungen: {land} hat bereits einen aktuellen Pächter"
|
||||
)
|
||||
)
|
||||
skipped_count += 1
|
||||
continue
|
||||
|
||||
|
||||
# Migration durchführen
|
||||
self.stdout.write(f'Migriere: {land} -> {verpachtung.paechter}')
|
||||
|
||||
self.stdout.write(f"Migriere: {land} -> {verpachtung.paechter}")
|
||||
|
||||
if not dry_run:
|
||||
# Pächter-Daten ins Land übertragen
|
||||
land.aktueller_paechter = verpachtung.paechter
|
||||
land.paechter_name = verpachtung.paechter.get_full_name()
|
||||
land.paechter_anschrift = self._get_paechter_anschrift(verpachtung.paechter)
|
||||
land.paechter_anschrift = self._get_paechter_anschrift(
|
||||
verpachtung.paechter
|
||||
)
|
||||
land.pachtbeginn = verpachtung.pachtbeginn
|
||||
land.pachtende = verpachtung.pachtende
|
||||
land.verlaengerung_klausel = bool(verpachtung.verlaengerung)
|
||||
|
||||
|
||||
# Pachtzins übertragen
|
||||
land.pachtzins_pauschal = verpachtung.pachtzins_jaehrlich
|
||||
|
||||
|
||||
# Verpachtete Fläche aktualisieren (falls nicht gesetzt)
|
||||
if land.verp_flaeche_aktuell == 0:
|
||||
land.verp_flaeche_aktuell = verpachtung.verpachtete_flaeche
|
||||
|
||||
|
||||
land.save()
|
||||
|
||||
|
||||
migrated_count += 1
|
||||
|
||||
|
||||
if dry_run:
|
||||
self.stdout.write(
|
||||
self.style.SUCCESS(
|
||||
f'DRY RUN abgeschlossen: {migrated_count} Verpachtungen würden migriert, {skipped_count} übersprungen'
|
||||
f"DRY RUN abgeschlossen: {migrated_count} Verpachtungen würden migriert, {skipped_count} übersprungen"
|
||||
)
|
||||
)
|
||||
else:
|
||||
self.stdout.write(
|
||||
self.style.SUCCESS(
|
||||
f'Migration abgeschlossen: {migrated_count} Verpachtungen migriert, {skipped_count} übersprungen'
|
||||
f"Migration abgeschlossen: {migrated_count} Verpachtungen migriert, {skipped_count} übersprungen"
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def _get_paechter_anschrift(self, paechter):
|
||||
"""Erstellt eine Anschrift aus den Pächter-Daten"""
|
||||
parts = []
|
||||
@@ -88,5 +97,5 @@ class Command(BaseCommand):
|
||||
parts.append(f"{paechter.plz} {paechter.ort}")
|
||||
elif paechter.ort:
|
||||
parts.append(paechter.ort)
|
||||
|
||||
return '\n'.join(parts) if parts else ''
|
||||
|
||||
return "\n".join(parts) if parts else ""
|
||||
|
||||
Reference in New Issue
Block a user