fix: resolve Python code quality issues
- Fix undefined variable 'e' in PDF generator error handling - Replace undefined 'Verpachtung' model references with 'LandVerpachtung' - Fix all import and object access references to use correct model name - Resolve all flake8 F821 undefined name errors This addresses all code quality failures that were blocking CI pipeline.
This commit is contained in:
@@ -20,13 +20,15 @@ from django.conf import settings
|
||||
from .models import Person, Paechter, Destinataer, DokumentLink, Foerderung, Land, CSVImport, LandAbrechnung, LandVerpachtung, AppConfiguration, DestinataerUnterstuetzung, UnterstuetzungWiederkehrend
|
||||
import json
|
||||
|
||||
# Lazy import for PDF generator to avoid startup errors
|
||||
def get_pdf_generator():
|
||||
"""Lazy load PDF generator to handle missing dependencies gracefully"""
|
||||
try:
|
||||
from .utils.pdf_generator import pdf_generator
|
||||
return pdf_generator
|
||||
except ImportError as e:
|
||||
# Store the error message for use in MockPDFGenerator
|
||||
error_message = str(e)
|
||||
|
||||
# Return a mock generator if dependencies are missing
|
||||
class MockPDFGenerator:
|
||||
def is_available(self):
|
||||
@@ -40,7 +42,7 @@ def get_pdf_generator():
|
||||
<body>
|
||||
<h1>PDF Export Not Available</h1>
|
||||
<p>PDF generation requires additional system dependencies that are not installed.</p>
|
||||
<p>Error: {str(e)}</p>
|
||||
<p>Error: {error_message}</p>
|
||||
<p>Please install WeasyPrint dependencies or use CSV export instead.</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1418,7 +1420,7 @@ def verpachtung_list(request):
|
||||
|
||||
# Get unique gemeinden and statuses for filters
|
||||
gemeinden = Land.objects.values_list('gemeinde', flat=True).distinct().order_by('gemeinde')
|
||||
status_choices = Verpachtung.STATUS_CHOICES
|
||||
status_choices = LandVerpachtung.STATUS_CHOICES
|
||||
|
||||
context = {
|
||||
'page_obj': page_obj,
|
||||
@@ -2055,7 +2057,7 @@ def land_stats_api(request):
|
||||
stats = {
|
||||
'total_count': lands.count(),
|
||||
'total_flaeche': float(lands.aggregate(total=Sum('groesse_qm'))['total'] or 0),
|
||||
'total_verpachtet': float(Verpachtung.objects.filter(status='aktiv', land__in=lands).aggregate(
|
||||
'total_verpachtet': float(LandVerpachtung.objects.filter(status='aktiv', land__in=lands).aggregate(
|
||||
total=Sum('verpachtete_flaeche')
|
||||
)['total'] or 0),
|
||||
'avg_verpachtungsgrad': 0,
|
||||
@@ -2685,8 +2687,7 @@ def link_document_create(request):
|
||||
entity = Foerderung.objects.get(id=link_id)
|
||||
target_name = f"{entity.destinataer.get_full_name() if entity.destinataer else 'Unbekannt'} - {entity.jahr}"
|
||||
elif link_type == 'verpachtung':
|
||||
from stiftung.models import Verpachtung
|
||||
entity = Verpachtung.objects.get(id=link_id)
|
||||
entity = LandVerpachtung.objects.get(id=link_id)
|
||||
target_name = str(entity)
|
||||
elif link_type == 'rentmeister':
|
||||
from stiftung.models import Rentmeister
|
||||
@@ -2918,7 +2919,7 @@ def link_document_update(request):
|
||||
# Cleanup: Entferne verwaiste Pächter-Verknüpfungen wenn von Verpachtung weg geändert
|
||||
if old_verpachtung_id and link_type != 'verpachtung':
|
||||
try:
|
||||
old_verpachtung = Verpachtung.objects.select_related('paechter').get(id=old_verpachtung_id)
|
||||
old_verpachtung = LandVerpachtung.objects.select_related('paechter').get(id=old_verpachtung_id)
|
||||
if old_verpachtung.paechter:
|
||||
# Prüfe ob noch andere Verpachtungs-Links für diesen Pächter existieren
|
||||
other_verpachtung_links = DokumentLink.objects.filter(
|
||||
@@ -2933,7 +2934,7 @@ def link_document_update(request):
|
||||
paechter_id=old_verpachtung.paechter.id,
|
||||
kontext='paechter'
|
||||
).delete()
|
||||
except (Verpachtung.DoesNotExist, Exception):
|
||||
except (LandVerpachtung.DoesNotExist, Exception):
|
||||
pass
|
||||
|
||||
message = 'Verknüpfung aktualisiert'
|
||||
@@ -2990,9 +2991,9 @@ def link_document_delete(request, link_id):
|
||||
elif link.verpachtung_id:
|
||||
target_type = "verpachtung"
|
||||
try:
|
||||
entity = Verpachtung.objects.get(id=link.verpachtung_id)
|
||||
entity = LandVerpachtung.objects.get(id=link.verpachtung_id)
|
||||
target_name = str(entity)
|
||||
except Verpachtung.DoesNotExist:
|
||||
except LandVerpachtung.DoesNotExist:
|
||||
target_name = f"Verpachtung ID {link.verpachtung_id}"
|
||||
elif link.rentmeister_id:
|
||||
target_type = "rentmeister"
|
||||
@@ -3020,7 +3021,7 @@ def link_document_delete(request, link_id):
|
||||
# Cleanup NACH der Haupttransaktion: Wenn eine Verpachtungs-Verknüpfung gelöscht wurde, prüfe Pächter-Links
|
||||
if verpachtung_id_for_cleanup:
|
||||
try:
|
||||
verpachtung = Verpachtung.objects.select_related('paechter').get(id=verpachtung_id_for_cleanup)
|
||||
verpachtung = LandVerpachtung.objects.select_related('paechter').get(id=verpachtung_id_for_cleanup)
|
||||
if verpachtung.paechter:
|
||||
# Prüfe ob noch andere Verpachtungs-Links für diesen Pächter existieren
|
||||
other_verpachtung_links = DokumentLink.objects.filter(
|
||||
@@ -3035,7 +3036,7 @@ def link_document_delete(request, link_id):
|
||||
paechter_id=verpachtung.paechter.id,
|
||||
kontext='paechter'
|
||||
).delete()
|
||||
except (Verpachtung.DoesNotExist, Exception):
|
||||
except (LandVerpachtung.DoesNotExist, Exception):
|
||||
pass
|
||||
|
||||
return Response({'success': True})
|
||||
@@ -4384,7 +4385,7 @@ def verpachtung_export(request, pk):
|
||||
import os
|
||||
from django.http import HttpResponse
|
||||
|
||||
verpachtung = get_object_or_404(Verpachtung, pk=pk)
|
||||
verpachtung = get_object_or_404(LandVerpachtung, pk=pk)
|
||||
|
||||
# Create a temporary file for the ZIP
|
||||
temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='.zip')
|
||||
|
||||
Reference in New Issue
Block a user