fix(ows_models): Update create() to use @api.model_create_multi for Odoo 18

Fixed DeprecationWarning by updating OwsMachine.create() method:
- Changed from @api.model with single vals parameter
- To @api.model_create_multi with vals_list parameter
- Now supports batch creation of multiple records
- Removed duplicate empty OwsMachineArea class definition

This resolves the Odoo 18 deprecation warning about create method not supporting batch operations.
This commit is contained in:
Matthias Lotz 2025-12-15 20:55:36 +01:00
parent 686b201792
commit 4c048b5ca9

View File

@ -400,12 +400,6 @@ AVAILABLE_COLORS = [
('#ffffff', 'Weiss'),
]
class OwsMachineArea(models.Model):
_name = 'ows.machine.area'
_table = 'ows_machine_area'
_description = 'OWS: Maschinenbereich'
class MaintenanceEquipment(models.Model):
"""Erweitere maintenance.equipment mit OWS-Feldern für direkte Bearbeitung"""
_inherit = 'maintenance.equipment'
@ -559,24 +553,25 @@ class OwsMachine(models.Model):
# Keine eigenen SQL Constraints - Equipment hat bereits unique constraint für serial_no
@api.model
def create(self, vals):
@api.model_create_multi
def create(self, vals_list):
"""
Beim Erstellen einer ows.machine:
1. Equipment IMMER automatisch erstellen
2. Area Location synchronisieren
3. serial_no und name vom User übernehmen
"""
# Equipment IMMER automatisch erstellen
equipment_vals = {
'name': vals.get('name', 'Neue Maschine'),
'serial_no': vals.get('serial_no', False),
}
# Equipment für alle Records erstellen
for vals in vals_list:
equipment_vals = {
'name': vals.get('name', 'Neue Maschine'),
'serial_no': vals.get('serial_no', False),
}
equipment = self.env['maintenance.equipment'].create(equipment_vals)
vals['equipment_id'] = equipment.id
equipment = self.env['maintenance.equipment'].create(equipment_vals)
vals['equipment_id'] = equipment.id
return super(OwsMachine, self).create(vals)
return super(OwsMachine, self).create(vals_list)
def write(self, vals):
"""