Zum Inhalt

Reporting-App-Referenz

Die Reporting-App bietet zentralisierte Berichte und Analysen innerhalb der Bifolk-Anwendung. Sie fasst Leistungsberichte zu Bienenstöcken, Lageranalysen, Betriebskostenverfolgung und die Rückverfolgbarkeit der Honig-Pipeline in einem einzigen Berichts-Hub mit Datumsbereichsfilterung und Diagrammvisualisierungen zusammen.

Übersicht

Speicherort: app/reporting/

Zweck: Zentralisierte Berichte und Analysen mit Diagrammvisualisierungen und Datumsbereichsfilterung

Wichtige Modelle: Keine (liest aus Modellen der Apps hives, warehouse und organizations)

Abhängigkeiten: hives, warehouse, organizations, systemconfig


Dateistruktur

reporting/
├── apps.py                # AppConfig
├── models.py              # Leer (keine eigenen Modelle)
├── admin.py               # Leer
├── tests.py               # Leer
├── utils.py               # Datumsbereichs-Hilfsfunktion (get_default_date_range)
├── urls.py                # 8 URL-Muster
├── views/
│   ├── __init__.py        # Re-Exports aller Views
│   ├── hive_reports.py    # 4 Views (Ernte, Metriken, Gesundheit, Feuchtigkeit)
│   ├── honey_reports.py   # 1 View (Honig-Pipeline)
│   ├── warehouse_reports.py  # 2 Views (Inventarwert, Verkaufszusammenfassung)
│   └── operations_reports.py # 1 View (Betriebskosten)
├── forms/
│   ├── __init__.py        # Re-Exports aller Formulare
│   ├── filter_forms.py    # 3 Formulare (Bienenstock-Berichtsfilter)
│   └── warehouse_filters.py  # 4 Formulare (Lager-/Betriebs-/Honigfilter)
├── templates/reporting/
│   ├── harvest_report.html
│   ├── metrics_dashboard.html
│   ├── health_changes_report.html
│   ├── moisture_report.html
│   ├── honey_pipeline_report.html
│   ├── inventory_value_report.html
│   ├── sales_summary_report.html
│   └── operations_cost_report.html
└── migrations/

Views

Alle Views erfordern eine Authentifizierung (@login_required oder LoginRequiredMixin) und berücksichtigen die seitenweite Organisationsauswahl über request.current_organization.

Bienenstock-Berichte (views/hive_reports.py)

View Typ URL-Name Zweck
harvest_report FBV reporting:harvest-report Erntestatistiken mit Aufschlüsselung pro Bienenstock und monatlichen Trends
hive_metrics_dashboard FBV reporting:hive-metrics-dashboard Gewichts- und Zargentrends der Bienenstöcke mit saisonalen Prognosen
health_changes_report FBV reporting:health-changes-report Zeitleiste der Gesundheitsstatusänderungen und Durchsichtbeobachtungen
MoistureReportView CBV (TemplateView) reporting:moisture-report Feuchtigkeitsstatistiken gruppiert nach Charge

Lager-Berichte (views/warehouse_reports.py)

View Typ URL-Name Zweck
inventory_value_report FBV reporting:inventory-value-report Gesamtinventarwert nach Kategorie und Standort mit Warnungen bei niedrigem Bestand
sales_summary_report FBV reporting:sales-summary-report Umsatz nach Datumsbereich, Zahlungsmethoden und meistverkauften Produkten

Betriebsberichte (views/operations_reports.py)

View Typ URL-Name Zweck
operations_cost_report FBV reporting:operations-cost-report Betriebskosten nach Typ (Fütterung, Behandlung, Wartung) mit Aufschlüsselung pro Bienenstock

Honig-Berichte (views/honey_reports.py)

View Typ URL-Name Zweck
honey_pipeline_report FBV reporting:honey-pipeline-report Vollständige Rückverfolgbarkeit von der Ernte bis zum Glas mit Pipeline-Zusammenfassung

View-Details

harvest_report

