Skip to content

Commit bcd7c4e

Browse files
committed
[IMP] condominium: remarks
1 parent ddeda54 commit bcd7c4e

27 files changed

+1343
-363
lines changed

condominium/__manifest__.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
'data/ir_model.xml',
2727
'data/ir_model_fields.xml',
2828
'data/ir_actions_report.xml',
29+
'data/mail_template.xml',
2930
'data/ir_actions_server.xml',
3031
'data/base_automation.xml',
3132
'data/account_analytic_plan.xml',
@@ -59,6 +60,7 @@
5960
'data/x_distribution_key.xml',
6061
'data/x_vote_criteria.xml',
6162
'data/x_calendar_event_line_a1bce.xml',
63+
'data/x_calendar_event_line_a1bce_line_a3f04.xml',
6264
'data/x_meeting.xml',
6365
'data/x_properties_types.xml',
6466
'data/x_properties_tag.xml',
@@ -71,24 +73,28 @@
7173
'data/x_property_line_07bf7.xml',
7274
'data/x_property_line_bfb14.xml',
7375
'data/x_ratios.xml',
74-
'data/account_move.xml',
75-
'data/account_move_line.xml',
76-
'data/account_analytic_line.xml'
76+
'data/account_analytic_line.xml',
7777
],
7878
'demo': [
79+
'demo/hr_employee.xml',
80+
'demo/account_move.xml',
81+
'demo/account_move_line.xml',
82+
# 'demo/account_analytic_line.xml',
7983
'demo/res_company.xml',
80-
'demo/x_calendar_event_line_a1bce_line_a3f04.xml',
84+
'demo/x_calendar_event_line.xml',
8185
'demo/calendar_event.xml',
8286
'demo/calendar_attendee.xml',
8387
'demo/res_partner.xml',
8488
'demo/sale_order.xml',
8589
'demo/sale_order_line.xml',
8690
'demo/sale_order_confirm.xml',
91+
'demo/account_move_confirm.xml',
8792
'demo/helpdesk_team.xml',
8893
'demo/helpdesk_ticket.xml',
8994
'demo/x_property_line_07bf7.xml',
9095
'demo/x_calendar_event_line_a1bce.xml',
9196
'demo/x_property_line_019a4.xml',
97+
'demo/calendar_event_update_voting_key.xml',
9298
],
9399
'license': 'OPL-1',
94100
'assets': {

condominium/data/account_analytic_line.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<field name="company_id" ref="res_company_2"/>
1010
<field name="category">vendor_bill</field>
1111
<field name="product_id" ref="product_product_713"/>
12+
<!-- <field name="move_line_id" ref="account_move_line_719"/> -->
1213
</record>
1314
<record id="account_analytic_line_548" model="account.analytic.line">
1415
<field name="name">Air conditioning and air treatment</field>

condominium/data/documents_folder.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
<field name="document_token">tpoGcdq2TvSWrV6UgNVtuA</field>
6060
</record> -->
6161
<record id="documents_document_16" model="documents.document">
62-
<field name="name">S00002 - Kick-Off Template</field>
62+
<field name="name">SO0002 - Kick-Off Template</field>
6363
<field name="type">folder</field>
6464
<field name="document_token">RAYLMzcCRPmBFmvjBZJEkQ</field>
6565
<field name="access_via_link">view</field>

condominium/data/ir_actions_act_window.xml

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -70,17 +70,17 @@
7070
<p>&nbsp;Create and manage the properties&nbsp;that compose this condominium</p>
7171
]]></field>
7272
<field name="name">Accounts</field>
73-
<field name="domain" eval="[('x_is_a_property','=', True)]"/>
73+
<field name="domain">[('x_is_a_property','=', True), ('company_id', 'in', allowed_company_ids)]</field>
7474
<field name="res_model">account.analytic.account</field>
7575
<field name="view_mode">list,form,activity</field>
7676
</record>
77-
<!-- <record id="properties_act_window_view" model="ir.actions.act_window"> -->
78-
<!-- <field name="context">{'search_default_x_condominium': active_id,'default_x_condominium': active_id}</field> -->
79-
<!-- <field name="domain">[('x_is_a_property','=', True)]</field>
77+
<record id="properties_act_window_view" model="ir.actions.act_window">
78+
<field name="context">{'search_default_x_condominium': active_id,'default_x_condominium': active_id}</field>
79+
<field name="domain">[('x_is_a_property','=', True)]</field>
8080
<field name="name">Accounts</field>
8181
<field name="view_mode">list</field>
8282
<field name="res_model">account.analytic.account</field>
83-
</record> -->
83+
</record>
8484
<record id="property_types_act_window" model="ir.actions.act_window">
8585
<field name="name">Properties Types</field>
8686
<field name="res_model">x_properties_types</field>
@@ -122,11 +122,11 @@
122122
<field name="name">Ratios</field>
123123
<field name="res_model">x_ratios</field>
124124
</record>
125-
<record id="distribution_keys_act_window" model="ir.actions.act_window">
125+
<!-- <record id="distribution_keys_act_window" model="ir.actions.act_window">
126126
<field name="name">Distribution Keys</field>
127127
<field name="res_model">product.pricelist</field>
128128
<field name="view_mode">list,kanban,form</field>
129-
</record>
129+
</record> -->
130130

