From b85ec97d9c16db73f76bca2281c41fb4b4d1af53 Mon Sep 17 00:00:00 2001 From: "matthias.lotz" Date: Sun, 18 Jan 2026 12:53:06 +0100 Subject: [PATCH] =?UTF-8?q?DokuWiki:=20wiki=5Fdoku=5Fid=20nutzt=20jetzt=20?= =?UTF-8?q?name=20+=20comp=5Fserial=5Fno=20f=C3=BCr=20garantierte=20Eindeu?= =?UTF-8?q?tigkeit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - _get_wiki_doku_id() generiert Format: {normalized_name}-{comp_serial_no} - Automatische Generierung von comp_serial_no falls nicht vorhanden - Nutzt aspl_equipment_qrcode_generator Modul für eindeutige Seriennummern - Entfernt Fallback zu name+model (kein Fallback mehr) - Vorbereitung für editierbare wiki_doku_id in nächstem Schritt --- open_workshop_auto_backup/data/ir_cron.xml | 1 - .../models/maintenance_equipment.py | 32 ++++++++++++------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/open_workshop_auto_backup/data/ir_cron.xml b/open_workshop_auto_backup/data/ir_cron.xml index b842550..873399d 100644 --- a/open_workshop_auto_backup/data/ir_cron.xml +++ b/open_workshop_auto_backup/data/ir_cron.xml @@ -12,6 +12,5 @@ code model.action_backup_all() - 3600 diff --git a/open_workshop_dokuwiki/models/maintenance_equipment.py b/open_workshop_dokuwiki/models/maintenance_equipment.py index b4ac4b9..6451cd5 100644 --- a/open_workshop_dokuwiki/models/maintenance_equipment.py +++ b/open_workshop_dokuwiki/models/maintenance_equipment.py @@ -123,11 +123,13 @@ class MaintenanceEquipment(models.Model): def _get_wiki_doku_id(self): """ - Generiert die Wiki-Dokumentations-ID aus dem Equipment-Namen und Modell. - Format: normalisierter_name-normalisiertes_modell (z.B. "formatkreissaege-bosch-abc") + Generiert die Wiki-Dokumentations-ID aus Equipment-Namen und comp_serial_no. + Format: normalisierter_name-comp_serial_no (z.B. "formatkreissaege-EQ001") + + Die comp_serial_no wird automatisch generiert falls noch nicht vorhanden. Returns: - str: Wiki-Doku-ID oder False wenn keine ID vorhanden + str: Wiki-Doku-ID oder False wenn kein Name vorhanden """ self.ensure_one() @@ -135,15 +137,20 @@ class MaintenanceEquipment(models.Model): if self.wiki_doku_id: return self.wiki_doku_id - # Generiere aus Equipment-Namen und Modell - if self.name: - normalized_name = self._normalize_wiki_name(self.name) - if self.model: - normalized_model = self._normalize_wiki_name(self.model) - return f"{normalized_name}-{normalized_model}" - return normalized_name + # Name ist erforderlich + if not self.name: + return False - return False + # comp_serial_no automatisch generieren falls nicht vorhanden + if not self.comp_serial_no: + self.generate_serial_no() + # Refresh nach generate_serial_no + self.refresh() + + # wiki_doku_id aus Name + comp_serial_no generieren + normalized_name = self._normalize_wiki_name(self.name) + normalized_serial = self._normalize_wiki_name(self.comp_serial_no) + return f"{normalized_name}-{normalized_serial}" def _get_wiki_page_id_by_area(self): """ @@ -237,7 +244,8 @@ class MaintenanceEquipment(models.Model): def _render_template_from_wiki(self, view_type='area'): """ Lädt c_template aus DokuWiki und ersetzt Platzhalter mit Odoo-Feldwerten. - Template-Pfad: werkstatt:ausruestung:c_template + Template-Pfad wird dynamisch aus dem Systemparameter 'dokuwiki.central_documentation_namespace' generiert. + Standard: werkstatt:ausstattung:odoo-status:c_template Platzhalter-Format: - {feldname} für maintenance.equipment Felder, z.B. {name}, {serial_no}