Umfassende Ernteberichterstattung mit Zusammenfassungsstatistiken, Aufschlüsselung pro Bienenstock und monatlichen Trends.

Bereitgestellte Daten:

  • Zusammenfassungsstatistiken: Gesamternten, Gesamtgewicht (kg), Durchschnittsgewicht, Gesamtrahmen
  • Aufschlüsselung pro Bienenstock: Gleichmäßige Gewichtsverteilung bei Ernten aus mehreren Bienenstöcken, sortiert nach Gesamtgewicht
  • Monatliche Aufschlüsselung: Ernteanzahl, Gesamtgewicht, Durchschnittsgewicht, Gesamtrahmen pro Monat
  • Diagrammdaten: JSON-Arrays für monatliche Gewichtstrends, Ernteanzahl und Bienenstockvergleichs-Balkendiagramm
  • Durchschnittsernte pro Bienenstock: Berechnet aus der Bienenstock-Aufschlüsselung

Filterformular: HarvestReportFilterForm (Datumsbereich, Bienenstockauswahl)

hive_metrics_dashboard

Dashboard mit Gewichts- und Zargentrends der Bienenstöcke über die Zeit mit saisonalen Prognosen.

Bereitgestellte Daten:

  • Zusammenfassungsstatistiken: Gesamtdurchsichten, Durchsichten mit Gewicht, Durchschnitts-/Min-/Max-Gewicht, durchschnittliche Zargenanzahl
  • Daten pro Bienenstock: Letztes Gewicht, letzte Zargenanzahl, Durchsichtanzahl pro Bienenstock (nach Name sortiert)
  • Monatliche Aufschlüsselung: Durchsichtanzahl, Durchschnittsgewicht, durchschnittliche Zargenanzahl pro Monat
  • Gewichtstrends pro Bienenstock: Zeitreihendaten für bis zu 5 Bienenstöcke (Mehrliniendiagramm)
  • Saisonale Prognosen: Prognoseanzeige über HoneyForecastService für bis zu 5 Bienenstöcke

Filterformular: HiveMetricsFilterForm (Datumsbereich, Bienenstockauswahl)

Besonderes Verhalten: Leitet beim ersten Laden (ohne GET-Parameter) mit Standard-Datumsparametern weiter.

health_changes_report

Gesundheitsänderungsbericht mit einer kombinierten Zeitleiste von Bienenstock-Statusänderungen, Königinnen-Statusänderungen und Durchsichten mit Gesundheitsproblemen.

Bereitgestellte Daten:

  • Zeitleistenereignisse: Zusammengeführte und umgekehrt chronologisch sortierte Liste von:
    • Bienenstock-Gesundheitsstatusänderungen (Typ: hive_status_change)
    • Königinnen-Gesundheitsstatusänderungen (Typ: queen_status_change)
    • Durchsichten mit Problemen: Krankheit, Schädlinge oder aggressives Verhalten (Typ: inspection)
  • Zusammenfassungsstatistiken: Überwachte Bienenstöcke, Anzahl Gesundheitsänderungen, Durchsichten mit Problemen, überwachte Tage
  • Statusverteilung: Aktuelle Gesundheitsstatuszählung über ausgewählte Bienenstöcke
  • Zusammenfassungen pro Bienenstock: Änderungsanzahl, Durchsichtanzahl, letzte Durchsicht (begrenzt auf 20 Bienenstöcke)
  • Gesundheitstrend-Diagramme: Numerische Gesundheitsstatuswerte über die Zeit für bis zu 5 Bienenstöcke (Bienenstock und Königin)

Filterformular: HealthChangesReportFilterForm (Datumsbereich, Bienenstockauswahl, Durchsichten einbeziehen)

MoistureReportView

Klassenbasierter View zur Anzeige des Feuchtigkeitsberichts über Honigeimer.

