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/assets.xml',
|
||||||
'views/machine_product_training_views.xml',
|
'views/machine_product_training_views.xml',
|
||||||
'data/data.xml',
|
'data/data.xml',
|
||||||
'data/data_product_and_categories.xml',
|
#'data/data_product_and_categories.xml',
|
||||||
'data/machine_product_links.xml',
|
#'data/machine_product_links.xml',
|
||||||
|
|
||||||
],
|
],
|
||||||
'qweb': [
|
'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
|
# Part of Odoo Open Workshop
|
||||||
|
|
||||||
from odoo import models, fields, api
|
from odoo import models, fields, api
|
||||||
|
from markupsafe import escape as html_escape
|
||||||
import logging
|
import logging
|
||||||
_logger = logging.getLogger(__name__)
|
_logger = logging.getLogger(__name__)
|
||||||
_logger.info("✅ ows_models.py geladen")
|
_logger.info("✅ ows_models.py geladen")
|
||||||
|
|
@ -190,24 +191,37 @@ class ResPartner(models.Model):
|
||||||
('vvow_metall_chop_saw', 'kreissaege_metall'),
|
('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 partner in self.search([]):
|
||||||
for field_name, machine_code in mapping:
|
for field_name, machine_code in mapping:
|
||||||
if getattr(partner, field_name, False):
|
if getattr(partner, field_name, False):
|
||||||
machine = self.env['ows.machine'].search([('code', '=', machine_code)], limit=1)
|
machine = self.env['ows.machine'].search([('code', '=', machine_code)], limit=1)
|
||||||
if machine:
|
if not machine:
|
||||||
already_exists = self.env['ows.machine.access'].search_count([
|
continue
|
||||||
('partner_id', '=', partner.id),
|
|
||||||
('machine_id', '=', machine.id),
|
# Suche nach dem mail.message, das die Änderung dokumentiert
|
||||||
])
|
body_snippet = self.fields_get([field_name])[field_name]['string']
|
||||||
if not already_exists:
|
message = MailMessage.search([
|
||||||
self.env['ows.machine.access'].create({
|
('model', '=', 'res.partner'),
|
||||||
'partner_id': partner.id,
|
('res_id', '=', partner.id),
|
||||||
'machine_id': machine.id,
|
('body', 'ilike', html_escape(body_snippet)),
|
||||||
'date_granted': partner.create_date.date() if partner.create_date else date.today(),
|
('body', 'ilike', 'Ja') # oder ggf. 'True'
|
||||||
})
|
], order='create_date ASC', limit=1)
|
||||||
count += 1
|
|
||||||
_logger.info(f"[OWS Migration] {count} Maschinenfreigaben aus alten Feldern erstellt.")
|
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()
|
self.env.cr.commit()
|
||||||
|
|
||||||
class OwsUser(models.Model):
|
class OwsUser(models.Model):
|
||||||
|
|
|
||||||
|
|
@ -17,4 +17,10 @@ def run_migration(cr, registry):
|
||||||
env['res.partner'].migrate_existing_partners()
|
env['res.partner'].migrate_existing_partners()
|
||||||
_logger.info("[OWS] Automatische Partner-Migration abgeschlossen.")
|
_logger.info("[OWS] Automatische Partner-Migration abgeschlossen.")
|
||||||
except Exception as e:
|
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