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
HoneyForecastServicefü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)
- Bienenstock-Gesundheitsstatusänderungen (Typ:
- 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
userundcurrent_organizationim 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:
- Wenn
request.current_organizationgesetzt ist, werden die Daten auf diese Organisation gefiltert - 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