Bereitgestellte Daten:

  • Gesamtstatistiken: Eimer-Gesamtanzahl, Durchschnitts-/Min-/Max-Feuchtigkeitsprozent
  • Eimerliste: Alle Eimer mit Feuchtigkeitsdaten, sortiert nach Fülldatum (absteigend)
  • Nach Charge: Feuchtigkeitsstatistiken gruppiert nach Chargenkennung, Honigtyp und Jahr

Filterung: Einfacher Datumsbereich über GET-Parameter (start_date, end_date), keine dedizierte Formularklasse.

inventory_value_report

Inventarwertbericht mit Gesamtwert nach Kategorie und Standort sowie Warnungen bei niedrigem Bestand.

Bereitgestellte Daten:

  • Zusammenfassungsstatistiken: Gesamtartikel, Gesamtmenge, Gesamtwert, Anzahl Artikel mit niedrigem Bestand
  • Wert nach Kategorie: Gesamtwert, Artikelanzahl, Gesamtmenge pro Kategorie (Ausrüstung, Produkt, Verbrauchsmaterial)
  • Wert nach Standort: Gesamtwert und Artikelanzahl pro Lagerstandort
  • Artikel mit niedrigem Bestand: Artikel, bei denen die Menge unter dem Minimum liegt (begrenzt auf 20)
  • Diagrammdaten: JSON-Arrays für Kategorieaufschlüsselungs-Kreis-/Balkendiagramm

Filterformular: InventoryValueFilterForm (Kategorie, Standort, nur Artikel mit niedrigem Bestand anzeigen)

sales_summary_report

Verkaufszusammenfassungsbericht mit Umsatz, Zahlungsmethoden und meistverkauften Produkten.

Bereitgestellte Daten:

  • Zusammenfassungsstatistiken: Gesamtverkaufsanzahl, Gesamtumsatz, Anzahl/Summe unbezahlter Verkäufe, durchschnittlicher Verkaufsbetrag
  • Umsatz nach Zahlungsmethode: Summe und Anzahl pro Zahlungsmethode
  • Monatlicher Umsatz: Monatlicher Summen- und Anzahltrend
  • Top-Produkte: Top 10 Produkte nach Gesamtumsatz (Menge, Umsatz, Verkaufsanzahl)
  • Unbezahlte Verkäufe: Die 10 neuesten unbezahlten Verkäufe
  • Diagrammdaten: JSON-Arrays für monatliches Umsatztrend-Diagramm

Filterformular: SalesSummaryFilterForm (Datumsbereich, Zahlungsstatus)

operations_cost_report

Betriebskostenbericht mit Kosten nach Betriebsart, Aufschlüsselung pro Bienenstock und monatlichen Trends.

Bereitgestellte Daten:

  • Zusammenfassungsstatistiken: Gesamtkosten, Kosten pro Typ, Bienenstockanzahl, durchschnittliche Kosten pro Bienenstock, Betriebsanzahl
  • Kosten nach Typ: Fütterungs-, Behandlungs- und Wartungskosten mit jeweiliger Anzahl
  • Kosten pro Bienenstock: Aufschlüsselung der Fütterungs-/Behandlungs-/Wartungskosten pro Bienenstock (begrenzt auf 20 Bienenstöcke, sortiert nach Gesamtkosten)
  • Monatlicher Kostentrend: Gestapeltes Balkendiagramm mit Fütterung/Behandlung/Wartung pro Monat
  • Kreisdiagramm-Daten: Kostenverteilung nach Betriebsart

Filterformular: OperationsCostFilterForm (Datumsbereich, Betriebsart, Bienenstock)

honey_pipeline_report

Honig-Pipeline-Bericht mit vollständiger Rückverfolgbarkeit von der Ernte bis zum endgültigen Glasstatus.

