Skip to content

Commit 1cb4748

Browse files
authored
condo v2 \o/ (#259)
2 parents fdcc8f4 + 2998ca1 commit 1cb4748

23 files changed

+2124
-541
lines changed

condominium/__manifest__.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
'name': 'Property Owner Association',
3-
'version': '1.0',
3+
'version': '1.1',
44
'category': 'Services',
55
'description': """
66
This industry is tailor-made for Property Owner Association businesses that aim at managing co-ownership properties. Such a business is complex because it implies managing all the aspects of the properties while fairly splitting the charges.
@@ -10,12 +10,14 @@
1010
'account_check_printing',
1111
'account_followup',
1212
'account_payment',
13+
'accountant',
1314
'contacts',
1415
'calendar',
1516
'documents_product',
1617
'documents_project_sale',
1718
'documents_spreadsheet',
1819
'helpdesk_sale_timesheet',
20+
'hr',
1921
'knowledge',
2022
'sale_subscription',
2123
'web_studio',
@@ -24,7 +26,6 @@
2426
'data/res_config_settings.xml',
2527
'data/ir_attachment_pre.xml',
2628
'data/ir_model.xml',
27-
'data/base_automation.xml',
2829
'data/ir_actions_server.xml',
2930
'data/ir_model_fields.xml',
3031
'data/ir_filters.xml',
@@ -33,6 +34,7 @@
3334
'data/ir_ui_view.xml',
3435
'data/ir_ui_menu.xml',
3536
'data/ir_model_access.xml',
37+
'data/ir_rule.xml',
3638
'data/project_task_type.xml',
3739
'data/documents_folder.xml',
3840
'data/project_project.xml',
@@ -44,6 +46,9 @@
4446
'data/knowledge_article.xml',
4547
'data/knowledge_article_favorite.xml',
4648
'data/mail_message.xml',
49+
'data/x_buildings_tag.xml',
50+
'data/x_properties_types.xml',
51+
'data/x_properties_tag.xml',
4752
],
4853
'demo': [
4954
'demo/account_analytic_account.xml',
@@ -52,7 +57,8 @@
5257
'demo/project_project.xml',
5358
'demo/res_partner.xml',
5459
'demo/res_company.xml',
55-
'demo/x_units.xml',
60+
'demo/x_buildings.xml',
61+
'demo/x_properties.xml',
5662
'demo/sale_order.xml',
5763
'demo/sale_order_line.xml',
5864
'demo/sale_order_post.xml',

condominium/data/base_automation.xml

Lines changed: 0 additions & 8 deletions
This file was deleted.

condominium/data/ir_actions_act_window.xml

Lines changed: 93 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,100 @@
66
<field name="domain">[('x_source_sales_order', '=', active_id)]</field>
77
<field name="res_model">sale.order</field>
88
</record>
9-
<record id="properties_menu_action" model="ir.actions.act_window">
9+
<record id="buildings_act_window" model="ir.actions.act_window">
10+
<field name="help"><![CDATA[
11+
<p class="o_view_nocontent_smiling_face">&nbsp;Create and manage the buildings that compose this condominium<br></p>
12+
]]></field>
13+
<field name="name">Buildings</field>
14+
<field name="res_model">x_buildings</field>
15+
<field name="view_mode">kanban,list,form,activity</field>
16+
</record>
17+
<record id="bu_act_window" model="ir.actions.act_window">
18+
<field name="context">{'search_default_x_condominium': active_id,'default_x_condominium': active_id}</field>
19+
<field name="domain">[('x_condominium', '=', active_id)]</field>
20+
<field name="name">Buildings</field>
21+
<field name="res_model">x_buildings</field>
22+
</record>
23+
<record id="buildings_tags_act_window" model="ir.actions.act_window">
24+
<field name="name">Buildings Tags</field>
25+
<field name="res_model">x_buildings_tag</field>
26+
</record>
27+
<record id="employees_act_window" model="ir.actions.act_window">
28+
<field name="help"><![CDATA[
29+
<p class="o_view_nocontent_smiling_face">&nbsp;Manage the employees working for this condominium<br></p>
30+
]]></field>
31+
<field name="name">Employees</field>
32+
<field name="res_model">hr.employee</field>
33+
<field name="view_mode">kanban,list,form,pivot,graph,activity,hierarchy</field>
34+
</record>
35+
<record id="condominium_act_window" model="ir.actions.act_window">
36+
<field name="name">Infrastructure</field>
37+
<field name="res_model">res.partner</field>
38+
<field name="view_mode">kanban,list,form,map,activity</field>
39+
</record>
40+
<record id="vendors_act_window" model="ir.actions.act_window">
41+
<field name="domain">[('x_vendor_companies', 'in', allowed_company_ids)]</field>
42+
<field name="help"><![CDATA[<p class="o_view_nocontent_smiling_face">&nbsp;Manage the vendors related to this condominium<br></p>]]></field>
43+
<field name="name">Vendors</field>
44+
<field name="res_model">res.partner</field>
45+
<field name="view_mode">kanban,list,form,map,activity</field>
46+
</record>
47+
<record id="owners_act_window" model="ir.actions.act_window">
48+
<field name="domain">[('x_companies', 'in', allowed_company_ids)]</field>
49+
<field name="help"><![CDATA[
50+
<p class="o_view_nocontent_smiling_face">&nbsp;Manage the owners of this condominium<br></p>
51+
]]></field>
52+
<field name="name">Owners</field>
53+
<field name="res_model">res.partner</field>
54+
<field name="view_mode">kanban,list,form,map,activity</field>
55+
</record>
56+
<record id="condo_act_window" model="ir.actions.act_window">
57+
<field name="domain">[('ref_company_ids', 'in', allowed_company_ids)]</field>
58+
<field name="help"><![CDATA[
59+
<p class="o_view_nocontent_smiling_face">&nbsp;Manage the condominium: buildings, properties, owners and much more!<br></p>
60+
]]></field>
61+
<field name="name">Condominium</field>
62+
<field name="res_model">res.partner</field>
63+
<field name="view_mode">kanban,list,form,map,activity</field>
64+
</record>
65+
<record id="property_types_act_window" model="ir.actions.act_window">
66+
<field name="name">Properties Types</field>
67+
<field name="res_model">x_properties_types</field>
68+
</record>
69+
<record id="properties_tags_act_window" model="ir.actions.act_window">
70+
<field name="name">Properties Tags</field>
71+
<field name="res_model">x_properties_tag</field>
72+
</record>
73+
<record id="props_act_window" model="ir.actions.act_window">
74+
<field name="context">{'search_default_x_parent': active_id,'default_x_parent': active_id}</field>
75+
<field name="domain">[('x_parent', '=', active_id)]</field>
76+
<field name="name">Properties</field>
77+
<field name="res_model">x_properties</field>
78+
</record>
79+
<record id="props_build_act_window" model="ir.actions.act_window">
80+
<field name="context">{'search_default_x_building': active_id,'default_x_building': active_id}</field>
81+
<field name="domain">[('x_building', '=', active_id)]</field>
82+
<field name="name">Properties</field>
83+
<field name="res_model">x_properties</field>
84+
</record>
85+
<record id="prop_condo_act_window" model="ir.actions.act_window">
86+
<field name="context">{'search_default_x_condominium': active_id,'default_x_condominium': active_id}</field>
87+
<field name="domain">[('x_condominium', '=', active_id)]</field>
88+
<field name="name">Properties</field>
89+
<field name="res_model">x_properties</field>
90+
</record>
91+
<record id="prop_own_act_window" model="ir.actions.act_window">
92+
<field name="context">{'search_default_x_owner': active_id,'default_x_owner': active_id}</field>
93+
<field name="domain">[('x_owner', '=', active_id)]</field>
1094
<field name="name">Properties</field>
11-
<field name="res_model">x_units</field>
12-
<field name="view_mode">kanban,map,list,form,activity</field>
95+
<field name="res_model">x_properties</field>
1396
</record>
14-
<record id="properties_tags_menu_action" model="ir.actions.act_window">
15-
<field name="name">Units Tags</field>
16-
<field name="res_model">x_units_tag</field>
97+
<record id="properties_act_window" model="ir.actions.act_window">
98+
<field name="help"><![CDATA[
99+
<p>&nbsp;Create and manage the properties&nbsp;that compose this condominium</p>
100+
]]></field>
101+
<field name="name">Properties</field>
102+
<field name="res_model">x_properties</field>
103+
<field name="view_mode">kanban,list,form,activity</field>
17104
</record>
18105
</odoo>

condominium/data/ir_actions_server.xml

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,16 @@
55
<field name="state">code</field>
66
<field name="model_id" ref="sale.model_sale_order"/>
77
<field name="code"><![CDATA[
8-
for property in record.partner_id.x_condominium_units_ids:
8+
total_ratio = sum(record.partner_id.x_condominium_properties.mapped('x_ratio'))
9+
if total_ratio == 0:
10+
raise UserError('There is no ratio set on the properties. Define a ratio for each property before splitting.')
11+
for property in record.partner_id.x_condominium_properties:
912
new_so = record.copy()
1013
new_so['x_source_sales_order'] = record.id
11-
new_so['partner_id'] = property.x_partner_id.id
14+
new_so['partner_id'] = property.x_owner.id
1215
new_so['x_property_id'] = property
1316
for sol in new_so.order_line:
14-
sol['price_unit'] = sol.price_unit * property.x_area_percent
17+
sol['price_unit'] = sol.price_unit * property.x_ratio / total_ratio
1518
record['state'] = 'cancel'
1619
]]></field>
1720
</record>
@@ -22,17 +25,6 @@ record['state'] = 'cancel'
2225
<field name="binding_model_id" ref="sale.model_sale_order"/>
2326
<field name="code"><![CDATA[
2427
records.action_confirm()
25-
]]></field>
26-
</record>
27-
<record id="ir_act_server_set_condominiums_on_partner" model="ir.actions.server">
28-
<field name="name">Execute Code</field>
29-
<field name="state">code</field>
30-
<field name="base_automation_id" ref="base_automation_1"/>
31-
<field name="model_id" ref="units_property_model"/>
32-
<field name="code"><![CDATA[
33-
for unit in records:
34-
condominiums_ids = unit.x_partner_id.x_units_owner_ids.x_condominium_id
35-
unit.x_partner_id['x_condominiums_ids'] = [(6, 0, condominiums_ids.ids)]
3628
]]></field>
3729
</record>
3830
</odoo>

condominium/data/ir_default.xml

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,27 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<odoo noupdate="1">
3-
<record id="ir_default_2" model="ir.default">
4-
<field name="field_id" ref="active_unit_field"/>
3+
<record id="active_buildings_default" model="ir.default">
4+
<field name="field_id" ref="active_buildings"/>
55
<field name="json_value">true</field>
66
</record>
7-
<record id="ir_default_3" model="ir.default">
8-
<field name="field_id" ref="sequence_field"/>
7+
<record id="sequence_buildings_default" model="ir.default">
8+
<field name="field_id" ref="sequence_buildings"/>
99
<field name="json_value">10</field>
1010
</record>
11-
<record id="ir_default_4" model="ir.default">
12-
<field name="field_id" ref="helpdesk.field_helpdesk_team__use_helpdesk_timesheet"/>
11+
<record id="active_properties_default" model="ir.default">
12+
<field name="field_id" ref="active_properties"/>
1313
<field name="json_value">true</field>
1414
</record>
15-
<record id="ir_default_5" model="ir.default">
16-
<field name="field_id" ref="helpdesk.field_helpdesk_team__use_helpdesk_sale_timesheet"/>
15+
<record id="sequence_properties_default" model="ir.default">
16+
<field name="field_id" ref="sequence_properties"/>
17+
<field name="json_value">10</field>
18+
</record>
19+
<record id="active_properties_type_default" model="ir.default">
20+
<field name="field_id" ref="active_properties_type"/>
1721
<field name="json_value">true</field>
1822
</record>
23+
<record id="sequence_properties_type_default" model="ir.default">
24+
<field name="field_id" ref="sequence_properties_types"/>
25+
<field name="json_value">10</field>
26+
</record>
1927
</odoo>

condominium/data/ir_filters.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
<odoo>
33
<record id="ir_filters_10" model="ir.filters">
44
<field name="name">Condominium</field>
5-
<field name="model_id">x_units</field>
6-
<field name="context">{'group_by': ['x_condominium_id']}</field>
5+
<field name="model_id">x_properties</field>
6+
<field name="context">{'group_by': ['x_building']}</field>
77
<field name="is_default" eval="True"/>
88
</record>
99
</odoo>

condominium/data/ir_model.xml

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,29 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<odoo>
3-
<record id="units_property_model" model="ir.model">
4-
<field name="name">Properties</field>
5-
<field name="model">x_units</field>
3+
<record id="model_buildings" model="ir.model">
64
<field name="is_mail_thread" eval="True"/>
75
<field name="is_mail_activity" eval="True"/>
6+
<field name="model">x_buildings</field>
7+
<field name="name">Buildings</field>
8+
</record>
9+
<record id="model_buildings_tags" model="ir.model">
10+
<field name="model">x_buildings_tag</field>
11+
<field name="name">Buildings Tags</field>
812
</record>
9-
<record id="units_tags_model" model="ir.model">
10-
<field name="name">Units Tags</field>
11-
<field name="model">x_units_tag</field>
13+
<record id="model_properties" model="ir.model">
14+
<field name="is_mail_thread" eval="True"/>
15+
<field name="is_mail_activity" eval="True"/>
16+
<field name="model">x_properties</field>
17+
<field name="name">Properties</field>
18+
</record>
19+
<record id="model_properties_tags" model="ir.model">
20+
<field name="model">x_properties_tag</field>
21+
<field name="name">Properties Tags</field>
22+
</record>
23+
<record id="model_properties_types" model="ir.model">
24+
<field name="is_mail_thread" eval="True"/>
25+
<field name="is_mail_activity" eval="True"/>
26+
<field name="model">x_properties_types</field>
27+
<field name="name">Properties Types</field>
1228
</record>
1329
</odoo>

0 commit comments

Comments
 (0)