From 60b524d12f74b2b40787e93028c7e4ec8232952a Mon Sep 17 00:00:00 2001 From: benjamin <benjamin@le-filament.com> Date: Wed, 4 May 2022 16:14:53 +0200 Subject: [PATCH] [add] portal url & rights --- __manifest__.py | 3 ++- models/acc_contract.py | 7 ++++++- security/ir.model.access.csv | 1 + security/security.xml | 26 ++++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 security/security.xml diff --git a/__manifest__.py b/__manifest__.py index b9773dd..9db205b 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -5,8 +5,9 @@ "website": "https://www.le-filament.com", "version": "14.0.1.0.1", "license": "AGPL-3", - "depends": ["contacts"], + "depends": ["contacts", "portal"], "data": [ + "security/security.xml", "security/ir.model.access.csv", # datas # views diff --git a/models/acc_contract.py b/models/acc_contract.py index eb87334..5c8be7c 100644 --- a/models/acc_contract.py +++ b/models/acc_contract.py @@ -6,6 +6,7 @@ from odoo import fields, models class AccContract(models.Model): _name = "acc.contract" + _inherit = ["portal.mixin"] _description = "Contrats" # ------------------------------------------------------ @@ -25,7 +26,7 @@ class AccContract(models.Model): ) start_date = fields.Date("Début du contrat") end_date = fields.Date("Fin du contrat") - document = fields.Binary("Document attaché") + document = fields.Binary("Document attaché", required=True) name = fields.Char("Nom du document") # ------------------------------------------------------ # SQL Constraints @@ -54,3 +55,7 @@ class AccContract(models.Model): # ------------------------------------------------------ # Business methods # ------------------------------------------------------ + def _compute_access_url(self): + super(AccContract, self)._compute_access_url() + for contract in self: + contract.access_url = "/contract/%s" % (contract.id) diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv index 4e0cc9e..2accf22 100644 --- a/security/ir.model.access.csv +++ b/security/ir.model.access.csv @@ -5,6 +5,7 @@ id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink "access_acc_counter_group_user","acc_counter group_user","model_acc_counter","base.group_user",1,0,0,0 "access_acc_contract_group_partner_manager","acc_contract group_partner_manager","model_acc_contract","base.group_partner_manager",1,1,1,1 "access_acc_contract_group_user","acc_contract group_user","model_acc_contract","base.group_user",1,0,0,0 +"access_acc_contract_group_portal","acc_contract group_portal","model_acc_contract","base.group_portal",1,0,0,0 "access_acc_enedis_cdc_group_partner_manager","acc_enedis_cdc group_partner_manager","model_acc_enedis_cdc","base.group_partner_manager",1,1,1,1 "access_acc_enedis_cdc_group_user","acc_enedis_cdc group_user","model_acc_enedis_cdc","base.group_user",1,0,0,0 "access_acc_enedis_import_logs_group_partner_manager","acc_enedis_import_logs group_partner_manager","model_acc_enedis_import_logs","base.group_partner_manager",1,1,1,1 diff --git a/security/security.xml b/security/security.xml new file mode 100644 index 0000000..b183e59 --- /dev/null +++ b/security/security.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + + <data> + + <!-- Portal for contract --> + <record id="acc_contract_rule_portal_buyer" model="ir.rule"> + <field name="name">Portail : Contrats - Acheteur</field> + <field name="model_id" ref="acc_operation.model_acc_contract" /> + <field + name="domain_force" + >[('buyer_id','in',[user.partner_id.parent_id.id, user.partner_id.id])]</field> + <field name="groups" eval="[(4, ref('base.group_portal'))]" /> + </record> + <record id="acc_contract_rule_portal_seller" model="ir.rule"> + <field name="name">Portail : Contrats - Vendeur</field> + <field name="model_id" ref="acc_operation.model_acc_contract" /> + <field + name="domain_force" + >[('seller_id','in',[user.partner_id.parent_id.id, user.partner_id.id])]</field> + <field name="groups" eval="[(4, ref('base.group_portal'))]" /> + </record> + + </data> + +</odoo> -- GitLab