warnings cleanup and bug fixes for equipment & applications

This commit is contained in:
Marc Durepos 2024-10-17 15:57:35 -04:00
parent 87a1cb8860
commit 0a6f048708
7 changed files with 23 additions and 10 deletions

View file

@ -1,4 +1,5 @@
from odoo import models, fields, api from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
class PartnerApplicationSpecification(models.Model): class PartnerApplicationSpecification(models.Model):
@ -12,7 +13,7 @@ class PartnerApplicationSpecification(models.Model):
tracking=1, tracking=1,
ondelete="restrict", ondelete="restrict",
domain="[('id', 'in', allowed_specification_keys)]", domain="[('id', 'in', allowed_specification_keys)]",
string="Name", string="Specification Name",
required=True, required=True,
) )
name = fields.Char( name = fields.Char(
@ -29,3 +30,13 @@ class PartnerApplicationSpecification(models.Model):
allowed_specification_keys = fields.Many2many( allowed_specification_keys = fields.Many2many(
related="application_id.application_type_id.allowed_specification_keys", related="application_id.application_type_id.allowed_specification_keys",
) )
@api.constrains("key_id")
def _constrain_key_id(self):
for rec in self:
if rec.key_id not in rec.allowed_specification_keys:
raise ValidationError(
_(
f"Key '{rec.key_id.name}' is not allowed for this application type."
)
)

View file

@ -23,7 +23,7 @@
<button name="%(action_view_partner_applications_by_type)d" <button name="%(action_view_partner_applications_by_type)d"
type="action" type="action"
class="oe_stat_button" class="oe_stat_button"
context="{'application_type_id': active_id}" context="{'application_type_id': id}"
icon="fa-gears" icon="fa-gears"
> >
<field name="applications_count" string="Applications" <field name="applications_count" string="Applications"

View file

@ -32,6 +32,7 @@
<field name="specification_ids"> <field name="specification_ids">
<tree editable="bottom"> <tree editable="bottom">
<field name="allowed_specification_keys" column_invisible="1"/> <field name="allowed_specification_keys" column_invisible="1"/>
<field name="sequence" widget="handle"/>
<field name="key_id" /> <field name="key_id" />
<field name="value"/> <field name="value"/>
</tree> </tree>

View file

@ -10,7 +10,7 @@
type="action" type="action"
class="oe_stat_button" class="oe_stat_button"
icon="fa-cogs" icon="fa-cogs"
context="{'partner_id': active_id}" context="{'partner_id': id}"
> >
<field string="Applications" name="applications_count" <field string="Applications" name="applications_count"
widget="statinfo"/> widget="statinfo"/>

View file

@ -26,7 +26,8 @@ class Equipment(models.Model):
comodel_name="res.partner", comodel_name="res.partner",
string="Physical Address", string="Physical Address",
tracking=True, tracking=True,
ondelete="cascade", ondelete="restrict",
required=True,
) )
location_notes = fields.Text( location_notes = fields.Text(

View file

@ -1,4 +1,4 @@
from odoo import models, fields, api from odoo import models, fields, api, _
from odoo.exceptions import ValidationError from odoo.exceptions import ValidationError
@ -20,7 +20,7 @@ class PartnerApplication(models.Model):
for application in self: for application in self:
if len(application.equipment_ids.partner_id) > 1: if len(application.equipment_ids.partner_id) > 1:
raise ValidationError( raise ValidationError(
"An application can only be linked to one partner." _("An application can only be linked to one partner.")
) )
@api.depends("equipment_ids") @api.depends("equipment_ids")

View file

@ -4,8 +4,8 @@
<field name="name">Partner Equipments</field> <field name="name">Partner Equipments</field>
<field name="res_model">fsm.equipment</field> <field name="res_model">fsm.equipment</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field name="context">{'default_application_id': active_id}</field> <field name="context">{'default_application_id': context.get("application_id")}</field>
<field name="domain">[('application_id', '=', active_id)]</field> <field name="domain">[('application_id', '=', context.get("application_id"))]</field>
</record> </record>
<record id="view_partner_application_search" model="ir.ui.view"> <record id="view_partner_application_search" model="ir.ui.view">
<field name="name">partner.application.search</field> <field name="name">partner.application.search</field>
@ -27,7 +27,7 @@
type="action" type="action"
class="oe_stat_button" class="oe_stat_button"
icon="fa-tachometer" icon="fa-tachometer"
context="{'application_id': active_id}" context="{'application_id': id}"
> >
<field string="Equipments" name="equipment_count" widget="statinfo"/> <field string="Equipments" name="equipment_count" widget="statinfo"/>
</button> </button>