removed predefined data(einweisung), added fix_missing_parnters for migration db purpose
This commit is contained in:
parent
96a463561f
commit
5cc8ab7113
|
|
@ -16,8 +16,8 @@
|
|||
'views/assets.xml',
|
||||
'views/machine_product_training_views.xml',
|
||||
'data/data.xml',
|
||||
'data/data_product_and_categories.xml',
|
||||
'data/machine_product_links.xml',
|
||||
#'data/data_product_and_categories.xml',
|
||||
#'data/machine_product_links.xml',
|
||||
|
||||
],
|
||||
'qweb': [
|
||||
|
|
|
|||
31
fix_missing_partners.py
Normal file
31
fix_missing_partners.py
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo import SUPERUSER_ID
|
||||
from odoo.api import Environment
|
||||
import logging
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
MISSING_PARTNERS = [
|
||||
6534, 1594, 4700, 6557, 5392, 4960, 5226, 6535, 4666
|
||||
]
|
||||
|
||||
def insert_missing_partners(cr, registry):
|
||||
env = Environment(cr, SUPERUSER_ID, {})
|
||||
|
||||
for partner_id in MISSING_PARTNERS:
|
||||
cr.execute("""
|
||||
INSERT INTO res_partner (
|
||||
id, name, customer_rank, create_uid, create_date, write_uid, write_date
|
||||
)
|
||||
VALUES (%s, %s, 1, %s, now(), %s, now())
|
||||
ON CONFLICT (id) DO NOTHING;
|
||||
""", (partner_id, f"Fehlender Partner {partner_id}", SUPERUSER_ID, SUPERUSER_ID))
|
||||
|
||||
cr.execute("SELECT setval('res_partner_id_seq', (SELECT MAX(id) FROM res_partner));")
|
||||
|
||||
_logger.info(f"[OWS Repair] {len(MISSING_PARTNERS)} fehlende Partner hinzugefügt.")
|
||||
cr.commit()
|
||||
|
||||
# Automatischer Start in odoo-bin shell
|
||||
if 'env' in globals():
|
||||
insert_missing_partners(env.cr, env.registry)
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
# Part of Odoo Open Workshop
|
||||
|
||||
from odoo import models, fields, api
|
||||
from markupsafe import escape as html_escape
|
||||
import logging
|
||||
_logger = logging.getLogger(__name__)
|
||||
_logger.info("✅ ows_models.py geladen")
|
||||
|
|
@ -190,24 +191,37 @@ class ResPartner(models.Model):
|
|||
('vvow_metall_chop_saw', 'kreissaege_metall'),
|
||||
]
|
||||
|
||||
count = 0
|
||||
MachineAccess = self.env['ows.machine.access']
|
||||
MailMessage = self.env['mail.message']
|
||||
|
||||
count_created = 0
|
||||
for partner in self.search([]):
|
||||
for field_name, machine_code in mapping:
|
||||
if getattr(partner, field_name, False):
|
||||
machine = self.env['ows.machine'].search([('code', '=', machine_code)], limit=1)
|
||||
if machine:
|
||||
already_exists = self.env['ows.machine.access'].search_count([
|
||||
('partner_id', '=', partner.id),
|
||||
('machine_id', '=', machine.id),
|
||||
])
|
||||
if not already_exists:
|
||||
self.env['ows.machine.access'].create({
|
||||
'partner_id': partner.id,
|
||||
'machine_id': machine.id,
|
||||
'date_granted': partner.create_date.date() if partner.create_date else date.today(),
|
||||
})
|
||||
count += 1
|
||||
_logger.info(f"[OWS Migration] {count} Maschinenfreigaben aus alten Feldern erstellt.")
|
||||
if not machine:
|
||||
continue
|
||||
|
||||
# Suche nach dem mail.message, das die Änderung dokumentiert
|
||||
body_snippet = self.fields_get([field_name])[field_name]['string']
|
||||
message = MailMessage.search([
|
||||
('model', '=', 'res.partner'),
|
||||
('res_id', '=', partner.id),
|
||||
('body', 'ilike', html_escape(body_snippet)),
|
||||
('body', 'ilike', 'Ja') # oder ggf. 'True'
|
||||
], order='create_date ASC', limit=1)
|
||||
|
||||
date_granted = message.create_date if message else fields.Datetime.now()
|
||||
|
||||
if not MachineAccess.search([('partner_id', '=', partner.id), ('machine_id', '=', machine.id)]):
|
||||
MachineAccess.create({
|
||||
'partner_id': partner.id,
|
||||
'machine_id': machine.id,
|
||||
'date_granted': date_granted,
|
||||
})
|
||||
count_created += 1
|
||||
|
||||
_logger.info(f"[OWS Migration] ✅ Maschinenfreigaben erstellt: {count_created}")
|
||||
self.env.cr.commit()
|
||||
|
||||
class OwsUser(models.Model):
|
||||
|
|
|
|||
|
|
@ -17,4 +17,10 @@ def run_migration(cr, registry):
|
|||
env['res.partner'].migrate_existing_partners()
|
||||
_logger.info("[OWS] Automatische Partner-Migration abgeschlossen.")
|
||||
except Exception as e:
|
||||
_logger.error(f"[OWS] Fehler bei automatischer Migration: {e}")
|
||||
_logger.error(f"[OWS] Fehler bei automatischer Partner-Migration: {e}")
|
||||
|
||||
try:
|
||||
env['res.partner'].migrate_machine_access_from_old_fields()
|
||||
_logger.info("[OWS] Automatische Felder-Migration für Maschinenfreigaben in res.partner.")
|
||||
except Exception as e:
|
||||
_logger.error(f"[OWS] Fehler bei automatischer Felder-Migration: {e}")
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user