diff --git a/yaltik_crm_action/__manifest__.py b/yaltik_crm_action/__manifest__.py index a9e6607..1509444 100644 --- a/yaltik_crm_action/__manifest__.py +++ b/yaltik_crm_action/__manifest__.py @@ -18,7 +18,7 @@ { 'name': 'CRM Actions', 'summary': 'Action management, instead of new activity, in CRM', - 'version': '10.0.1.2.5', + 'version': '10.0.1.3.0', 'category': 'Sales', 'author': 'Fabien BOURGEOIS - Yaltik', 'license': 'AGPL-3', diff --git a/yaltik_crm_action/i18n/fr.po b/yaltik_crm_action/i18n/fr.po index 0479481..522a428 100644 --- a/yaltik_crm_action/i18n/fr.po +++ b/yaltik_crm_action/i18n/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-11-24 04:34+0000\n" -"PO-Revision-Date: 2017-11-24 04:34+0000\n" +"POT-Creation-Date: 2017-11-26 07:15+0000\n" +"PO-Revision-Date: 2017-11-26 07:15+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -35,6 +35,7 @@ msgid "Action count" msgstr "Nombre d'actions" #. module: yaltik_crm_action +#: code:addons/yaltik_crm_action/models/res_partner.py:62 #: model:ir.actions.act_window,name:yaltik_crm_action.crm_action_action #: model:ir.actions.act_window,name:yaltik_crm_action.crm_action_simple_action #: model:ir.model.fields,field_description:yaltik_crm_action.field_crm_lead_action_ids @@ -44,6 +45,7 @@ msgstr "Nombre d'actions" #: model:ir.ui.view,arch_db:yaltik_crm_action.crm_case_form_view_leads_inherit_crm_action #: model:ir.ui.view,arch_db:yaltik_crm_action.crm_case_form_view_oppor_inherit_crm_action #: model:ir.ui.view,arch_db:yaltik_crm_action.crm_view_partners_form_inherit_yaltik_crm_action +#, python-format msgid "Actions" msgstr "Actions" @@ -198,7 +200,7 @@ msgid "Lead/Opportunity" msgstr "Piste/opportunité" #. module: yaltik_crm_action -#: code:addons/yaltik_crm_action/models/crm_action.py:106 +#: code:addons/yaltik_crm_action/models/crm_action.py:100 #, python-format msgid "Linked event" msgstr "Événement lié" @@ -263,6 +265,11 @@ msgstr "Adresse du partenaire" msgid "Priority" msgstr "Priorité" +#. module: yaltik_crm_action +#: model:ir.model.fields,field_description:yaltik_crm_action.field_crm_action_parent_id +msgid "Related Company" +msgstr "Société liée" + #. module: yaltik_crm_action #: model:ir.ui.view,arch_db:yaltik_crm_action.crm_action_form msgid "Remove linked event" diff --git a/yaltik_crm_action/i18n/yaltik_crm_action.pot b/yaltik_crm_action/i18n/yaltik_crm_action.pot index 69e45ab..1557d0c 100644 --- a/yaltik_crm_action/i18n/yaltik_crm_action.pot +++ b/yaltik_crm_action/i18n/yaltik_crm_action.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-11-24 04:33+0000\n" -"PO-Revision-Date: 2017-11-24 04:33+0000\n" +"POT-Creation-Date: 2017-11-26 07:15+0000\n" +"PO-Revision-Date: 2017-11-26 07:15+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -34,6 +34,7 @@ msgid "Action count" msgstr "" #. module: yaltik_crm_action +#: code:addons/yaltik_crm_action/models/res_partner.py:62 #: model:ir.actions.act_window,name:yaltik_crm_action.crm_action_action #: model:ir.actions.act_window,name:yaltik_crm_action.crm_action_simple_action #: model:ir.model.fields,field_description:yaltik_crm_action.field_crm_lead_action_ids @@ -43,6 +44,7 @@ msgstr "" #: model:ir.ui.view,arch_db:yaltik_crm_action.crm_case_form_view_leads_inherit_crm_action #: model:ir.ui.view,arch_db:yaltik_crm_action.crm_case_form_view_oppor_inherit_crm_action #: model:ir.ui.view,arch_db:yaltik_crm_action.crm_view_partners_form_inherit_yaltik_crm_action +#, python-format msgid "Actions" msgstr "" @@ -197,7 +199,7 @@ msgid "Lead/Opportunity" msgstr "" #. module: yaltik_crm_action -#: code:addons/yaltik_crm_action/models/crm_action.py:106 +#: code:addons/yaltik_crm_action/models/crm_action.py:100 #, python-format msgid "Linked event" msgstr "" @@ -262,6 +264,11 @@ msgstr "" msgid "Priority" msgstr "" +#. module: yaltik_crm_action +#: model:ir.model.fields,field_description:yaltik_crm_action.field_crm_action_parent_id +msgid "Related Company" +msgstr "" + #. module: yaltik_crm_action #: model:ir.ui.view,arch_db:yaltik_crm_action.crm_action_form msgid "Remove linked event" diff --git a/yaltik_crm_action/models/crm_action.py b/yaltik_crm_action/models/crm_action.py index cec4284..e3cb725 100644 --- a/yaltik_crm_action/models/crm_action.py +++ b/yaltik_crm_action/models/crm_action.py @@ -40,6 +40,7 @@ class CrmAction(models.Model): details = fields.Text() partner_id = fields.Many2one('res.partner', string='Customer', index=True) + parent_id = fields.Many2one(related='partner_id.parent_id') date = fields.Datetime(required=True, default=fields.Date.context_today) user_id = fields.Many2one('res.users', string='User', required=True, default=lambda self: self.env.user) @@ -50,13 +51,6 @@ class CrmAction(models.Model): default=lambda self: self.env['crm.action.type'].search([], limit=1)) action_type_name = fields.Char(related='action_type_id.name') - @api.onchange('lead_id') - def onchange_lead(self): - """ If lead change, adapts partner """ - for action in self: - if action.lead_id and action.lead_id.partner_id: - action.partner_id = action.lead_id.partner_id - @api.onchange('partner_id') def onchange_partner(self): """ If partner changes, adapts lead to False """ diff --git a/yaltik_crm_action/models/res_partner.py b/yaltik_crm_action/models/res_partner.py index 13f43f1..6d26130 100644 --- a/yaltik_crm_action/models/res_partner.py +++ b/yaltik_crm_action/models/res_partner.py @@ -18,7 +18,7 @@ """ Partner adaptations """ -from odoo import models, fields, api +from odoo import models, fields, api, _ class ResPartner(models.Model): """ Partner adaptations """ @@ -30,6 +30,12 @@ class ResPartner(models.Model): def _compute_action_count(self): for partner in self: domain = [('partner_id', '=', partner.id)] + if partner.parent_id or partner.child_ids: + domain.insert(0, '|') + if partner.parent_id: + domain.append(('partner_id', '=', partner.parent_id.id)) + elif partner.child_ids: + domain.append(('partner_id', 'in', partner.child_ids.ids)) action_count = self.env['crm.action'].search_count(domain) if action_count: domain.append(('state', '=', 'draft')) @@ -37,3 +43,24 @@ class ResPartner(models.Model): else: draft_count = 0 partner.action_count = u'{} / {}'.format(draft_count, action_count) + + + @api.model + def partner_actions(self): + """ Return action for active partner and its parent """ + active_id = self._context.get('active_id') + partner = self.env['res.partner'].browse(active_id) + domain = [('partner_id', '=', partner.id)] + if partner.parent_id or partner.child_ids: + domain.insert(0, '|') + if partner.parent_id: + domain.append(('partner_id', '=', partner.parent_id.id)) + elif partner.child_ids: + domain.append(('partner_id', 'in', partner.child_ids.ids)) + + return {'type': 'ir.actions.act_window', + 'name': _('Actions'), + 'view_mode': 'tree,form,calendar', + 'res_model': 'crm.action', + 'context': {'default_partner_id': partner.id}, + 'domain': domain} diff --git a/yaltik_crm_action/views/crm_action_views.xml b/yaltik_crm_action/views/crm_action_views.xml index 9db1583..579dd46 100644 --- a/yaltik_crm_action/views/crm_action_views.xml +++ b/yaltik_crm_action/views/crm_action_views.xml @@ -45,7 +45,9 @@ along with this program. If not, see . - + diff --git a/yaltik_crm_action/views/res_partner_views.xml b/yaltik_crm_action/views/res_partner_views.xml index 2858491..4640e57 100644 --- a/yaltik_crm_action/views/res_partner_views.xml +++ b/yaltik_crm_action/views/res_partner_views.xml @@ -37,12 +37,12 @@ along with this program. If not, see . - + + Actions - crm.action - tree,form,calendar - {'search_default_partner_id': active_id} + + code + action = env['res.partner'].partner_actions()