Bereitgestellte Daten:

  • Pipeline-Zusammenfassung: Gesamt-kg geerntet, in Eimern, in Gläsern; Anzahl von Ernten, Chargen, Eimern, Gläsern
  • Ernte nach Typ: Gesamtgewicht, Ernteanzahl, Durchschnittsgewicht pro Honigtyp
  • Chargen-Zusammenfassung: Offene/geschlossene Chargenanzahl nach Honigtyp
  • Eimer-Zusammenfassung: Eimer-Gesamtanzahl, Gesamtgewicht, durchschnittliche Feuchtigkeit pro Honigtyp
  • Glasstatus-Verteilung: Anzahl und Gesamtgewicht pro Glasstatus (mit Anzeigenamen)
  • Neueste Chargen: Die letzten 5 Chargen mit zugehörigen Daten
  • Diagrammdaten: JSON-Arrays für Ernte-nach-Typ- und Glasstatusverteilungs-Diagramme

Filterformular: HoneyPipelineFilterForm (Datumsbereich)


Formulare

Bienenstock-Berichtsfilter (forms/filter_forms.py)

Formular Felder Zweck
HarvestReportFilterForm start_date, end_date, hives (Mehrfachauswahl) Ernteberichte nach Datumsbereich und Bienenstock filtern
HealthChangesReportFilterForm start_date, end_date, hives (Mehrfachauswahl), include_inspections (Kontrollkästchen) Gesundheitsberichte mit Durchsicht-Umschalter filtern
HiveMetricsFilterForm start_date, end_date, hives (Mehrfachauswahl) Metriken-Dashboard nach Datumsbereich und Bienenstock filtern

Gemeinsame Muster:

  • Alle Formulare akzeptieren user und current_organization im Konstruktor
  • Bienenstock-Querysets werden dynamisch nach den zugänglichen Organisationen des Benutzers gefiltert
  • Der Standard-Datumsbereich wird aus der Benutzerprofileinstellung über get_default_date_range() gesetzt
  • Alle Formulare validieren, dass das Startdatum vor dem Enddatum liegt

Lager- und Betriebsfilter (forms/warehouse_filters.py)

Formular Felder Zweck
InventoryValueFilterForm category (Auswahl), location (Modellauswahl), show_low_stock_only (Kontrollkästchen) Inventarwertbericht filtern
SalesSummaryFilterForm start_date, end_date, payment_status (Auswahl: alle/bezahlt/unbezahlt) Verkaufszusammenfassungsbericht filtern
OperationsCostFilterForm start_date, end_date, operation_type (Auswahl: alle/Fütterung/Behandlung/Wartung), hive (Modellauswahl) Betriebskostenbericht filtern
HoneyPipelineFilterForm start_date, end_date Honig-Pipeline-Bericht filtern

Hilfsfunktionen (utils.py)

get_default_date_range(user)

Berechnet den Standard-Datumsbereich basierend auf der Benutzerprofileinstellung.

Parameter:

Parameter Typ Beschreibung
user User (optional) Aktueller Benutzer zum Lesen der Einstellungen

Rückgabe: Tuple[date, date] (start_date, end_date)

Verhalten:

  • Liest die Einstellung user.profile.default_report_date_range
  • 'current_year' (Standard): 1. Januar des aktuellen Jahres bis heute
  • 'last_365_days': 365 Tage zurück bis heute

URL-Konfiguration

Alle URLs befinden sich unter dem Präfix /reports/ (eingebunden über path('reports/', include('reporting.urls'))).

URL-Muster View Name
harvest/ harvest_report reporting:harvest-report
health-changes/ health_changes_report reporting:health-changes-report
metrics/ hive_metrics_dashboard reporting:hive-metrics-dashboard
moisture/ MoistureReportView reporting:moisture-report
inventory-value/ inventory_value_report reporting:inventory-value-report
sales-summary/ sales_summary_report reporting:sales-summary-report
operations-cost/ operations_cost_report reporting:operations-cost-report
honey-pipeline/ honey_pipeline_report reporting:honey-pipeline-report

Diagrammvisualisierungen

Alle Berichte übergeben Diagrammdaten als JSON-serialisierte Arrays an Templates für die clientseitige Darstellung. Die folgenden Diagrammtypen werden in den Berichten verwendet:

