DokuWiki: wiki_doku_id nutzt jetzt name + comp_serial_no für garantierte Eindeutigkeit

- _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
This commit is contained in:
Matthias Lotz 2026-01-18 12:53:06 +01:00
parent f9cbcffe34
commit b85ec97d9c
2 changed files with 20 additions and 13 deletions

View File

@ -12,6 +12,5 @@
<field name="model_id" ref="model_db_backup" />
<field name="state">code</field>
<field name="code">model.action_backup_all()</field>
<field name="time_limit">3600</field>
</record>
</odoo>

View File

@ -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}