Breeding-App-Referenz¶
Die Breeding-App verwaltet Königinnenzuchtprogramme und Völkervermehrungsverfolgung, einschließlich Umlarven, Aufzucht, Völkerteilungsoperationen und Status-Audit-Protokollierung.
Übersicht¶
Speicherort: app/breeding/
Zweck: Königinnenzuchtprogramme und Völkervermehrung
Wichtige Modelle: QueenBreeding, ColonySplit, BreedingStatusChange, SplitStatusChange
Dateistruktur¶
breeding/
├── models.py # 4 Modelle (QueenBreeding, ColonySplit, BreedingStatusChange, SplitStatusChange)
├── views.py # 8 View-Klassen
├── forms.py # 4 Formulare (2 Modell-Formulare + 2 Filter-Formulare)
├── urls.py # 8 URL-Patterns
├── signals_status.py # 4 Signal-Handler (Statusänderungsverfolgung)
├── apps.py # AppConfig mit Signal-Import
├── admin.py # Django-Admin-Konfiguration
├── tests/ # Integrationstests
│ └── test_breeding_integration.py
└── templates/breeding/ # Zucht- und Ableger-Templates
Modelle¶
Siehe Datenbankmodelle - Breeding-App für vollständige Feldreferenz.
QueenBreeding¶
Erfasst Königinnenzuchtsitzungen von der Planung bis zum Legen. Verwendet OrgPermissionMixin mit breeder als Berechtigungsinhaber-Feld.
Zuchtmethoden: Konfigurierbar über Systemkonfiguration (Kategorie breeding_method)
Statusverlauf:
Planning → Grafted → Accepted → Capped → Emerged → Mated → Laying
↓ ↓ ↓ ↓ ↓ ↓
Failed Failed Failed Failed Failed Failed
Jeder Status kann in jeder Phase zu "Failed" wechseln. Sowohl "Laying" als auch "Failed" sind Endstatus.
Wichtige Felder:
- Zeitleiste:
breeding_date,graft_date,emergence_date,mating_flight_date,first_laying_date - Ergebnisse:
cells_started,cells_accepted,queens_emerged,queens_mated,queens_successfully_laying - Genetik:
mother_hive(genetische Quelle),breeding_hive(Arbeits-Zuchtstock),drone_source,breed_line - Bewertung:
quality_rating(konfigurierbar über Systemkonfiguration)
Property: success_rate -- Berechnet als (cells_accepted / cells_started) * 100
Konzeptionelle Trennung:
- mother_hive (Hive): Produktionsstock, der genetisches Material liefert (Larven/Eier)
- breeding_hive (BreedingHive): Dedizierter Zucht-Arbeitsbereich, in dem die Königinnenaufzucht stattfindet
Wichtige Methoden:
get_status_display()-- Gibt die lesbare Statusbezeichnung aus der Systemkonfiguration zurückclean()-- Validiert Statusübergänge gegen erlaubte Regelnsave(skip_validation=False)-- Führt vollständige Validierung vor dem Speichern aus;skip_validation=Truefür Admin-Überschreibungen
ColonySplit¶
Erfasst Völkerteilungsoperationen. Verwendet OrgPermissionMixin mit split_by als Berechtigungsinhaber-Feld.
Ablegertypen: Konfigurierbar über Systemkonfiguration (Kategorie split_type)
Statusverlauf:
"Failed" und "Combined" sind Endstatus.
Wichtige Felder:
parent_hive,new_hive-- Quell- und Ziel-Bienenstockframes_transferred,brood_frames,honey_frames-- Wabenanzahlen- Königinnenverwaltung:
queen_included,queen_cell_added,queen_introduced - Zeitleiste:
queen_introduction_date,queen_accepted_date,first_eggs_seen - Aktivitätsverfolgung:
assigned_to,scheduled_date,completed_date,priority,cost is_successful-- Endergebnis
Validierung: Zuchtstöcke können nicht als parent_hive oder new_hive bei Teilungen verwendet werden. Dies wird sowohl auf Modellebene (clean()) als auch auf Formularebene (ColonySplitForm.clean()) erzwungen.
BreedingStatusChange¶
Verfolgt historische Änderungen des Königinnenzuchtstatus. Erbt von AbstractStatusChange und verwendet DelegatedPermissionMixin, um Berechtigungen an den übergeordneten Zuchtdatensatz zu delegieren.
Felder: breeding (FK zu QueenBreeding), old_status, new_status, changed_at, changed_by, notes
SplitStatusChange¶
Verfolgt historische Änderungen des Völkerteilungsstatus. Erbt von AbstractStatusChange und verwendet DelegatedPermissionMixin, um Berechtigungen an den übergeordneten Teilungsdatensatz zu delegieren.
Felder: split (FK zu ColonySplit), old_status, new_status, changed_at, changed_by, notes
Views¶
Königinnenzucht¶
| View | Zweck |
|---|---|
| BreedingListView | Zuchteinträge mit Organisations-/Methoden-/Status-/Datumsfiltern und sortierbaren Spalten auflisten |
| BreedingDetailView | Zuchtdetails mit Berechtigungsprüfung anzeigen |
| BreedingCreateView | Zuchtdatensatz erstellen, Organisation und Züchter werden automatisch gesetzt |
| BreedingUpdateView | Zuchtdatensatz mit Berechtigungsprüfung aktualisieren |
Völkerteilungen¶
| View | Zweck |
|---|---|
| SplitListView | Ableger mit Organisations-/Typ-/Status-/Erfolgs-/Datumsfiltern und sortierbaren Spalten auflisten |
| SplitDetailView | Ablegerdetails mit Berechtigungsprüfung anzeigen |
| SplitCreateView | Ableger-Datensatz erstellen, Organisation und Teiler werden automatisch gesetzt |
| SplitUpdateView | Ableger-Datensatz mit Berechtigungsprüfung aktualisieren |
Alle Listenansichten verwenden SortableListMixin für Spaltensortierung und unterstützen Paginierung (20 Einträge pro Seite).
Formulare¶
QueenBreedingForm¶
Modellformular zum Erstellen und Bearbeiten von Königinnenzuchtdatensätzen. Befüllt Auswahlfelder aus der Systemkonfiguration:
breeding_methodaus der Kategorie breeding_methodstatusaus der Kategorie breeding_statusquality_ratingaus der Kategorie breeding_quality
Filtert mother_hive- und breeding_hive-Abfragen auf die Organisationen des Benutzers. Validiert alle Auswahlwerte gegen die Systemkonfiguration.
ColonySplitForm¶
Modellformular zum Erstellen und Bearbeiten von Völkerteilungsdatensätzen. Befüllt Auswahlfelder aus der Systemkonfiguration:
split_typeaus der Kategorie split_typestatusaus der Kategorie split_statuspriorityaus der Kategorie operation_priority
Filtert parent_hive- und new_hive-Abfragen auf die Organisationen des Benutzers. Verhindert, dass Zuchtstöcke als Elternstock bei Teilungen verwendet werden.
BreedingListFilterForm¶
Filter: Organisation, Zuchtmethode, Status, Startdatum, Enddatum. Standarddatumsbereich ist die letzten 365 Tage.
SplitListFilterForm¶
Filter: Organisation, Ablegertyp, Status, Erfolg, Startdatum, Enddatum. Standarddatumsbereich ist die letzten 365 Tage.
URL-Patterns¶
breeding/ → BreedingListView (breeding-list)
breeding/<int:pk>/ → BreedingDetailView (breeding-detail)
breeding/new/ → BreedingCreateView (breeding-create)
breeding/<int:pk>/edit/ → BreedingUpdateView (breeding-update)
breeding/splits/ → SplitListView (split-list)
breeding/split/<int:pk>/ → SplitDetailView (split-detail)
breeding/split/new/ → SplitCreateView (split-create)
breeding/split/<int:pk>/edit/ → SplitUpdateView (split-update)
Signale¶
Die Breeding-App verwendet vier Signal-Handler in signals_status.py, um Statusänderungen automatisch zu verfolgen:
| Signal | Auslöser | Zweck |
|---|---|---|
| track_breeding_status_pre_save | QueenBreeding pre_save | Speichert vorherigen Status zur Änderungserkennung |
| track_breeding_status_change | QueenBreeding post_save | Erstellt BreedingStatusChange-Audit-Datensatz |
| track_split_status_pre_save | ColonySplit pre_save | Speichert vorherigen Status zur Änderungserkennung |
| track_split_status_change | ColonySplit post_save | Erstellt SplitStatusChange-Audit-Datensatz |
Signal-Handler werden in apps.py geladen, wenn die App bereit ist.
Integration mit Hives-App¶
Königinnen-Abstammung¶
Königinnen, die durch Zuchtprogramme erstellt werden, verlinken zurück via breeding_record und mother_queen:
queen = Queen.objects.create(
hive=new_hive,
breeding_record=breeding, # Verlinkt zu QueenBreeding
mother_queen=source_queen, # Verlinkt zu Mutter für Abstammung
origin='bred_here',
)
Völkerteilung¶
Ableger erfordern, dass zuerst der neue Bienenstock erstellt wird, dann die Teilung erfasst wird:
new_hive = Hive.objects.create(name="Ableger-1", organization=org)
split = ColonySplit.objects.create(
parent_hive=existing_hive,
new_hive=new_hive,
frames_transferred=5,
)
Zuchtstock-Schutz¶
Zuchtstöcke (BreedingHive-Modell) können nicht für Völkerteilungen verwendet werden. Dies wird sowohl auf Modell- als auch auf Formularebene validiert, um ein versehentliches Teilen dedizierter Zuchtausrüstung zu verhindern.
Systemkonfigurations-Kategorien¶
Die Breeding-App verwendet die folgenden konfigurierbaren Auswahlkategorien:
| Kategorie-Code | Verwendet von | Zweck |
|---|---|---|
breeding_method |
QueenBreeding.breeding_method | Verfügbare Zuchtmethoden |
breeding_status |
QueenBreeding.status | Verfügbare Zuchtstatus |
breeding_quality |
QueenBreeding.quality_rating | Qualitätsbewertungsoptionen |
split_type |
ColonySplit.split_type | Verfügbare Ablegertypen |
split_status |
ColonySplit.status | Verfügbare Ablegerstatus |
operation_priority |
ColonySplit.priority | Prioritätsstufen |
Siehe auch¶
- Datenbankmodelle - Breeding
- Benutzerhandbuch - Zucht
- Hives-App-Referenz - Queen-Modell und Abstammung