Bericht Diagrammtypen Datenformat
Erntebericht Liniendiagramm (monatliches Gewicht), Balkendiagramm (Bienenstockvergleich) Labels + Werte-Arrays
Metriken-Dashboard Liniendiagramm (Durchschnittsgewicht, Zargen über Zeit), Mehrlinien-Bienenstockgewicht Labels + Werte-Arrays, Dict pro Bienenstock
Gesundheitsänderungen Liniendiagramm (Gesundheitsstatus numerisch über Zeit, pro Bienenstock und Königin) Dict pro Bienenstock mit Datum/Wert-Paaren
Betriebskosten Gestapeltes Balkendiagramm (monatliche Kosten nach Typ), Kreisdiagramm (Kostenverteilung) Labels + Werte-Arrays pro Typ
Honig-Pipeline Kreis-/Balkendiagramm (Ernte nach Typ), Kreisdiagramm (Glasstatus-Verteilung) Labels + Werte-Arrays
Inventarwert Kreis-/Balkendiagramm (Wert nach Kategorie) Labels + Werte-Arrays
Verkaufszusammenfassung Liniendiagramm (monatlicher Umsatz) Labels + Werte-Arrays

Organisationsfilterung

Alle Berichte berücksichtigen die seitenweite Organisationsauswahl:

  1. Wenn request.current_organization gesetzt ist, werden die Daten auf diese Organisation gefiltert
  2. Andernfalls werden die Daten auf alle Organisationen gefiltert, auf die der Benutzer Zugriff hat (über get_user_organizations())

Dies gewährleistet die mandantenfähige Datenisolation über alle Berichte hinweg.


App-übergreifende Abhängigkeiten

Abhängigkeit Verwendete Modelle Zweck
hives Hive, HiveInspection, HarvestRecord, HealthStatusChange, QueenHealthStatusChange, HoneyBatch, HoneyBucket, HoneyJar, HiveFeeding, HiveTreatment, HiveMaintenance Kern-Imkereidaten für Bienenstock-, Gesundheits- und Honig-Pipeline-Berichte
hives.services HoneyForecastService Saisonale Ernteprognosen im Metriken-Dashboard
warehouse InventoryItem, ProductSale, ProductSaleItem, WarehouseLocation Inventar- und Verkaufsdaten für Lagerberichte
organizations get_user_organizations, filter_by_user_organizations Organisationsbezogener Datenzugriff
systemconfig get_queryset_for_category Konfigurationsabfrage für Gesundheitsstatusoptionen

Wichtige Funktionen

  • 8 Berichtstypen: Abdeckung von Bienenstockleistung, Gesundheitsüberwachung, Honig-Rückverfolgbarkeit, Lagerinventar, Verkäufe und Betriebskosten
  • Datumsbereichsfilterung: Alle Berichte unterstützen konfigurierbare Datumsbereiche mit benutzerdefinierten Standardwerten
  • Diagrammvisualisierungen: JSON-serialisierte Daten für clientseitige Diagrammdarstellung (Linien-, Balken-, Kreis-, gestapelte Balkendiagramme)
  • Organisationsbewusst: Alle Berichte berücksichtigen die seitenweite Organisationsauswahl für mandantenfähige Datenisolation
  • Aufschlüsselung pro Bienenstock: Ernte-, Metriken-, Gesundheits- und Kostenberichte beinhalten Details pro Bienenstock
  • Honig-Rückverfolgbarkeit: Pipeline-Bericht verfolgt Honig von der Ernte über Charge und Eimer bis zum Glasstatus
  • Saisonale Prognosen: Das Metriken-Dashboard enthält gewichtsbasierte Ernteprognosen über den HoneyForecastService
  • Benutzerpräferenz-Standardwerte: Der Standard-Datumsbereich berücksichtigt die Benutzerprofileinstellung (aktuelles Jahr oder letzte 365 Tage)

Siehe auch

  • Hives-App - Quellmodelle für Bienenstock-, Ernte-, Gesundheits- und Honigberichte
  • Warehouse-App - Quellmodelle für Inventar- und Verkaufsberichte
  • Organizations-App - Organisationsfilterung, die von allen Berichten verwendet wird