diff --git a/models/res_partner.py b/models/res_partner.py index 280fb36ca3c6b04a978b289df443cfea7e42a59f..61a057497815e60b777636d880f60d7bd57f31dd 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from datetime import datetime, timedelta -from odoo import models, fields, api, _ +from odoo import models, fields, api from odoo.exceptions import ValidationError @@ -15,13 +15,13 @@ class ScopPartner(models.Model): # Infos générales is_cooperative = fields.Boolean("Est une coopérative") - current_company_id = fields.Many2one( - 'res.company', - string='Current company', - compute='_compute_company_id') + current_user_ur_id = fields.Many2one( + 'union.regionale', + string="Union Régionale de l'utilisateur", + compute='_compute_current_user_ur_id', + search='_search_current_user_ur_id') # Informations organisme - # A garder ? id_ur = fields.Char("Identifiant unique SI UR") id_riga = fields.Char("Identifiant unique SI CG") @@ -406,34 +406,14 @@ class ScopPartner(models.Model): company.seed_end = company.date_1st_sign + timedelta(2556) else: company.seed_end = str(datetime.today() + timedelta(2556)) - - @api.model - def _compute_company_id(self): - for company in self: - company.current_company_id = self.env['res.company'].browse(self.env.user.company_id.id) - @api.multi - def coop_open_act(self): - ur_current = self.env.user.company_id.ur_id - return { - 'name': _("Cooperative"), - 'type': 'ir.actions.act_window', - 'res_model': 'res.partner', - 'view_mode': 'tree,form', - 'view_type': 'form', - 'views': [[False, 'tree'], [False, 'form'], ], - # 'context': {'search_default_company_id': [company_current.id]}, - 'context': {'search_default_type_cooperative': True, - 'search_default_ur_id': [ur_current.id], - 'default_is_company': True, - 'default_is_cooperative': True, - 'default_company_type': 'company', - 'default_project_status': '5_suivi'}, - 'target': 'current', - } + @api.model + def _compute_current_user_ur_id(self): + for partner in self: + partner.current_user_ur_id = self.env.user.company_id.ur_id.id - # @api.multi - # def action_deces(self): + def _search_current_user_ur_id(self, operator, value): + return [('ur_id', '=', self.env.user.company_id.ur_id.id)] class ScopPartnerCategory(models.Model): diff --git a/views/res_partner.xml b/views/res_partner.xml index cabb77b0b2e183c78d234e242dbc070561931ca2..c514aa02ae3317dce0654ac2dd423424cfc3639c 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -4,8 +4,8 @@ <odoo> <data> - <record id="view_res_partner_filter_contacts" model="ir.ui.view"> - <field name="name">res.partner.select.contact</field> + <record id="view_res_partner_filter_persons" model="ir.ui.view"> + <field name="name">res.partner.select.persons</field> <field name="model">res.partner</field> <field name="arch" type="xml"> <search string="Search Partner"> @@ -13,8 +13,7 @@ <field name="parent_id" domain="[('is_company','=',True)]" operator="child_of"/> <filter name="filter_my_partners" help="Mes Contacts" domain="[('user_id','=',uid)]"/> <separator/> - <filter string="Personnes" name="type_person" domain="[('is_company','=',False)]"/> - <filter string="Partenaires" name="type_company" domain="[('is_company','=',True)]"/> + <filter string="Mon UR" name="my_ur" domain="[('current_user_ur_id', '=', 'ur_id')]"/> <separator/> <filter string="Archivés" name="inactive" domain="[('active','=',False)]"/> <separator/> @@ -22,7 +21,38 @@ <separator/> <filter string="Activités en retard" name="activities_overdue" domain="[('activity_ids.date_deadline', '<', context_today().strftime('%Y-%m-%d'))]" help="Show all records which has next action date is before today"/> <filter string="Activités du Jour" name="activities_today" domain="[('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/> - <filter string="Activités futures" name="activities_upcoming_all" domain="[('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d')) ]"/> + <filter string="Activités futures" name="activities_upcoming_all" domain="[('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d'))]"/> + <separator/> + <field name="category_id" string="Tag" filter_domain="[('category_id','ilike', self)]"/> + <field name="user_id"/> + <field name="phone" filter_domain="['|',('phone','ilike',self),('mobile','=',self)]"/> + <group expand="0" name="group_by" string="Group By"> + <filter name="salesperson" string="Salesperson" domain="[]" context="{'group_by' : 'user_id'}"/> + <filter name="group_company" string="Company" context="{'group_by': 'parent_id'}"/> + <filter name="group_country" string="Country" context="{'group_by': 'country_id'}"/> + </group> + </search> + </field> + </record> + + <record id="view_res_partner_filter_partners" model="ir.ui.view"> + <field name="name">res.partner.select.partners</field> + <field name="model">res.partner</field> + <field name="arch" type="xml"> + <search string="Search Partner"> + <field name="name" filter_domain="['|','|',('display_name','ilike',self),('ref','=',self),('email','ilike',self)]"/> + <field name="parent_id" domain="[('is_company','=',True)]" operator="child_of"/> + <filter name="filter_my_partners" help="Mes Contacts" domain="[('user_id','=',uid)]"/> + <separator/> + <filter string="Mon UR" name="my_ur" domain="[('current_user_ur_id', '=', 'ur_id')]"/> + <separator/> + <filter string="Archivés" name="inactive" domain="[('active','=',False)]"/> + <separator/> + <filter string="Mes Activités" name="activities_my" domain="[('activity_ids.user_id', '=', uid)]"/> + <separator/> + <filter string="Activités en retard" name="activities_overdue" domain="[('activity_ids.date_deadline', '<', context_today().strftime('%Y-%m-%d'))]" help="Show all records which has next action date is before today"/> + <filter string="Activités du Jour" name="activities_today" domain="[('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/> + <filter string="Activités futures" name="activities_upcoming_all" domain="[('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d'))]"/> <separator/> <field name="category_id" string="Tag" filter_domain="[('category_id','ilike', self)]"/> <field name="user_id"/> @@ -87,7 +117,7 @@ <field name="inherit_id" ref="base.view_partner_form"/> <field name="priority" eval="120"/> <field name="arch" type="xml"> - <xpath expr="//div[@class='oe_title']" position="attributes"> + <xpath expr="//div[hasclass('oe_title')]" position="attributes"> <attribute name="class">oe_title oe_title_cgscop</attribute> </xpath> <field name="title" position="replace"/> @@ -194,8 +224,9 @@ <field name="res_model">res.partner</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> - <field name="search_view_id" ref="view_res_partner_filter_contacts"/> - <field name="context">{'search_default_type_person': 1}</field> + <field name="search_view_id" ref="view_res_partner_filter_persons"/> + <field name="domain" eval="[('is_company', '=', False)]"/> + <field name="context">{'search_default_my_ur': 1, 'default_is_company': False, default_company_type: 'person'}</field> <field name="view_ids" eval="[(5, 0, 0), (0, 0, {'view_mode': 'tree', 'view_id': ref('base.view_partner_tree')}), (0, 0, {'view_mode': 'form', 'view_id': ref('base.view_partner_form')})]"/> @@ -208,8 +239,9 @@ <field name="res_model">res.partner</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> - <field name="search_view_id" ref="view_res_partner_filter_contacts"/> - <field name="context">{'search_default_type_company': 1}</field> + <field name="search_view_id" ref="view_res_partner_filter_partners"/> + <field name="domain" eval="[('is_company', '=', True)]"/> + <field name="context">{'search_default_my_ur': 1, 'default_is_company': True, default_company_type: 'company'}</field> <field name="view_ids" eval="[(5, 0, 0), (0, 0, {'view_mode': 'tree', 'view_id': ref('base.view_partner_tree')}), (0, 0, {'view_mode': 'form', 'view_id': ref('base.view_partner_form')})]"/> diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml index b93c4994f4b1ec5dfea8a41dfb304184abf4b9d4..413b1d9b69ef478bddcd3252c5df25ad9a9581b6 100644 --- a/views/res_partner_cooperative.xml +++ b/views/res_partner_cooperative.xml @@ -14,7 +14,7 @@ <filter name="type_company" position="replace"> <filter string="Prospects" name="type_prospect" domain="[('is_company','=',True),('is_cooperative','=',True),('project_status','in',('1_information','2_pre-diagnostic','3_accompagnement','4_adhesion'))]"/> <filter string="Coopératives" name="type_cooperative" domain="[('is_company','=',True),('is_cooperative','=',True),('project_status','=','5_suivi')]"/> - <filter string="Organismes" name="type_organisme" domain="[('is_company','=',True),('is_cooperative','=',True)]"/> + <filter string="Mon UR" name="my_ur" domain="[('current_user_ur_id', '=', 'ur_id')]"/> </filter> <filter name="customer" position="replace"></filter> <filter name="supplier" position="replace"></filter> @@ -312,8 +312,8 @@ <field name="revision_contract"/> <field name="revision_company_id" widget="res_partner_many2one" options="{'no_create': True}"/> <field name="revision_backup_company_id" widget="res_partner_many2one" options="{'no_create': True}"/> - <field name="revision_person_id" widget="res_partner_many2one"/> - <field name="revision_certified_person_id" widget="res_partner_many2one"/> + <field name="revision_person_id" widget="res_partner_many2one" domain="[('is_company', '=', False), ('parent_id', 'in', (revision_company_id, revision_backup_company_id))]"/> + <field name="revision_certified_person_id" widget="res_partner_many2one" domain="[('is_company', '=', False), ('parent_id', 'in', (revision_company_id, revision_backup_company_id))]"/> <field name="revision_person_assign_date"/> </group> <group> @@ -567,25 +567,16 @@ <field name="res_model">res.partner</field> <field name="view_type">form</field> <field name="view_mode">kanban,tree,form</field> - <!-- <field name="search_view_id" ref="base.view_res_partner_filter"/> --> <field name="search_view_id" ref="cgscop_partner.res_partner_view_search_inherit_scop"/> <field name="domain" eval="[('is_cooperative', '=', True),('project_status','in',('1_information','2_pre-diagnostic','3_accompagnement','4_adhesion'))]"/> <field name="view_ids" eval="[(5, 0, 0), (0, 0, {'view_mode': 'kanban', 'view_id': ref('view_partner_cooperative_kanban')}), (0, 0, {'view_mode': 'tree', 'view_id': ref('view_partner_cooperative_tree')}), (0, 0, {'view_mode': 'form', 'view_id': ref('view_partner_cooperative_form')})]"/> - <field name="context">{'search_default_type_prospect': True, 'default_is_company': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '1_information'}</field> + <field name="context">{'search_default_my_ur': True, 'default_is_company': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '1_information'}</field> </record> - <!-- Prospects Action --> - <!-- <record id="action_scop_cooperative_act" model="ir.actions.server"> - <field name="name">Coopératives</field> - <field name="model_id" ref="model_res_partner"/> - <field name="state">code</field> - <field name="code">action = env.get('res.partner').coop_open_act()</field> - </record> --> - - + <!-- Cooperatives Action --> <record model="ir.actions.act_window" id="scop_cooperative_act"> <field name="name">Coopératives</field> <field name="res_model">res.partner</field> @@ -596,7 +587,7 @@ <field name="view_ids" eval="[(5, 0, 0), (0, 0, {'view_mode': 'tree', 'view_id': ref('base.view_partner_tree')}), (0, 0, {'view_mode': 'form', 'view_id': ref('view_partner_cooperative_form')})]"/> - <field name="context">{'search_default_type_cooperative': True, 'default_is_company': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '5_suivi'}</field> + <field name="context">{'search_default_my_ur': True, 'default_is_company': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '5_suivi'}</field> </record> <!-- Organismes Action --> @@ -605,12 +596,12 @@ <field name="res_model">res.partner</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> - <field name="search_view_id" ref="base.view_res_partner_filter"/> + <field name="search_view_id" ref="cgscop_partner.res_partner_view_search_inherit_scop"/> <field name="domain" eval="[('is_cooperative', '=', True)]"/> <field name="view_ids" eval="[(5, 0, 0), (0, 0, {'view_mode': 'tree', 'view_id': ref('view_partner_cooperative_tree')}), (0, 0, {'view_mode': 'form', 'view_id': ref('view_partner_cooperative_form')})]"/> - <field name="context">{'default_is_company': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '1_information'}</field> + <field name="context">{'default_is_company': True, 'search_default_my_ur': True, 'default_is_cooperative': True, 'default_company_type': 'company', 'default_project_status': '1_information'}</field> </record> <menuitem id="menu_organismes"