- Add _generate_overview_table_row() to generate table row per equipment - Add action_sync_overview_table() for fast overview page sync - Add new sync mode 'Übersichtstabelle aktualisieren' in wizard - Add config parameters for overview page and template IDs - Add overview_url field to wizard result view - Columns: Name (linked), Status, Security Category, Area, Location, Image - Performance: Single page update without iterating all equipment - Include DokuWiki template and setup documentation - Requires DokuWiki DataTables plugin for sortable/filterable table - Fix: Use status_id instead of equipment_status_id |
||
|---|---|---|
| .. | ||
| data | ||
| models | ||
| security | ||
| views | ||
| wizard | ||
| __init__.py | ||
| __manifest__.py | ||
| hooks.py | ||
| README.md | ||
Equipment Übersichtstabelle - Setup
Voraussetzungen
Das datatables Plugin muss in DokuWiki installiert sein:
# Als DokuWiki Admin: Administration → Erweiterungsverwaltung
# Suche: "datatables"
# Installiere: "DataTables Plugin" von Matthias Schulte
Setup-Schritte
1. Template-Seite in DokuWiki erstellen
Erstelle die Seite: werkstatt:ausruestung:uebersicht_template
Kopiere den Inhalt aus: dokuwiki_uebersicht_template.txt
Wichtige Platzhalter:
{{EQUIPMENT_TABLE_ROWS}}→ Wird durch Tabellenzeilen ersetzt{{SYNC_DATETIME}}→ Wird durch Sync-Zeitstempel ersetzt
2. Odoo Konfiguration (optional)
Falls andere Seitennamen gewünscht:
# In Odoo: Einstellungen → Technisch → Parameter → Systemparameter
dokuwiki.overview_page_id = werkstatt:ausruestung:uebersicht
dokuwiki.overview_template_id = werkstatt:ausruestung:uebersicht_template
3. Erste Synchronisation
- In Odoo: Wartung → Konfiguration → Wiki-Synchronisation
- Wähle: "Übersichtstabelle aktualisieren"
- Klicke: "Synchronisieren"
Die Übersichtsseite wird erstellt unter: werkstatt:ausruestung:uebersicht
Features
DataTables Funktionen
- ✅ Sortieren nach allen Spalten (Klick auf Header)
- ✅ Filter/Suche über alle Felder
- ✅ Pagination bei vielen Einträgen
- ✅ Responsive Design
Spalten
| Spalte | Inhalt | Quelle |
|---|---|---|
| Name | Link zur Detail-Seite | maintenance.equipment.name |
| Status | In Betrieb, Wartung, etc. | equipment_status_id |
| Sicherheits-Kategorie | 🟢 Grün / 🟡 Gelb / 🔴 Rot | ows_category |
| Bereich | Holzwerkstatt, Metallwerkstatt, etc. | ows_area_id |
| Standort | Freier Text | location |
| Bild | Thumbnail 50px | image_1920 |
Performance
- ⚡ Schneller Sync: Keine DB-Iteration über 134 Einträge
- ⚡ Generiert nur eine Seite (statt 134 einzelne)
- ⚡ DokuWiki cached die Seite automatisch
Troubleshooting
"Template-Seite nicht gefunden"
→ Erstelle werkstatt:ausruestung:uebersicht_template in DokuWiki
DataTables funktioniert nicht
→ Installiere DataTables Plugin in DokuWiki
Bilder werden nicht angezeigt
→ Prüfe ob Equipment image_1920 Feld gesetzt hat
→ Bilder müssen zuerst via "Alle Equipment" Sync hochgeladen werden
Equipment fehlen in Tabelle
→ Nur Equipment mit gesetztem ows_area_id werden angezeigt
→ Prüfe Filter in action_sync_overview_table()
Workflow
┌─────────────────┐
│ Odoo Equipment │
│ (134 Einträge) │
└────────┬────────┘
│
▼
┌─────────────────────────┐
│ _generate_overview_ │
│ table_row() │ ← Pro Equipment eine Zeile
│ (maintenance_equipment) │
└────────┬────────────────┘
│ 134 Zeilen
▼
┌─────────────────────────┐
│ Template laden │
│ werkstatt:ausruestung: │
│ uebersicht_template │
└────────┬────────────────┘
│
▼
┌─────────────────────────┐
│ Placeholder ersetzen │
│ {{EQUIPMENT_TABLE_ROWS}}│
│ {{SYNC_DATETIME}} │
└────────┬────────────────┘
│
▼
┌─────────────────────────┐
│ Seite speichern │
│ werkstatt:ausruestung: │
│ uebersicht │
└─────────────────────────┘
Automatische Updates
Die Übersichtstabelle wird NICHT automatisch bei Equipment-Änderungen aktualisiert.
Manueller Sync empfohlen:
- Nach Massen-Importen
- Einmal täglich/wöchentlich
- Bei strukturellen Änderungen (neue Bereiche, etc.)
Alternativ: Cronjob einrichten
# In Odoo: Einstellungen → Technisch → Automatisierung → Geplante Aktionen
Name: Wiki Übersichtstabelle Update
Modell: maintenance.equipment
Aktion: action_sync_overview_table()
Intervall: Täglich um 02:00 Uhr
Verfügbare Platzhalter:
Basis-Felder (maintenance.equipment):
{name} - Equipment-Name {serial_no} - Seriennummer {model} - Modell {category} - Kategoriename {status} - Status (aus status_id) {status_smiley} - Status als Smiley (aus status_id.smiley Feld, z.B. :-) oder :-() {location} - Standort {ows_area} - Bereichsname {assign_date} - Zuweisungsdatum (formatiert) {cost} - Kosten {warranty_date} - Garantiedatum (formatiert) {note} - Notizen {partner_id} - Lieferant (Name) {partner_ref} - Lieferanten-Referenz Spezial-Felder:
{view_type} - "Bereich" oder "Einsatzzweck" {view_name} - Name des Bereichs/Einsatzzwecks {wiki_doku_page} - ID der zentralen Doku-Seite {wiki_doku_link} - Fertiger Link zur zentralen Doku-Seite {odoo_link} - Fertiger Link zur Odoo Equipment-Seite {odoo_url} - URL zur Odoo Equipment-Seite (ohne Link-Markup) {sync_datetime} - Aktuelles Datum/Zeit {image} - Equipment-Bild (300px Breite) - Format: {{:media_id?300}} {image_large} - Equipment-Bild (Originalgröße) - Format: {{:media_id}} {image_id} - Media-ID des Bildes (z.B. werkstatt:ausruestung:media:sabako-laser.jpg) ows.machine Felder (falls verknüpft):
{ows_machine_id.name} - Name {ows_machine_id.model} - Modell {ows_machine_id.serial_no} - Seriennummer {ows_machine_id.location} - Standort {ows_machine_id.note} - Notizen {ows_machine_id.category} - Sicherheitskategorie (red/yellow/green) {ows_machine_id.category_icon} - Kategorie-Icon als Emoji (🔴/🟡/🟢)