diff --git a/open_workshop_dokuwiki/models/maintenance_equipment.py b/open_workshop_dokuwiki/models/maintenance_equipment.py index 32819cc..722cc34 100644 --- a/open_workshop_dokuwiki/models/maintenance_equipment.py +++ b/open_workshop_dokuwiki/models/maintenance_equipment.py @@ -110,6 +110,48 @@ class MaintenanceEquipment(models.Model): default=True, help='Bei Änderungen automatisch zum Wiki synchronisieren' ) + wiki_doku_link = fields.Html( + string='Wiki Doku', + compute='_compute_wiki_doku_link', + sanitize=False, + help='Klickbarer Link zur Wiki-Dokumentationsseite' + ) + wiki_status_link = fields.Html( + string='Wiki Status', + compute='_compute_wiki_status_link', + sanitize=False, + help='Klickbarer Link zur Wiki-Status-Seite (Odoo-Daten)' + ) + + @api.depends('wiki_doku_id', 'wiki_page_url') + def _compute_wiki_doku_link(self): + """ + Generiert einen HTML-Link mit wiki_doku_id als Text und wiki_page_url als Ziel. + """ + for record in self: + if record.wiki_doku_id and record.wiki_page_url: + record.wiki_doku_link = f'{record.wiki_doku_id}' + else: + record.wiki_doku_link = '' + + @api.depends('wiki_status_id', 'name', 'comp_serial_no', 'ows_area_id') + def _compute_wiki_status_link(self): + """ + Generiert einen HTML-Link mit wiki_status_id als Text zur Odoo-Status-Seite. + """ + dokuwiki_client = self.env['dokuwiki.client'] + for record in self: + # wiki_status_id dynamisch berechnen falls noch nicht gesetzt + wiki_status_id = record.wiki_status_id or record._get_wiki_status_id() + if wiki_status_id and record.ows_area_id: + status_page_id = record._get_wiki_status_page_id() + if status_page_id: + status_url = dokuwiki_client.get_wiki_url(status_page_id) + record.wiki_status_link = f'{wiki_status_id}' + else: + record.wiki_status_link = '' + else: + record.wiki_status_link = '' @api.depends('ows_area_id') def _compute_wiki_page_url(self): diff --git a/open_workshop_dokuwiki/views/maintenance_equipment_views.xml b/open_workshop_dokuwiki/views/maintenance_equipment_views.xml index 6760737..8200459 100644 --- a/open_workshop_dokuwiki/views/maintenance_equipment_views.xml +++ b/open_workshop_dokuwiki/views/maintenance_equipment_views.xml @@ -1,6 +1,20 @@ + + + maintenance.equipment.tree.dokuwiki + maintenance.equipment + + + + + + + + + + maintenance.equipment.form.dokuwiki @@ -32,20 +46,16 @@ - - - - - - - + + + - - + + - +