DokuWiki: Reset-Funktion für Wiki-Sync-Status
Neue Funktion im Modul: - action_reset_wiki_sync_status() in maintenance_equipment.py - Setzt wiki_synced und wiki_last_sync zurück - Aufrufbar über Wizard: Wartung → Konfiguration → Wiki-Synchronisation - Neuer Modus: 'Sync-Status zurücksetzen' Verwendung: 1. Nach Namespace-Änderungen (ausruestung → ausstattung) 2. Wenn alle Equipment neu synchronisiert werden sollen 3. Bei Wiki-Struktur-Änderungen Setzt NUR den Status zurück, nicht die wiki_doku_id (wiki_doku_id kann bei Bedarf manuell zurückgesetzt werden)
This commit is contained in:
parent
a1c6903893
commit
e460acddf3
|
|
@ -776,3 +776,57 @@ Diese Seite wird automatisch aktualisiert.
|
|||
'error_messages': error_msg,
|
||||
'overview_url': '',
|
||||
}
|
||||
|
||||
@api.model
|
||||
def action_reset_wiki_sync_status(self):
|
||||
"""
|
||||
Setzt den Wiki-Synchronisationsstatus für alle Equipment zurück.
|
||||
Nützlich nach Namespace-Änderungen oder wenn alle Equipment neu synchronisiert werden sollen.
|
||||
|
||||
Setzt zurück:
|
||||
- wiki_synced auf False
|
||||
- wiki_last_sync auf NULL
|
||||
|
||||
Optional (auskommentiert):
|
||||
- wiki_doku_id auf NULL (nur wenn IDs komplett neu generiert werden sollen)
|
||||
|
||||
Returns:
|
||||
dict: Notification mit Anzahl zurückgesetzter Equipment
|
||||
"""
|
||||
equipment_records = self.search([
|
||||
('wiki_synced', '=', True)
|
||||
])
|
||||
|
||||
count = len(equipment_records)
|
||||
|
||||
if count == 0:
|
||||
return {
|
||||
'type': 'ir.actions.client',
|
||||
'tag': 'display_notification',
|
||||
'params': {
|
||||
'title': _('Wiki-Sync Reset'),
|
||||
'message': _('Keine synchronisierten Equipment gefunden.'),
|
||||
'type': 'warning',
|
||||
'sticky': False,
|
||||
}
|
||||
}
|
||||
|
||||
# Reset durchführen
|
||||
equipment_records.write({
|
||||
'wiki_synced': False,
|
||||
'wiki_last_sync': False,
|
||||
# 'wiki_doku_id': False, # Auskommentiert: Nur aktivieren wenn IDs neu generiert werden sollen
|
||||
})
|
||||
|
||||
_logger.info(f"Wiki-Sync-Status für {count} Equipment zurückgesetzt")
|
||||
|
||||
return {
|
||||
'type': 'ir.actions.client',
|
||||
'tag': 'display_notification',
|
||||
'params': {
|
||||
'title': _('Wiki-Sync Reset'),
|
||||
'message': _(f'{count} Equipment wurden zurückgesetzt und müssen neu synchronisiert werden.'),
|
||||
'type': 'success',
|
||||
'sticky': False,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ class EquipmentWikiSyncWizard(models.TransientModel):
|
|||
('area', 'Nach Bereich filtern'),
|
||||
('unsynced', 'Nur nicht synchronisierte'),
|
||||
('overview_table', 'Übersichtstabelle aktualisieren'),
|
||||
('reset_sync', 'Sync-Status zurücksetzen'),
|
||||
], string='Synchronisations-Modus', default='all', required=True)
|
||||
|
||||
ows_area_id = fields.Many2one(
|
||||
|
|
@ -52,6 +53,10 @@ class EquipmentWikiSyncWizard(models.TransientModel):
|
|||
if self.sync_mode == 'overview_table':
|
||||
return self._sync_overview_table()
|
||||
|
||||
# Reset-Modus: Sync-Status zurücksetzen
|
||||
if self.sync_mode == 'reset_sync':
|
||||
return self.env['maintenance.equipment'].action_reset_wiki_sync_status()
|
||||
|
||||
# Equipment-Liste basierend auf Modus ermitteln
|
||||
domain = []
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user