cubells
8 years ago
committed by
Pedro M. Baeza
7 changed files with 61 additions and 74 deletions
-
10partner_deduplicate_acl/README.rst
-
3partner_deduplicate_acl/__init__.py
-
10partner_deduplicate_acl/__openerp__.py
-
43partner_deduplicate_acl/security/crm_deduplicate_acl_security.xml
-
3partner_deduplicate_acl/wizards/__init__.py
-
22partner_deduplicate_acl/wizards/partner_merge.py
-
10partner_deduplicate_acl/wizards/partner_merge_view.xml
@ -1,5 +1,6 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2016 Antiun Ingeniería S.L. - Jairo Llopis |
|||
# © 2016 Tecnativa, S.L. - Jairo Llopis |
|||
# © 2016 Tecnativa, S.L. - Vicent Cubells |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from . import wizards |
@ -1,44 +1,35 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<!-- © 2016 Antiun Ingeniería S.L. - Jairo Llopis |
|||
<!-- © 2016 Tecnativa S.L. - Jairo Llopis |
|||
© 2016 Tecnativa S.L. - Vicent Cubells |
|||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). --> |
|||
<odoo> |
|||
|
|||
<openerp> |
|||
<data> |
|||
|
|||
<!-- New user group category --> |
|||
<record id="category" model="ir.module.category"> |
|||
<!-- New user group category --> |
|||
<record id="category" model="ir.module.category"> |
|||
<field name="name">Deduplicate Contacts</field> |
|||
</record> |
|||
</record> |
|||
|
|||
<!-- New user groups --> |
|||
<record id="group_manually" model="res.groups"> |
|||
<!-- New user groups --> |
|||
<record id="group_manually" model="res.groups"> |
|||
<field name="name">Manually</field> |
|||
<field name="category_id" ref="category"/> |
|||
</record> |
|||
</record> |
|||
|
|||
<record id="group_automatically" model="res.groups"> |
|||
<record id="group_automatically" model="res.groups"> |
|||
<field name="name">Automatically</field> |
|||
<field name="category_id" ref="category"/> |
|||
<field name="implied_ids" eval="[(4, ref('group_manually'))]"/> |
|||
</record> |
|||
</record> |
|||
|
|||
<record id="group_unrestricted" model="res.groups"> |
|||
<record id="group_unrestricted" model="res.groups"> |
|||
<field name="name">Without restrictions</field> |
|||
<field name="category_id" ref="category"/> |
|||
<field name="implied_ids" eval="[(4, ref('group_manually'))]"/> |
|||
</record> |
|||
</record> |
|||
|
|||
<!-- Respect previous behavior --> |
|||
<record id="base.group_system" model="res.groups"> |
|||
<!-- Respect previous behavior --> |
|||
<record id="base.group_system" model="res.groups"> |
|||
<field name="implied_ids" eval="[(4, ref('group_unrestricted'))]"/> |
|||
</record> |
|||
|
|||
<!-- New permission for menuitem --> |
|||
<record id="crm.partner_merge_automatic_menu" model="ir.ui.menu"> |
|||
<field |
|||
name="groups_id" |
|||
eval="[(4, ref('group_manually'))]"/> |
|||
</record> |
|||
</record> |
|||
|
|||
</data> |
|||
</openerp> |
|||
</odoo> |
@ -1,5 +1,6 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2016 Antiun Ingeniería S.L. - Jairo Llopis |
|||
# © 2016 Tecnativa, S.L. - Jairo Llopis |
|||
# © 2016 Tecnativa, S.L. - Vicent Cubells |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from . import partner_merge |
@ -1,25 +1,21 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2016 Antiun Ingeniería S.L. - Jairo Llopis |
|||
# © 2016 Tecnativa, S.L. - Jairo Llopis |
|||
# © 2016 Tecnativa, S.L. - Vicent Cubells |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from openerp import SUPERUSER_ID, api, models |
|||
from openerp import api, models |
|||
|
|||
|
|||
class BasePartnerMergeAutomaticWizard(models.TransientModel): |
|||
_inherit = "base.partner.merge.automatic.wizard" |
|||
|
|||
@api.cr_uid_context |
|||
def _merge(self, cr, uid, partner_ids, dst_partner=None, context=None): |
|||
@api.model |
|||
def _merge(self, partner_ids, dst_partner=None): |
|||
"""Allow non-admins to merge partners with different emails.""" |
|||
# Know if user has unrestricted access |
|||
group_unrestricted = self.pool["ir.model.data"].xmlid_to_object( |
|||
cr, uid, "crm_deduplicate_acl.group_unrestricted", context) |
|||
user = self.pool["res.users"].browse(cr, uid, uid, context) |
|||
|
|||
if self.env.user.has_group('crm_deduplicate_acl.group_unrestricted'): |
|||
# Run as admin if so |
|||
self = self.sudo() |
|||
return super(BasePartnerMergeAutomaticWizard, self)._merge( |
|||
cr, |
|||
SUPERUSER_ID if group_unrestricted in user.groups_id else uid, |
|||
partner_ids, |
|||
dst_partner, |
|||
context) |
|||
partner_ids=partner_ids, dst_partner=dst_partner |
|||
) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue