diff --git a/__manifest__.py b/__manifest__.py index f5d7c8c2227022572be3c5b2cce3a0d19079916e..fa9a6ad2dd78a8aa8f32d4d1e7aa56d58c2b1d7e 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -15,6 +15,7 @@ ], "data": [ "security/ir.model.access.csv", + "security/security_rules.xml", "views/assets.xml", "views/cgscop_timesheet_code.xml", "views/hr_timesheet.xml", diff --git a/models/cgscop_timesheet_code.py b/models/cgscop_timesheet_code.py index d41441c82f3b297a1d9aee9193f3abfe32557af1..b6d9f9da362f96ce04cc6e0ad585cf0c4dcd3812 100644 --- a/models/cgscop_timesheet_code.py +++ b/models/cgscop_timesheet_code.py @@ -6,12 +6,7 @@ from odoo import models, fields class ScopTimesheetCode(models.Model): _name = "cgscop.timesheet.code" - _description = "Code activite cgscop" + _description = "Code activité National" _order = 'name' name = fields.Char('Nom') - company_id = fields.Many2one( - comodel_name='res.company', - string='Company', - required=True, - default=lambda self: self.env.user.company_id) diff --git a/models/project.py b/models/project.py index 332c5d5eefc6c529869ef03dd9ccef7b69df94ba..954af7fd5ceae486e427d74a8e36a9c83aece6c5 100644 --- a/models/project.py +++ b/models/project.py @@ -7,10 +7,16 @@ from odoo import models, fields class ScopProjectTimesheet(models.Model): _inherit = "project.project" + def _default_ur(self): + return self.env['res.company']._ur_default_get() + cgscop_timesheet_code_id = fields.Many2one( comodel_name='cgscop.timesheet.code', - string='Code Activité CG') + string='Code Activité National') privacy_visibility = fields.Selection(default="employees") - - - + ur_id = fields.Many2one( + 'union.regionale', + string='Union Régionale', + index=True, + on_delete='restrict', + default=_default_ur) diff --git a/models/ur_financial_system.py b/models/ur_financial_system.py index 704704b1e5d701a3ae238617b3ad9b33e6bb4751..a608e520916af59fdec01920f501f0b43bf70ef3 100644 --- a/models/ur_financial_system.py +++ b/models/ur_financial_system.py @@ -8,8 +8,17 @@ class ScopTimesheetCode(models.Model): _name = "ur.financial.system" _description = "Dispositif financier UR" + def _default_ur(self): + return self.env['res.company']._ur_default_get() + name = fields.Char('Nom') company_id = fields.Many2one( comodel_name='res.company', - string='UR', + string='Société', default=lambda self: self.env.user.company_id) + ur_id = fields.Many2one( + 'union.regionale', + string='Union Régionale', + index=True, + on_delete='restrict', + default=_default_ur) diff --git a/security/security_rules.xml b/security/security_rules.xml new file mode 100644 index 0000000000000000000000000000000000000000..065bd4e0f8d766245f040d9ffdef7bb14b83b30d --- /dev/null +++ b/security/security_rules.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- Copyright 2019 Le Filament + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> + +<odoo> + <data noupdate="1"> + + <record id="ur_financial_system_rule_ur" model="ir.rule"> + <field name="name">ur financial system rule per ur</field> + <field name="model_id" ref="model_ur_financial_system"/> + <field name="domain_force">[('ur_id','=',user.company_id.ur_id.id)]</field> + <field name="groups" eval="[(6, 0, [ref('base.group_user')])]"/> + <field eval="True" name="global"/> + </record> + + <record id="project_rule_ur" model="ir.rule"> + <field name="name">project rule per ur</field> + <field name="model_id" ref="project.model_project_project"/> + <field name="domain_force">[('ur_id','=',user.company_id.ur_id.id)]</field> + <field name="groups" eval="[(6, 0, [ref('base.group_user')])]"/> + <field eval="True" name="global"/> + </record> + + <record id="project_rule_administrator_ur" model="ir.rule"> + <field name="name">project rule for administrator</field> + <field name="model_id" ref="project.model_project_project"/> + <field name="domain_force">[(1,'=',1)]</field> + <field name="groups" eval="[(6, 0, [ref('cgscop_partner.group_cg_administrator')])]"/> + <field eval="True" name="global"/> + </record> + </data> +</odoo> diff --git a/views/cgscop_timesheet_code.xml b/views/cgscop_timesheet_code.xml index 2e4cacaeae17e6052c0cdd721b1ce487fbdac9b7..420047152bb2e47671335e7425d5f6f75a63a118 100644 --- a/views/cgscop_timesheet_code.xml +++ b/views/cgscop_timesheet_code.xml @@ -10,23 +10,22 @@ <field name="arch" type="xml"> <tree editable='top'> <field name="name" /> - <field name="company_id" groups="base.group_no_one" /> </tree> </field> </record> <record id="action_cgscop_timesheet_code_tree" model="ir.actions.act_window"> - <field name="name">Codes activité CG</field> + <field name="name">Codes Activité National</field> <field name="res_model">cgscop.timesheet.code</field> <field name="view_mode">tree</field> - <field name="help">Affiche et gère les Codes activité CG</field> + <field name="help">Affiche et gère les Codes activité Nationaux</field> </record> <menuitem id="menu_cgscop_timesheet_code" - name="Codes activité National" + name="Codes Activité National" parent="hr_timesheet.hr_timesheet_menu_configuration" action="action_cgscop_timesheet_code_tree" - sequence="50" + sequence="40" groups="cgscop_partner.group_cg_administrator"/> </data> diff --git a/views/hr_timesheet.xml b/views/hr_timesheet.xml index b5d8a0602d6e39636636b0ba8526565fdf3cf212..4d870b628da53c9738b5d350f47337107646e1fe 100644 --- a/views/hr_timesheet.xml +++ b/views/hr_timesheet.xml @@ -13,11 +13,11 @@ <field name="arch" type="xml"> <field name="name" position="replace"/> <field name="project_id" position="attributes" > - <attribute name="options">{'no_create_edit': True}</attribute> + <attribute name="options">{'no_open': True, 'no_create': True}</attribute> <attribute name="string">Code activité UR</attribute> </field> <field name="project_id" position="after" > - <field name="partner_id" domain="[('is_company', '=', True)]" required="True" class="td-ellipsis" /> + <field name="partner_id" domain="[('is_company', '=', True)]" required="True" class="td-ellipsis" options="{'no_open': True, 'no_create': True}" /> <field name="name" class="td-minwidth" /> </field> <field name="task_id" position="attributes"> @@ -25,7 +25,7 @@ </field> <field name="unit_amount" widget="timesheet_uom" sum="Total"/> <field name="unit_amount" position="after"> - <field name="ur_financial_system_id" options="{'no_create_edit': True}"/> + <field name="ur_financial_system_id" options="{'no_open': True, 'no_create': True}"/> </field> </field> </record> diff --git a/views/hr_timesheet_cgscop.xml b/views/hr_timesheet_cgscop.xml index ceb4682607e077b2756429354e15916dd3ef711f..67404a8d2120cbeb121c12ba2149fa7fcf8ea569 100644 --- a/views/hr_timesheet_cgscop.xml +++ b/views/hr_timesheet_cgscop.xml @@ -28,11 +28,12 @@ </div> <group> <group> - <field name="partner_id" string="Contact par défaut" help="Contact par défaut auquel est rattaché cette activité. Ce contact sera sélectionné automatiquement dans les feuilles de temps"/> - <field name="company_id" groups="base.group_multi_company" string="UR" /> + <field name="partner_id" string="Contact par défaut" help="Contact par défaut auquel est rattaché cette activité. Ce contact sera sélectionné automatiquement dans les feuilles de temps" options="{'no_open': True, 'no_create': True}"/> + <field name="ur_id" string="Union Régionale" options="{'no_open': True, 'no_create': True}" required="1" /> + <field name="company_id" groups="base.group_multi_company" options="{'no_open': True, 'no_create': True}" string="Société" invisible="1" /> </group> <group> - <field name="cgscop_timesheet_code_id" required="1" placeholder="Code activité CG"/> + <field name="cgscop_timesheet_code_id" required="1" placeholder="Code activité National" options="{'no_open': True, 'no_create': True}"/> <field name="privacy_visibility" invisible="1"/> <field name="allow_timesheets" invisible="1"/> </group> @@ -41,9 +42,8 @@ <group string="Configuration" name="project_config" groups="base.group_no_one"> <group> <field name="user_id" string="Project Manager" - attrs="{'readonly':[('active','=',False)]}"/> + attrs="{'readonly':[('active','=',False)]}" options="{'no_open': True, 'no_create': True}"/> <field name="sequence" groups="base.group_no_one"/> - <field name="company_id" groups="base.group_multi_company"/> </group> <group > <field name="allow_timesheets" /> @@ -67,7 +67,7 @@ <field name="arch" type="xml"> <search string="Search Project"> <field name="name" string="Code activité UR"/> - <field name="cgscop_timesheet_code_id" string="Code activité CG"/> + <field name="cgscop_timesheet_code_id" string="Code activité National"/> <field name="partner_id" string="Contact par défaut"/> <filter string="Archived" name="inactive" domain="[('active','=',False)]"/> @@ -88,8 +88,8 @@ <field name="sequence" widget="handle"/> <field name="active" invisible="1"/> <field name="name" /> - <field name="cgscop_timesheet_code_id" /> - <field name="partner_id" string="Contact"/> + <field name="cgscop_timesheet_code_id" options="{'no_open': True, 'no_create': True}"/> + <field name="partner_id" string="Contact" options="{'no_open': True, 'no_create': True}"/> </tree> </field> </record> diff --git a/views/ur_financial_system.xml b/views/ur_financial_system.xml index 698637534ae002ea6af02f6c388b09abd9446e66..52d88618f389d8917be3b02a2fa90305efee4a5b 100644 --- a/views/ur_financial_system.xml +++ b/views/ur_financial_system.xml @@ -10,7 +10,8 @@ <field name="arch" type="xml"> <tree editable='top'> <field name="name" /> - <field name="company_id" groups="base.group_no_one" /> + <field name="ur_id" options="{'no_open': True, 'no_create': True}"/> + <field name="company_id" groups="base.group_no_one" options="{'no_open': True, 'no_create': True}"/> </tree> </field> </record>