Harald Panten
5 years ago
committed by
newtratip
7 changed files with 69 additions and 93 deletions
-
23partner_contact_department/__manifest__.py
-
8partner_contact_department/migrations/12.0.1.0.0/post-migration.py
-
28partner_contact_department/models/res_partner.py
-
1partner_contact_department/readme/CONTRIBUTORS.rst
-
25partner_contact_department/tests/test_recursion.py
-
27partner_contact_department/views/res_partner_department_view.xml
-
50partner_contact_department/views/res_partner_view.xml
@ -1,8 +0,0 @@ |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from openupgradelib import openupgrade |
|||
|
|||
|
|||
@openupgrade.migrate(use_env=True) |
|||
def migrate(env, version): |
|||
env['res.partner.department']._parent_store_compute() |
@ -1,29 +1,26 @@ |
|||
# © 2016 Tecnativa - Vicent Cubells |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl-3.0). |
|||
from odoo.exceptions import UserError |
|||
from odoo.tests import common |
|||
from odoo.exceptions import ValidationError |
|||
|
|||
|
|||
class TestRecursion(common.SavepointCase): |
|||
|
|||
@classmethod |
|||
def setUpClass(cls): |
|||
super(TestRecursion, cls).setUpClass() |
|||
cls.department_obj = cls.env['res.partner.department'] |
|||
cls.department_obj = cls.env["res.partner.department"] |
|||
|
|||
# Instances |
|||
cls.dpt1 = cls.department_obj.create({'name': 'Dpt. 1'}) |
|||
cls.dpt2 = cls.department_obj.create({ |
|||
'name': 'Dep. 2', |
|||
'parent_id': cls.dpt1.id |
|||
}) |
|||
cls.dpt1 = cls.department_obj.create({"name": "Dpt. 1"}) |
|||
cls.dpt2 = cls.department_obj.create( |
|||
{"name": "Dep. 2", "parent_id": cls.dpt1.id} |
|||
) |
|||
|
|||
def test_recursion(self): |
|||
""" Testing recursion """ |
|||
self.dpt3 = self.department_obj.create({ |
|||
'name': 'Dep. 3', |
|||
'parent_id': self.dpt2.id |
|||
}) |
|||
self.dpt3 = self.department_obj.create( |
|||
{"name": "Dep. 3", "parent_id": self.dpt2.id} |
|||
) |
|||
# Creating a parent's child department using dpt1. |
|||
with self.assertRaises(ValidationError): |
|||
self.dpt1.write(vals={'parent_id': self.dpt3.id}) |
|||
with self.assertRaises(UserError): |
|||
self.dpt1.write(vals={"parent_id": self.dpt3.id}) |
@ -1,41 +1,36 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<?xml version="1.0" encoding="utf-8" ?> |
|||
<odoo> |
|||
|
|||
<record id="res_partner_department_action" model="ir.actions.act_window"> |
|||
<field name="name">Departments</field> |
|||
<field name="res_model">res.partner.department</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">tree</field> |
|||
</record> |
|||
|
|||
<record id="res_partner_department_tree_view" model="ir.ui.view"> |
|||
<field name="name">CRM department tree</field> |
|||
<field name="model">res.partner.department</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Departments" editable="top"> |
|||
<field name="name"/> |
|||
<field name="parent_id"/> |
|||
<field name="name" /> |
|||
<field name="parent_id" /> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="res_partner_department_form_view" model="ir.ui.view"> |
|||
<field name="name">CRM department form</field> |
|||
<field name="model">res.partner.department</field> |
|||
<field name="arch" type="xml"> |
|||
<form> |
|||
<group> |
|||
<field name="name"/> |
|||
<field name="parent_id"/> |
|||
<field name="child_ids"/> |
|||
<field name="name" /> |
|||
<field name="parent_id" /> |
|||
<field name="child_ids" /> |
|||
</group> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
|
|||
<menuitem action="res_partner_department_action" |
|||
id="menu_res_partner_department" |
|||
parent="contacts.res_partner_menu_config"/> |
|||
|
|||
<menuitem |
|||
action="res_partner_department_action" |
|||
id="menu_res_partner_department" |
|||
parent="contacts.res_partner_menu_config" |
|||
/> |
|||
</odoo> |
@ -1,44 +1,48 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<?xml version="1.0" encoding="utf-8" ?> |
|||
<odoo> |
|||
|
|||
<record model="ir.ui.view" id="view_partner_form_department"> |
|||
<field name="name">Partner form with department</field> |
|||
<field name="model">res.partner</field> |
|||
<field name="inherit_id" ref="base.view_partner_form"/> |
|||
<field name="inherit_id" ref="base.view_partner_form" /> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//sheet/group//field[@name='function']" position="after"> |
|||
<field name="department_id" |
|||
placeholder="Department" |
|||
attrs="{'invisible': [('is_company','=', True)]}" |
|||
options='{"no_open": True}'/> |
|||
<field |
|||
name="department_id" |
|||
placeholder="Department" |
|||
attrs="{'invisible': [('is_company','=', True)]}" |
|||
options='{"no_open": True}' |
|||
/> |
|||
</xpath> |
|||
<xpath expr="//field[@name='child_ids']/form//field[@name='function']" |
|||
position="after"> |
|||
<field name="is_company" invisible="True"/> |
|||
<field name="department_id" |
|||
placeholder="Department" |
|||
attrs="{'invisible': [('is_company','=', True)]}" |
|||
options='{"no_open": True}'/> |
|||
<xpath |
|||
expr="//field[@name='child_ids']/form//field[@name='function']" |
|||
position="after" |
|||
> |
|||
<field name="is_company" invisible="True" /> |
|||
<field |
|||
name="department_id" |
|||
placeholder="Department" |
|||
attrs="{'invisible': [('is_company','=', True)]}" |
|||
options='{"no_open": True}' |
|||
/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
<record model="ir.ui.view" id="view_res_partner_filter_department"> |
|||
<field name="name">Partner search with department</field> |
|||
<field name="model">res.partner</field> |
|||
<field name="inherit_id" ref="base.view_res_partner_filter"/> |
|||
<field name="inherit_id" ref="base.view_res_partner_filter" /> |
|||
<field name="arch" type="xml"> |
|||
<field name="category_id" position="after"> |
|||
<field name="department_id"/> |
|||
<field name="department_id" /> |
|||
</field> |
|||
<filter name="salesperson" position="after"> |
|||
<filter name="department" |
|||
string="Department" |
|||
domain="[('is_company', '=', False)]" |
|||
context="{'group_by': 'department_id'}"/> |
|||
<filter |
|||
name="department" |
|||
string="Department" |
|||
domain="[('is_company', '=', False)]" |
|||
context="{'group_by': 'department_id'}" |
|||
/> |
|||
</filter> |
|||
</field> |
|||
</record> |
|||
|
|||
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue