Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 24 additions & 22 deletions maintenance_equipment_sequence/models/maintenance.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,16 +63,17 @@ def _inverse_seq_number_next(self):
sequence = category.sequence_id._get_current_sequence()
sequence.sudo().number_next = category.sequence_number_next

@api.model
def create(self, vals):
if not vals.get("sequence_id", False):
if vals.get("sequence_prefix", False):
vals["sequence_id"] = self.sudo()._create_sequence(vals).id
else:
vals["sequence_prefix"] = (
self.env["ir.sequence"].browse(vals["sequence_id"]).prefix
)
result = super().create(vals)
@api.model_create_multi
def create(self, vals_list):
for vals in vals_list:
if not vals.get("sequence_id", False):
if vals.get("sequence_prefix", False):
vals["sequence_id"] = self.sudo()._create_sequence(vals).id
else:
vals["sequence_prefix"] = (
self.env["ir.sequence"].browse(vals["sequence_id"]).prefix
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line implies a browse() access for each for iteration. IMO it is desirable moving it outside for statement, make only one browse and manage result with a proper python dict within for.

)
result = super().create(vals_list)
self._compute_equipment_code()
return result

Expand Down Expand Up @@ -107,18 +108,19 @@ def _compute_equipment_code(self):
class MaintenanceEquipment(models.Model):
_inherit = "maintenance.equipment"

@api.model
def create(self, vals):
equipment = super().create(vals)
if equipment.category_id and not equipment.serial_no:
sequence_id = (
self.env["maintenance.equipment.category"]
.browse(vals["category_id"])
.sequence_id
)
if sequence_id:
equipment.serial_no = sequence_id._next()
return equipment
@api.model_create_multi
def create(self, vals_list):
equipments = super().create(vals_list)
for equipment, vals in zip(equipments, vals_list):
if equipment.category_id and not equipment.serial_no:
sequence_id = (
self.env["maintenance.equipment.category"]
.browse(vals.get("category_id"))
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same as above

.sequence_id
)
if sequence_id:
equipment.serial_no = sequence_id._next()
return equipments

def write(self, vals):
result = super().write(vals)
Expand Down
Loading