fixed res.parnter update ows.user
This commit is contained in:
parent
7f4e7183ec
commit
d5d99b4d8d
44
Checkliste.md
Normal file
44
Checkliste.md
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# ✅ OpenWorkshop Test Checkliste
|
||||
|
||||
## 🔹 1. Migration
|
||||
- [ ] `migrate_existing_partners()` erzeugt zu jedem Partner genau einen `ows.user`.
|
||||
- [ ] `migrate_existing_partners()` übernimmt korrekt alte `vvow_*`-Felder.
|
||||
- [ ] `migrate_machine_access_from_old_fields()` erstellt korrekte Einträge in `ows.machine.access`.
|
||||
- [ ] `migrate_machine_access_from_old_fields()` übernimmt das Änderungsdatum aus `mail.tracking.value`.
|
||||
|
||||
## 🔹 2. Kontakte Backend
|
||||
- [ ] Beim Anlegen eines neuen Partners wird automatisch ein `ows.user` angelegt.
|
||||
- [ ] Änderungen an Geburtstag, RFID, Haftung in Partner-Formular schreiben korrekt in `ows.user`.
|
||||
- [ ] Die Werte aus `ows.user` werden korrekt im Partnerformular angezeigt (via `compute`).
|
||||
- [ ] Das HTML-Widget mit Maschinenfreigaben (`machine_access_html`) wird korrekt dargestellt.
|
||||
|
||||
## 🔹 3. POS-Integration
|
||||
- [ ] Felder aus `ows.user` (Geburtstag, RFID etc.) erscheinen im POS-Kunden-Popup.
|
||||
- [ ] Maschinenfreigaben erscheinen im POS-Layout korrekt gruppiert nach Bereichen.
|
||||
- [ ] Farben der Maschinenbereiche werden korrekt aus `color_hex` übernommen.
|
||||
|
||||
## 🔹 4. Maschinenverwaltung
|
||||
- [ ] Maschinen-Formular zeigt Nutzungs- und Einweisungsprodukte korrekt an.
|
||||
- [ ] Drop-downs in den Produktlisten zeigen nur Produkte der richtigen Kategorie.
|
||||
- [ ] Neue Zuordnungen können direkt in den Tree-Ansichten editiert werden.
|
||||
- [ ] Filter greifen korrekt (Maschinennutzung / Einweisungen).
|
||||
|
||||
## 🔹 5. Menüstruktur
|
||||
- [ ] Menüeinträge "Nutzungsprodukte" und "Einweisungsprodukte" erscheinen unter Konfiguration > Maschinen.
|
||||
- [ ] Klick auf "Alle Maschinen" öffnet die erwartete Listenansicht.
|
||||
|
||||
## 🔹 6. CSV/XML Demo-/Initialdaten
|
||||
- [ ] Maschinenbereiche (`ows.machine.area`) sind korrekt aus `data.xml` geladen.
|
||||
- [ ] Maschinen und ihre Produkt-Zuordnungen sind vollständig.
|
||||
- [ ] Kategorien und Produkte sind korrekt verknüpft (`product.category`, `product.product`).
|
||||
|
||||
## 🔹 7. Systemweite Konsistenz
|
||||
- [ ] Es gibt keine doppelten `ows.user`-Einträge.
|
||||
- [ ] Kein Partner existiert ohne zugehörigen `ows.user`.
|
||||
- [ ] `res.partner.ows_user_id` ist immer gefüllt.
|
||||
|
||||
## 🔹 8. Technische Qualität
|
||||
- [ ] Kein `@api.depends('id')` mehr vorhanden.
|
||||
- [ ] Commit wird in Migrationsfunktionen korrekt gesetzt (`self.env.cr.commit()`).
|
||||
- [ ] Keine toten `vvow_*` Felder mehr im Modell (wenn auf ows.user umgestellt).
|
||||
- [ ] post-init und pre-load Skripte laufen fehlerfrei bei Neuinstallation.
|
||||
|
|
@ -29,7 +29,10 @@ Dieses Odoo v13.0 Modul erweitert das POS- und Kontakt-Modul um Funktionen für
|
|||
|
||||
1. Dieses Modul in den Custom-Addons-Ordner kopieren
|
||||
2. Vor der Installation von open_worshop muss vvow_pos deinstalliert werden. Die Funktionalität von vvow_pos wird durch open_workshop ersetzt und erweitert.
|
||||
3. ggf. muss die alte Datenbank manuell migiriert werden, es gibt ca 9 gelöscht res.partner auf die Verweise aus POS bestehen. Diese res.parnter müssen wieder hergestellt werden. Dazu gibt es ein Skript unter scripts/fix_missing_pos_partner.py
|
||||
3. ggf. muss die alte Datenbank manuell migiriert werden, es gibt ca 9 gelöscht res.partner auf die Verweise aus POS bestehen. Diese res.parnter müssen wieder hergestellt werden. Dazu gibt es ein Skript unter
|
||||
```folder
|
||||
scripts/fix_missing_pos_partner.py
|
||||
```
|
||||
```bash
|
||||
opt/odoo/odoo/odoo-bin shell -d hobbyhimmel < scrpts/fix_missing_pos_partner.py
|
||||
```
|
||||
|
|
|
|||
BIN
data/ows.machine.product.xlsx
Normal file
BIN
data/ows.machine.product.xlsx
Normal file
Binary file not shown.
BIN
data/ows.machine.training.xlsx
Normal file
BIN
data/ows.machine.training.xlsx
Normal file
Binary file not shown.
|
|
@ -65,8 +65,14 @@ class ResPartner(models.Model):
|
|||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
partners = super().create(vals_list)
|
||||
for partner in partners:
|
||||
self.env['ows.user'].create({'partner_id': partner.id})
|
||||
for vals, partner in zip(vals_list, partners):
|
||||
self.env['ows.user'].create({
|
||||
'partner_id': partner.id,
|
||||
'birthday': vals.get('birthday'),
|
||||
'rfid_card': vals.get('rfid_card'),
|
||||
'security_briefing': vals.get('security_briefing'),
|
||||
'security_id': vals.get('security_id'),
|
||||
})
|
||||
return partners
|
||||
|
||||
machine_access_ids = fields.One2many(
|
||||
|
|
@ -209,10 +215,11 @@ class ResPartner(models.Model):
|
|||
# Änderungsverlauf durchsuchen: Wann wurde das Feld auf True gesetzt?
|
||||
tracking = TrackingValue.search([
|
||||
('field', '=', field_name),
|
||||
('new_value_boolean', '=', True),
|
||||
('field_type', '=', 'boolean'),
|
||||
('new_value_integer', '=', 1),
|
||||
('mail_message_id.model', '=', 'res.partner'),
|
||||
('mail_message_id.res_id', '=', partner.id),
|
||||
], order='mail_message_id.date ASC', limit=1)
|
||||
], order='id ASC', limit=1)
|
||||
|
||||
date_granted = tracking.mail_message_id.date if tracking else fields.Datetime.now()
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ def run_migration(cr, registry):
|
|||
except Exception as 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.")
|
||||
|
|
@ -26,6 +27,7 @@ def run_migration(cr, registry):
|
|||
except Exception as e:
|
||||
_logger.error(f"[OWS] Fehler bei automatischer Felder-Migration: {e}")
|
||||
|
||||
''' Funktioniert nicht:
|
||||
try:
|
||||
module = env['ir.module.module'].search([('name', '=', 'vvow_einweisungen')], limit=1)
|
||||
if module and module.state != 'uninstalled':
|
||||
|
|
@ -33,3 +35,4 @@ def run_migration(cr, registry):
|
|||
module.button_immediate_uninstall()
|
||||
except Exception as e:
|
||||
_logger.error(f"[OWS] Fehler bei deinstallieren von vvow_einweisungen: {e}")
|
||||
'''
|
||||
3
todo.md
Normal file
3
todo.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[ ] Help System
|
||||
[ ] Möglichkeit, Einweisungen manuell zu setzen?
|
||||
[ ]
|
||||
|
|
@ -118,4 +118,14 @@
|
|||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_partner_form_inherit" model="ir.ui.view">
|
||||
<field name="name">res.partner.form.inherit.default_person</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="company_type" position="attributes">
|
||||
<attribute name="default">person</attribute>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user