diff --git a/customer_applications/__manifest__.py b/customer_applications/__manifest__.py index cb31223..f2971fb 100644 --- a/customer_applications/__manifest__.py +++ b/customer_applications/__manifest__.py @@ -27,6 +27,7 @@ "license": "LGPL-3", "depends": ["contacts", "incrementing_sequence_mixin"], "data": [ + "security/groups.xml", "security/ir.model.access.csv", "data/menus_actions.xml", "views/application_type_views.xml", diff --git a/customer_applications/data/menus_actions.xml b/customer_applications/data/menus_actions.xml index 43d4ded..c63bbd6 100644 --- a/customer_applications/data/menus_actions.xml +++ b/customer_applications/data/menus_actions.xml @@ -34,7 +34,10 @@ + + + \ No newline at end of file diff --git a/customer_applications/models/__init__.py b/customer_applications/models/__init__.py index a2fd26d..dd86493 100644 --- a/customer_applications/models/__init__.py +++ b/customer_applications/models/__init__.py @@ -2,3 +2,4 @@ from . import application from . import application_specification from . import application_type from . import res_partner +from . import application_specification_key diff --git a/customer_applications/models/application.py b/customer_applications/models/application.py index 75fb2d8..389fe6b 100644 --- a/customer_applications/models/application.py +++ b/customer_applications/models/application.py @@ -18,6 +18,7 @@ class Application(models.Model): comodel_name="partner.application.type", required=True, tracking=4, + ondelete="restrict", ) specification_ids = fields.One2many( comodel_name="partner.application.specification", diff --git a/customer_applications/models/application_specification.py b/customer_applications/models/application_specification.py index 443177b..45c2a3a 100644 --- a/customer_applications/models/application_specification.py +++ b/customer_applications/models/application_specification.py @@ -1,4 +1,4 @@ -from odoo import models, fields +from odoo import models, fields, api class PartnerApplicationSpecification(models.Model): @@ -7,14 +7,25 @@ class PartnerApplicationSpecification(models.Model): _inherit = ["mail.thread", "mail.activity.mixin", "incrementing.sequence.mixin"] _sequence_group = "application_id" - name = fields.Char( - tracking=2, + key_id = fields.Many2one( + comodel_name="partner.application.specification.key", + tracking=1, + ondelete="restrict", + domain="[('id', 'in', allowed_specification_keys)]", + string="Name", required=True, ) + name = fields.Char( + related="key_id.name", + ) value = fields.Text( tracking=2, ) application_id = fields.Many2one( comodel_name="partner.application", tracking=1, + ondelete="cascade", + ) + allowed_specification_keys = fields.Many2many( + related="application_id.application_type_id.allowed_specification_keys", ) diff --git a/customer_applications/models/application_specification_key.py b/customer_applications/models/application_specification_key.py new file mode 100644 index 0000000..41ef8c4 --- /dev/null +++ b/customer_applications/models/application_specification_key.py @@ -0,0 +1,11 @@ +from odoo import models, fields, api + + +class ApplicationSpecificationKey(models.Model): + _name = "partner.application.specification.key" + _description = "Application Specification Key" + + name = fields.Char(required=True, index="trigram") + _sql_constraints = [ + ("name_uniq", "unique (name)", "Specification key name must be unique."), + ] diff --git a/customer_applications/models/application_type.py b/customer_applications/models/application_type.py index ec42ab9..a34f94e 100644 --- a/customer_applications/models/application_type.py +++ b/customer_applications/models/application_type.py @@ -31,6 +31,12 @@ class PartnerApplicationType(models.Model): string="Partners", readonly=True, ) + allowed_specification_keys = fields.Many2many( + comodel_name="partner.application.specification.key", + relation="application_specification_key_application_type_rel", + column1="application_type_id", + column2="application_specification_key_id", + ) @api.depends("application_ids", "application_ids.partner_id") def _compute_partner_ids(self): diff --git a/customer_applications/security/groups.xml b/customer_applications/security/groups.xml new file mode 100644 index 0000000..f20d6f0 --- /dev/null +++ b/customer_applications/security/groups.xml @@ -0,0 +1,12 @@ + + + + + Applications Admin + + + + Applications User + + + \ No newline at end of file diff --git a/customer_applications/security/ir.model.access.csv b/customer_applications/security/ir.model.access.csv index 547db60..b7ce421 100644 --- a/customer_applications/security/ir.model.access.csv +++ b/customer_applications/security/ir.model.access.csv @@ -1,5 +1,7 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_partner_application_user,access.partner.application.user,model_partner_application,base.group_user,1,1,1,1 -access_partner_application_type_user,access.partner.application.type.user,model_partner_application_type,base.group_user,1,0,0,0 -access_partner_application_type_manager,access.partner.application.type.manager,model_partner_application_type,base.group_partner_manager,1,1,1,1 -access_partner_application_specification_user,access.partner.application.specification.user,model_partner_application_specification,base.group_user,1,1,1,1 +access_partner_application_user,access.partner.application.user,model_partner_application,group_applications_user,1,1,1,1 +access_partner_application_type_user,access.partner.application.type.user,model_partner_application_type,group_applications_user,1,0,0,0 +access_partner_application_type_manager,access.partner.application.type.manager,model_partner_application_type,group_applications_admin,1,1,1,1 +access_partner_application_specification_user,access.partner.application.specification.user,model_partner_application_specification,group_applications_user,1,1,1,1 +access_partner_application_specification_key_user,access.partner.application.specification.key.user,model_partner_application_specification_key,group_applications_user,1,0,0,0 +access_partner_application_specification_key_admin,access.partner.application.specification.key.admin,model_partner_application_specification_key,group_applications_admin,1,1,1,1 \ No newline at end of file diff --git a/customer_applications/views/application_type_views.xml b/customer_applications/views/application_type_views.xml index 76994e0..1254e00 100644 --- a/customer_applications/views/application_type_views.xml +++ b/customer_applications/views/application_type_views.xml @@ -4,7 +4,7 @@ partner.application.type.list partner.application.type - + @@ -17,21 +17,45 @@ partner.application.type
- - - -
+
+ +
-
- - + +
+
+
+ Application Type +
+

+ +

+
+
+ + + + + + + + + + +
+ + + +
diff --git a/customer_applications/views/application_views.xml b/customer_applications/views/application_views.xml index 5890447..7afe942 100644 --- a/customer_applications/views/application_views.xml +++ b/customer_applications/views/application_views.xml @@ -6,34 +6,44 @@
-
-
-
- Application -
-

- -

-
-
-
+
+
+
+
+ Application +
+

+ +

+
+
- - - + + + + + + + - + + +
+ + + +
diff --git a/fsm_equipment/__manifest__.py b/fsm_equipment/__manifest__.py index 69fbb42..f4487ce 100644 --- a/fsm_equipment/__manifest__.py +++ b/fsm_equipment/__manifest__.py @@ -25,7 +25,7 @@ "author": "Bemade Inc.", "website": "http://www.bemade.org", "license": "LGPL-3", - "depends": ["industry_fsm", "account"], + "depends": ["industry_fsm", "account", "contacts"], "data": [ "security/ir.model.access.csv", "views/equipment_views.xml", diff --git a/fsm_equipment/views/equipment_views.xml b/fsm_equipment/views/equipment_views.xml index e181a63..54bd293 100644 --- a/fsm_equipment/views/equipment_views.xml +++ b/fsm_equipment/views/equipment_views.xml @@ -9,68 +9,67 @@ - - - - + + + + + options='{"always_reload": True}' + /> + name="tag_ids" + widget="many2many_tags" + options="{'no_open': False}" + /> - - - - - + + + + + - +
- - - + + +
- + fsm.equipment.tree fsm.equipment - - - + + + - + name="tag_ids" + widget="many2many_tags" + options="{'no_open': False}" + /> + @@ -80,21 +79,21 @@ fsm.equipment - - - + + + - + name="tag_ids" + widget="many2many_tags" + options="{'no_open': False}" + /> + + +
+ + + + \ No newline at end of file diff --git a/partner_equipment_applications/views/equipment_views.xml b/partner_equipment_applications/views/equipment_views.xml new file mode 100644 index 0000000..2ecd9ce --- /dev/null +++ b/partner_equipment_applications/views/equipment_views.xml @@ -0,0 +1,42 @@ + + + + fsm.equipment.view.search + fsm.equipment + + + + + + + + + + + + + fsm.equipment.view.tree + fsm.equipment + + + + + + + + + + + fsm.equipment.view.form + fsm.equipment + + + + + + + + \ No newline at end of file