131131
<record id="ownership_8a444b87-789a-4536-83ea-09ca32b2fcde" model="ir.actions.act_window">
132132
<field name="help"><![CDATA[<p class="o_view_nocontent_smiling_face">
@@ -158,10 +158,6 @@
158158
<field name="name">Period</field>
159159
<field name="res_model">x_period</field>
160160
</record>
161-
162-
163-
164-
165161
<record id="property_96b9dd0b-5897-447e-ba68-019707a9681f" model="ir.actions.act_window">
166162
<field name="help"><![CDATA[<p class="o_view_nocontent_smiling_face">
167163
This is your new action.
@@ -174,14 +170,14 @@
174170
top right corner (you can also customize this help message there).
175171
</p>
176172
]]></field>
177-
<field name="name">Property</field>
173+
<field name="name">Propertys</field>
178174
<field name="domain">[('x_studio_company_id', 'in', allowed_company_ids)]</field>
179175
<field name="res_model">x_property</field>
180176
<field name="view_mode">kanban,list,form</field>
181177
</record>
182178

183179

184-
<record id="properties_56c25aba-f245-4e5e-b7ba-61b604350ec1" model="ir.actions.act_window">
180+
<record id="owner_properties_contact_smart_button" model="ir.actions.act_window">
185181
<field name="context">{'search_default_x_studio_current_owner': active_id,'default_x_studio_current_owner': active_id}</field>
186182
<field name="domain">[('x_studio_current_owner', '=', active_id)]</field>
187183
<field name="name">Properties</field>
@@ -365,7 +361,7 @@
365361
<field name="name">Invoices</field>
366362
<field name="res_model">account.move</field>
367363
</record>
368-
<record id="distribution_key_876778cb-3335-4c47-a15b-48cb0336cd62" model="ir.actions.act_window">
364+
<!-- <record id="distribution_key_876778cb-3335-4c47-a15b-48cb0336cd62" model="ir.actions.act_window">
369365
<field name="help"><![CDATA[<p class="o_view_nocontent_smiling_face">
370366
This is your new action.
371367
</p>
@@ -379,7 +375,7 @@
379375
]]></field>
380376
<field name="name">Distribution Key</field>
381377
<field name="res_model">x_distribution_key</field>
382-
</record>
378+
</record> -->
383379
<record id="distribution_key_94a8e399-496e-4970-9b0f-003b4d537b2a" model="ir.actions.act_window">
384380
<field name="help"><![CDATA[<p class="o_view_nocontent_smiling_face">
385381
This is your new action.
@@ -392,7 +388,7 @@
392388
top right corner (you can also customize this help message there).
393389
</p>
394390
]]></field>
395-
<field name="name">Distribution Key</field>
391+
<field name="name">Distribution Keys</field>
396392
<field name="res_model">x_distribution_key</field>
397393
</record>
398394
<record id="ratios_1e79b932-0153-4f8e-a460-d6cf3799a400" model="ir.actions.act_window">

condominium/data/ir_actions_server.xml

Lines changed: 46 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -14,74 +14,72 @@ records.action_confirm()
1414
<field name="state">code</field>
1515
<field name="model_id" ref="model_analytic_account_wizard"/>
1616
<field name="binding_model_id" ref="model_analytic_account_wizard"/>
17-
<field name="code"><![CDATA[total_share = 0
18-
note_lines = []
17+
<field name="code"><![CDATA[
18+
total_share = sum(line.x_share for line in records.x_line_ids)
19+
20+
if round(total_share) != 100:
21+
raise UserError("The Share sum shall equal 100% to confirm the split.")
22+
1923
new_analytic_item = env['account.analytic.line']
2024
note_details = {}
2125
occupied_cells = {}
2226
23-
for line in records.x_line_ids:
24-
total_share += line.x_share
25-
26-
if round(total_share) != 100:
27-
raise UserError("Total share must be 100%. Current: %s" % total_share)
27+
project_plan, other_plans = records.env['account.analytic.plan']._get_all_plans()
28+
for plan in other_plans:
29+
if plan.name == 'Properties':
30+
fname = plan._column_name()
2831
2932
for line in records.x_line_ids:
30-
project_plan, other_plans = line.x_analytic_line_id.env['account.analytic.plan']._get_all_plans()
31-
for plan in other_plans:
32-
if plan.name == 'Properties':
33-
fname = plan._column_name()
34-
33+
original_analytic = line.x_analytic_line_id or original_analytic
3534
analytic_id = line.x_analytic_account_name_id
3635
analytic_name = analytic_id.name
37-
original_id = line.x_analytic_line_id.id
36+
original_analytic_id = original_analytic.id
3837
39-
new_analytic_item_id = new_analytic_item.create({
40-
fname: analytic_id.id or '',
41-
"name": analytic_id.name,
42-
"amount": line.x_amount
43-
})
44-
# new_analytic_item += new_analytic_item_id
45-
# occupied_cells.append((original_id, new_analytic_item_id))
38+
if original_analytic:
39+
new_analytic_item_id = original_analytic.copy({
40+
fname: analytic_id.id or '',
41+
"name": analytic_name,
42+
"amount": line.x_amount
43+
})
4644
47-
if original_id in occupied_cells:
48-
occupied_cells[original_id].update(new_analytic_item_id)
45+
if original_analytic_id in occupied_cells:
46+
occupied_cells[original_analytic_id].update(new_analytic_item_id)
4947
else:
50-
occupied_cells.update({original_id: set(new_analytic_item_id)})
48+
occupied_cells.update({original_analytic_id: set(new_analytic_item_id)})
5149
52-
if original_id in note_details:
50+
if original_analytic_id in note_details:
5351
analytic_url = f"/odoo/analytic-items/{new_analytic_item_id.id}"
5452
note_line = f"- {line.x_share:.2f}% on <a href='{analytic_url}' target='_blank'>{analytic_name}</a>"
55-
note_details[original_id].add(note_line)
53+
note_details[original_analytic_id].add(note_line)
5654
else:
5755
analytic_url = f"/odoo/analytic-items/{new_analytic_item_id.id}"
5856
note_line = {f"- {line.x_share:.2f}% on <a href='{analytic_url}' target='_blank'>{analytic_name}</a>"}
59-
note_details.update({original_id: set(note_line)})
57+
note_details.update({original_analytic_id: set(note_line)})
6058
61-
for cell, new_analytic_lines in occupied_cells.items():
62-
for new_analytic_line in list(new_analytic_lines):
59+
for original_id, new_lines in occupied_cells.items():
60+
for new_analytic_line in list(new_lines):
6361
for Aid, values in note_details.items():
64-
if cell == Aid:
62+
if original_id == Aid:
6563
note_html = f"""
6664
<i>{datetime.date.today().strftime("%d %B %Y")}</i><br/>
6765
<p><b>Analytic item coming from a split</b><br/>
6866
{'<br/>'.join(list(values))}<br/>
69-
See <a href='/odoo/analytic-items/{cell}' target='_blank'> original analytic item:</a>
67+
See <a href='/odoo/analytic-items/{original_id}' target='_blank'> original analytic item</a>
7068
</p>
7169
"""
7270
new_analytic_line.write({"x_notes": note_html.strip()})
7371
74-
for Aid, values in note_details.items():
72+
for original_id, values in note_details.items():
73+
original_item = new_analytic_item.browse(original_id)
7574
note_html = f"""
7675
<i>{datetime.date.today().strftime("%d %B %Y")}</i><br/>
7776
<p><b>Analytic item splited</b><br/>
7877
{'<br/>'.join(list(values))}<br/>
78+
Original amount: {original_item.amount}
7979
</p>
8080
"""
81-
new_analytic_item.browse(Aid).write({"x_notes": note_html.strip()})
82-
83-
# new_analytic_item.write({"x_notes": note_html.strip()})]]>
84-
</field>
81+
new_analytic_item.browse(original_id).write({"x_notes": note_html.strip(), "amount": 0.0,})
82+
]]></field>
8583
</record>
8684

8785
<record id="split_analytic_item_action" model="ir.actions.server">
@@ -97,10 +95,16 @@ for record in records:
9795
amount_total += record.amount
9896
split_amount = record.amount / 2
9997
98+
project_plan, other_plans = record.env['account.analytic.plan']._get_all_plans()
99+
for plan in other_plans:
100+
if plan.name == 'Properties':
101+
fname = plan._column_name()
102+
100103
for _ in range(2):
101104
analytic_account_lines.append((0, 0, {
102105
"x_analytic_line_id": record.id,
103-
"x_amount": split_amount
106+
"x_amount": split_amount,
107+
"x_analytic_account_name_id": record[fname].id if record[fname] else False
104108
}))
105109
106110
if amount_total == 0:
@@ -239,11 +243,13 @@ record['x_studio_attendee_vote_ids'] = env['x_calendar_event_line_a1bce_line_a3f
239243
<field name="binding_model_id" ref="calendar.model_calendar_event"/>
240244
<field name="model_id" ref="calendar.model_calendar_event"/>
241245
<field name="state">mail_post</field>
242-
<field name="name">Send General Meeting Report</field>
246+
<field name="template_id" ref="mail_template_51"/>
247+
<field name="name">Industry: Send General Meeting Report</field>
243248
</record>
244249
<record id="industry_send_genera_636204d5-33e7-437e-99cb-fbc897d72c0e" model="ir.actions.server">
245250
<field name="binding_model_id" ref="calendar.model_calendar_event"/>
246251
<field name="model_id" ref="calendar.model_calendar_event"/>
252+
<field name="template_id" ref="mail_template_52"/>
247253
<field name="state">mail_post</field>
248254
<field name="name">Send General Meeting Agenda</field>
249255
</record>
@@ -312,7 +318,7 @@ else:
312318
<record id="industry_populate_di_1bcb08fe-f6dc-4ea0-9ffc-d4607055470e" model="ir.actions.server">
313319
<field name="binding_model_id" ref="distribution_key_ebf70cee-4475-4921-a5f1-85e747bc5842"/>
314320
<field name="code"><![CDATA[for distribution_key in records:
315-
properties = env['x_property'].search([])
321+
properties = env['x_property'].search([('x_studio_company_id', 'in', record.x_studio_company_id.id)])
316322
if properties:
317323
total_distribution = sum(properties.mapped('x_studio_area'))
318324
for property in properties:
@@ -349,9 +355,8 @@ if server_action: server_action.run()]]></field>
349355
</record>
350356
<record id="industry_create_task_47e0cf69-8b12-4e53-b7d5-794639319f20" model="ir.actions.server">
351357
<field name="binding_model_id" ref="calendar_event_line_c0871dc9-8843-41a1-8c07-bbfd5c053508"/>
352-
<field name="code"><![CDATA[customer_id = record.x_calendar_event_id.x_studio_partner_id.id
353-
action = { 'type': 'ir.actions.act_window', 'name': 'Create Task', 'res_model': 'project.task', 'view_mode': 'form', 'view_type': 'form', 'target': 'new', 'context': { 'default_project_id': env['project.project'].search([('partner_id', '=', customer_id)]).id, 'default_name': record.x_name, 'default_user_ids': [env.user.id], 'default_partner_id': customer_id } }
354-
]]> </field>
358+
<field name="code"><![CDATA[customer_id = record.x_calendar_event_id.x_studio_condominium.partner_id.id
359+
action = { 'type': 'ir.actions.act_window', 'name': 'Create Task', 'res_model': 'project.task', 'view_mode': 'form', 'view_type': 'form', 'target': 'new', 'context': { 'default_project_id': env['project.project'].search([('partner_id', '=', customer_id)]).id, 'default_name': record.x_name, 'default_user_ids': [env.user.id], 'default_partner_id': customer_id } }]]></field>
355360
<field name="model_id" ref="calendar_event_line_c0871dc9-8843-41a1-8c07-bbfd5c053508"/>
356361
<field name="state">code</field>
357362
<field name="name">Create Task from Motion</field>

condominium/data/ir_default.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,12 @@
7272
<field name="field_id" ref="active_ratios_field"/>
7373
<field name="json_value">true</field>
7474
</record>
75+
<!-- set default value for currency-->
76+
<record id="default_currency_for_wizard_line" model="ir.default">
77+
<field name="field_id" ref="field_x_currency_id"/>
78+
<field name="json_value" eval="ref('base.USD')"/>
79+
</record>
80+
7581

7682
<function model="ir.default" name="set" eval="('account.analytic.account', 'plan_id', obj().env.ref('condominium.condominium_analytic_plan_2').id)"/>
7783
</odoo>

0 commit comments

Comments
 (0)