diff --git "a/ale.subscription.pricing\">" "b/ale.subscription.pricing\">" new file mode 100644 index 0000000000..cc68fdc56c --- /dev/null +++ "b/ale.subscription.pricing\">" @@ -0,0 +1,144 @@ +diff --git a/condominium/data/documents_folder.xml b/condominium/data/documents_folder.xml +index 5b3190ef8..df790d1d4 100644 +--- a/condominium/data/documents_folder.xml ++++ b/condominium/data/documents_folder.xml +@@ -8,12 +8,10 @@ +  + Odoo Error - 2025-05-27 10:14:23.txt + txt +- documents.document +-  + lQlGkhT1T72XvAea9Tm-_g + view +  +-  ++ +  ++  + 809H2snSSO2GNRSCK_Bt8A + edit +  +@@ -159,5 +157,5 @@ + Administrator + folder + gHFeBoFRTjySNYFcK7n-2Q +-  +- ++ --> ++ +\ No newline at end of file +diff --git a/condominium/data/ir_model_fields.xml b/condominium/data/ir_model_fields.xml +index 30aae0988..10f60694f 100644 +--- a/condominium/data/ir_model_fields.xml ++++ b/condominium/data/ir_model_fields.xml +@@ -290,7 +290,6 @@ for record in self: +  + x_companies + >>>>>> 413a26e70 (Cleanup commit -1) + for record in self: + record['x_companies'] = [(6, 0, record.x_properties_ids.x_condominium.ref_company_ids.ids)] + ]]>  +@@ -1892,4 +1891,50 @@ for rec in self: + Account name test +  + --> +- ++ ++  ++  ++ x_analytic_account_name_id ++ many2one ++ account.analytic.account ++ Account ++  ++  ++  ++ 0 and record.x_studio_voting_key != False and record.x_studio_condominium != False : ++ x_studio_attending_ratio = 0.0 ++ for attendee in record.attendee_ids: ++ if attendee.x_studio_attending or attendee.x_studio_delegating: x_studio_attending_ratio += attendee.x_studio_ratio ++ total_ratio = sum( ++ x_studio_ratio.x_ratio for x_studio_ratio in record.x_studio_voting_key.x_studio_ratio_ids ++ ) ++ if total_ratio > 0: ++ record['x_studio_attending_ratio'] = x_studio_attending_ratio / total_ratio ++ else: ++ record['x_studio_attending_ratio'] = 1]]> ++  ++ float ++ attendee_ids,attendee_ids.x_studio_delegating, attendee_ids.x_studio_attending, attendee_ids.x_studio_ratio, x_studio_voting_key ++ Attending and Delegating Ratio ++  ++ x_studio_attending_ratio ++  ++  ++  ++ +\ No newline at end of file +diff --git a/condominium/data/res_config_settings.xml b/condominium/data/res_config_settings.xml +index d34726524..739453022 100644 +--- a/condominium/data/res_config_settings.xml ++++ b/condominium/data/res_config_settings.xml +@@ -7,7 +7,9 @@ +  +  +  +-  ++ ++  ++  +  +  +  +diff --git a/condominium/data/sale_subscription_pricing.xml b/condominium/data/sale_subscription_pricing.xml +index 8f9170b00..e39a698db 100644 +--- a/condominium/data/sale_subscription_pricing.xml ++++ b/condominium/data/sale_subscription_pricing.xml +@@ -1,6 +1,6 @@ +  +  +-  ++  +  diff --git a/base_industry_data.zip b/base_industry_data.zip new file mode 100644 index 0000000000..69e335ec22 Binary files /dev/null and b/base_industry_data.zip differ diff --git a/condominium/__manifest__.py b/condominium/__manifest__.py index 2e6bfbc97e..d63da0ab2f 100644 --- a/condominium/__manifest__.py +++ b/condominium/__manifest__.py @@ -5,11 +5,14 @@ 'depends': [ 'account_check_printing', 'account_followup', + 'account_peppol', 'accountant', + 'appointment_account_payment', 'calendar', 'contacts', 'documents_product', 'documents_project_sale', + 'documents_sign', 'documents_spreadsheet', 'helpdesk_sale_timesheet', 'hr', @@ -22,56 +25,86 @@ 'data/ir_attachment_pre.xml', 'data/ir_model.xml', 'data/ir_model_fields.xml', - 'data/base_automation.xml', + 'data/report_paperformat.xml', + 'data/ir_actions_report.xml', + 'data/mail_template.xml', 'data/ir_actions_server.xml', + 'data/base_automation.xml', 'data/account_analytic_plan.xml', 'data/ir_filters.xml', 'data/ir_default.xml', - 'data/meter_view.xml', 'data/ir_actions_act_window.xml', + 'data/ir_actions_act_window_view.xml', 'data/ir_ui_view.xml', + 'data/qweb_view.xml', 'data/ir_ui_menu.xml', 'data/ir_model_access.xml', + 'data/res_partner.xml', + 'data/res_company.xml', 'data/ir_rule.xml', 'data/project_task_type.xml', 'data/documents_folder.xml', 'data/project_project.xml', 'data/project_task.xml', 'data/product_product.xml', - 'data/sale_order_template.xml', - 'data/sale_order_template_line.xml', + 'data/sale_subscription_plan.xml', + 'data/sale_subscription_pricing.xml', 'data/knowledge_cover.xml', 'data/knowledge_article.xml', 'data/knowledge_article_favorite.xml', 'data/mail_message.xml', 'data/x_buildings_tag.xml', + 'data/knowledge_tour.xml', + 'data/sale_order_template.xml', + 'data/sale_order_template_line.xml', + 'data/x_meters.xml', + 'data/x_distribution_key.xml', + 'data/x_vote_criteria.xml', + 'data/x_calendar_event_line_a1bce.xml', + 'data/x_calendar_event_line_a1bce_line_a3f04.xml', + 'data/x_meeting.xml', 'data/x_properties_types.xml', 'data/x_properties_tag.xml', - 'data/x_meters.xml', - 'data/knowledge_tour.xml', + 'data/x_buildings.xml', + 'data/x_property.xml', + 'data/x_property_line_019a4.xml', + 'data/x_period.xml', + 'data/x_ratios.xml', ], 'demo': [ - 'demo/res_partner.xml', - 'demo/res_company.xml', - 'demo/x_buildings.xml', 'demo/account_analytic_account.xml', + 'demo/x_meter_reading.xml', + 'demo/x_property_line_07bf7.xml', + 'demo/x_property_line_bfb14.xml', + 'demo/account_analytic_line.xml', + 'demo/hr_employee.xml', + 'demo/account_move.xml', + 'demo/account_move_line.xml', + 'demo/x_calendar_event_line.xml', + 'demo/calendar_event.xml', + 'demo/calendar_attendee.xml', + 'demo/res_partner.xml', 'demo/sale_order.xml', 'demo/sale_order_line.xml', - 'demo/sale_order_post.xml', + 'demo/sale_order_confirm.xml', + 'demo/account_move_confirm.xml', 'demo/helpdesk_team.xml', 'demo/helpdesk_ticket.xml', + 'demo/x_calendar_event_line_a1bce.xml', + 'demo/x_property_line_019a4.xml', + 'demo/calendar_event_update_voting_key.xml', ], 'license': 'OPL-1', 'assets': { 'web.assets_backend': [ - 'condominium/static/src/js/acquisition.js', 'condominium/static/src/js/my_tour.js', ] }, 'author': 'Odoo S.A.', "cloc_exclude": [ + 'data/ir_actions_server.xml', + 'data/qweb_view.xml', "data/knowledge_article.xml", - "static/src/js/acquisition.js", "static/src/js/my_tour.js", ], 'images': ['images/main.png'], diff --git a/condominium/data/account_analytic_line.xml b/condominium/data/account_analytic_line.xml new file mode 100644 index 0000000000..1dc43b02c8 --- /dev/null +++ b/condominium/data/account_analytic_line.xml @@ -0,0 +1,433 @@ + + + + Air conditioning and air treatment + -99.13 + + + + vendor_bill + + + + + Air conditioning and air treatment + -39.56 + + + + vendor_bill + + + + Air conditioning and air treatment + -594.78 + + + + vendor_bill + + + + Air conditioning and air treatment + -198.26 + + + + vendor_bill + + + + Air conditioning and air treatment + -158.7 + + + + vendor_bill + + + + Air conditioning and air treatment + -396.52 + + + + vendor_bill + + + + Air conditioning and air treatment + -79.35 + + + + vendor_bill + + + + Air conditioning and air treatment + -99.13 + + + + vendor_bill + + + + Air conditioning and air treatment + -237.82 + + + + vendor_bill + + + + Air conditioning and air treatment + -198.26 + + + + vendor_bill + + + + Air conditioning and air treatment + -32.43 + + + + vendor_bill + + + + Air conditioning and air treatment + -165.83 + + + + vendor_bill + + + + Swimming pool/technical installations repairs + -948.2 + + + + + vendor_bill + + + + Swimming pool/technical installations repairs + -378.4 + + + + + vendor_bill + + + + Swimming pool/technical installations repairs + -5689.2 + + + + + vendor_bill + + + + Swimming pool/technical installations repairs + -1896.4 + + + + + vendor_bill + + + + Swimming pool/technical installations repairs + -1518.0 + + + + + vendor_bill + + + + Swimming pool/technical installations repairs + -3792.8 + + + + + vendor_bill + + + + Swimming pool/technical installations repairs + -759.0 + + + + + vendor_bill + + + + Swimming pool/technical installations repairs + -948.2 + + + + + vendor_bill + + + + Swimming pool/technical installations repairs + -2274.8 + + + + + vendor_bill + + + + Swimming pool/technical installations repairs + -1896.4 + + + + + vendor_bill + + + + Swimming pool/technical installations repairs + -310.2 + + + + + vendor_bill + + + + Swimming pool/technical installations repairs + -1586.2 + + + + + vendor_bill + + + + Architect/engineer fees + -215.5 + + + + + vendor_bill + + + + Architect/engineer fees + -86.0 + + + + + vendor_bill + + + + Architect/engineer fees + -1293.0 + + + + + vendor_bill + + + + Architect/engineer fees + -431.0 + + + + + vendor_bill + + + + Architect/engineer fees + -345.0 + + + + + vendor_bill + + + + Architect/engineer fees + -862.0 + + + + + vendor_bill + + + + Architect/engineer fees + -172.5 + + + + + vendor_bill + + + + Architect/engineer fees + -215.5 + + + + + vendor_bill + + + + Architect/engineer fees + -517.0 + + + + + vendor_bill + + + + Architect/engineer fees + -431.0 + + + + + vendor_bill + + + + Architect/engineer fees + -70.5 + + + + + vendor_bill + + + + Architect/engineer fees + -360.5 + + + + + vendor_bill + + + + Electricity for common areas + -691.88 + + + + vendor_bill + + + + Electricity for common areas + -173.04 + + + + vendor_bill + + + + Electricity for common areas + -171.36 + + + + vendor_bill + + + + Electricity for common areas + -345.8 + + + + vendor_bill + + + + Electricity for common areas + -693.28 + + + + vendor_bill + + + + Electricity for common areas + -134.12 + + + + vendor_bill + + + + Electricity for common areas + -71.68 + + + + vendor_bill + + + + Electricity for common areas + -173.04 + + + + vendor_bill + + + + Electricity for common areas + -345.8 + + + + vendor_bill + + + diff --git a/condominium/data/account_analytic_plan.xml b/condominium/data/account_analytic_plan.xml index 450a268a80..e5a70dc118 100644 --- a/condominium/data/account_analytic_plan.xml +++ b/condominium/data/account_analytic_plan.xml @@ -1,7 +1,7 @@ - - Properties + + Account diff --git a/condominium/data/base_automation.xml b/condominium/data/base_automation.xml index 770c06d8e9..1b1ecf6fda 100644 --- a/condominium/data/base_automation.xml +++ b/condominium/data/base_automation.xml @@ -1,9 +1,44 @@ - Set Usage in Meter Readings + Condominium: Set Usage in Meter Readings + on_create_or_write + + + + on_create_or_write + Condominium: On owners edit + + + + + on_unlink + Condominium: On property deletion + + + + + on_create_or_write + [("id", "!=", False)] + [("id", "=", False)] + Condominium: On Vote Edit + + + + + on_change + Condominium: On Distribution input update + + + + + + on_create_or_write + Condominium: On Distribution input save + + diff --git a/condominium/data/documents_folder.xml b/condominium/data/documents_folder.xml index 5a007dea9d..3434103cd3 100644 --- a/condominium/data/documents_folder.xml +++ b/condominium/data/documents_folder.xml @@ -1,13 +1,162 @@ - - Kick-Off Template - - folder - - - Property - - folder - + + Support + folder + CFBFFfmkRYC8UOQ0kk07hA + + + Odoo Error - 2025-05-27 10:14:23.txt + txt + + lQlGkhT1T72XvAea9Tm-_g + view + + + + + Projects + folder + z9y8pyAISKi1ZltbwQz9nA + view + view + + + Internal + folder + + Y9AlV4aaRry8vrqEeZ70mQ + view + edit + + + + + + SO0002 - Kick-Off Template + folder + RAYLMzcCRPmBFmvjBZJEkQ + view + view + + + + Internal + folder + tc1ZtVKIRum8vzO2UTnYXA + view + edit + + + + + Internal + folder + ET-BcWQdQR-_3lOMDltjjg + view + edit + + + + + Property + folder + WDKgCsa3R861CiHorjL-Ug + view + view + + + + Kick-Off Template + folder + rCTRUWWXQhasR4vEX1X2qw + view + view + + + + Internal + folder + FxtvoKrNQ_Ws5S95YhVCgg + view + edit + + + + + Sign + folder + NeaY5pgsTTuHaHvqjmpU3w + view + + + Products + folder + qbSX6yN-TlynzB2OHlprwA + view + + diff --git a/condominium/data/ir_actions_act_window.xml b/condominium/data/ir_actions_act_window.xml index 26bf1b32a8..f33025e3a1 100644 --- a/condominium/data/ir_actions_act_window.xml +++ b/condominium/data/ir_actions_act_window.xml @@ -59,10 +59,27 @@ form {'create': False} + + Split + x_analytic_account_wizard + form + new + + +  Create and manage the properties that compose this condominium

+]]>
+ Accounts + + [('x_is_a_property','=', True), ('company_id', 'in', allowed_company_ids)] + account.analytic.account + list,form,activity +
{'search_default_x_condominium': active_id,'default_x_condominium': active_id} - [('x_condominium', '=', active_id), ('x_is_a_property','=', True)] - Properties + [('x_is_a_property','=', True)] + Accounts + list account.analytic.account @@ -74,7 +91,7 @@ x_meters @@ -106,9 +123,124 @@ Ratios x_ratios - + + + + Ownership + x_ownership + + + Period + x_period + + + Properties + [('x_studio_company_id', 'in', allowed_company_ids)] + x_property + kanban,list,form + + + + + {'search_default_x_studio_current_owner': active_id,'default_x_studio_current_owner': active_id} + [('x_studio_current_owner', '=', active_id)] + Properties + x_property + + + {'search_default_x_studio_condominium': active_id,'default_x_studio_condominium': active_id} + [('x_studio_condominium', '=', active_id)] + Properties + x_property + + + Meeting + x_meeting + + + Vote + x_vote + + + + [('x_companies', 'in', allowed_company_ids)] + Meetings + calendar.event + list,form,calendar,gantt,pivot,graph + + + [('x_studio_condominium','in', allowed_company_ids)] + Meetings + calendar.event + list,form,calendar,gantt,pivot,graph + + + Motion Criteria + x_vote_criteria + + + Meter Readings + x_meter_reading + + + Period + x_period + list,form,calendar + + + Meters + x_meters + + + [('move_type', '!=', 'out_invoice')] + Invoices + account.move + + + Invoices + account.move + + + + Distribution Keys + x_distribution_key + + + ratios + x_ratios + + [('x_company_id', 'in', allowed_company_ids)] + Buildings (new) + account.analytic.plan + kanban,list,form + + + [('x_company_id', 'in', allowed_company_ids),('parent_id', '!=', False)] + Properties (new) + account.analytic.plan + kanban,list,form + + + Units + account.analytic.plan + kanban,list,form + + + Breakdown of Charges + account.analytic.line + pivot,list,form,grid + + diff --git a/condominium/data/ir_actions_act_window_view.xml b/condominium/data/ir_actions_act_window_view.xml new file mode 100644 index 0000000000..8617d7b28f --- /dev/null +++ b/condominium/data/ir_actions_act_window_view.xml @@ -0,0 +1,28 @@ + + + + + list + + + + activity + + + + + list + + + + pivot + + + + graph + + + + kanban + + diff --git a/condominium/data/ir_actions_report.xml b/condominium/data/ir_actions_report.xml new file mode 100644 index 0000000000..721db2cc96 --- /dev/null +++ b/condominium/data/ir_actions_report.xml @@ -0,0 +1,18 @@ + + + + + calendar.event + General Meeting Report + condominium.studio_report_docume_d1eb9c9c-5c91-47ca-9895-ba519a3d0517 + qweb-html + + + + + calendar.event + General Meeting Agenda + condominium.studio_report_docume_f2caf209-068e-49ab-9a02-4cfe3e9625b2 + qweb-html + + diff --git a/condominium/data/ir_actions_server.xml b/condominium/data/ir_actions_server.xml index b992c84132..960318b312 100644 --- a/condominium/data/ir_actions_server.xml +++ b/condominium/data/ir_actions_server.xml @@ -1,86 +1,5 @@ - - Split per Owner - code - - - - - Compute Ratios - code - - - - - - Distribute Costs - - code - - Confirm code @@ -88,24 +7,118 @@ for aml in record.invoice_line_ids: +]]> - - Meter Reading - + + Confirm code - + + +total_share = sum(line.x_share for line in records.x_line_ids) + +if round(total_share) != 100: + raise UserError("The Share sum shall equal 100% to confirm the split.") + +new_analytic_item = env['account.analytic.line'] +note_details = {} +occupied_cells = {} + +project_plan, other_plans = records.env['account.analytic.plan']._get_all_plans() +for plan in other_plans: + if plan.name == 'Account': + fname = plan._column_name() + +for line in records.x_line_ids: + original_analytic = line.x_analytic_line_id or original_analytic + analytic_id = line.x_analytic_account_name_id + original_analytic_name = original_analytic.name + original_analytic_id = original_analytic.id + + if original_analytic: + new_analytic_item_id = original_analytic.copy({ + fname: analytic_id.id or '', + "amount": line.x_amount + }) + + if original_analytic_id in occupied_cells: + occupied_cells[original_analytic_id].update(new_analytic_item_id) + else: + occupied_cells.update({original_analytic_id: set(new_analytic_item_id)}) + + if original_analytic_id in note_details: + analytic_url = f"/odoo/analytic-items/{new_analytic_item_id.id}" + note_line = f"- {line.x_share:.2f}% on {line.x_analytic_account_name_id.name}" + note_details[original_analytic_id].add(note_line) + else: + analytic_url = f"/odoo/analytic-items/{new_analytic_item_id.id}" + note_line = {f"- {line.x_share:.2f}% on {line.x_analytic_account_name_id.name}"} + note_details.update({original_analytic_id: set(note_line)}) + +for original_id, new_lines in occupied_cells.items(): + for new_analytic_line in list(new_lines): + for Aid, values in note_details.items(): + if original_id == Aid: + note_html = f""" + {datetime.date.today().strftime("%d %B %Y")}
+

Analytic item coming from a split
+ {'
'.join(list(values))}
+ See original analytic item +

+ """ + new_analytic_line.write({"x_notes": note_html.strip()}) + +for original_id, values in note_details.items(): + original_item = new_analytic_item.browse(original_id) + note_html = f""" + {datetime.date.today().strftime("%d %B %Y")}
+

Analytic item splited
+ {'
'.join(list(values))}
+ Original amount: {original_item.amount} +

+ """ + new_analytic_item.browse(original_id).write({"x_notes": note_html.strip(), "amount": 0.0,}) + ]]>
+
+ + + Split + + + + code + + Open company partner form view @@ -116,24 +129,246 @@ action['res_id'] = env.company.partner_id.id]]> - + code - Create Condominium - + Condomnium: Create Condominium +
+ + + + code + Condominium: Split SO per Owner + + + + + code + Condominium: Compute Meter Reading Consumption + + + + + code + Condominium: Update Property Current Owner + base_automation + + + + + code + Condominium: Archive related accounts + base_automation + + + + + + code + Condominium: Populate Voters + base_automation + + + + + + code + Condominium: Set Votes as All Against + + + + + + code + Condominium: Set Votes as All In Favor + + + + + mail_post + + Condominium: Send General Meeting Report + + + + + + mail_post + Condominium: Send General Meeting Agenda + + + + = 2: + billstart = findClosestMeterReading(record.x_studio_period_start, meter_reading_ids) + billend = findClosestMeterReading(record.x_studio_period_end, meter_reading_ids) + for account in property.x_studio_account_ids: + mrostart = findClosestMeterReading(account.x_studio_start_date, meter_reading_ids) + if mrostart.x_date < billstart.x_date: mrostart = billstart + if account.x_studio_end_date: + mroend = findClosestMeterReading(account.x_studio_end_date, meter_reading_ids) + if billend.x_date < mroend.x_date: mroend = billend + else: mroend = billend + if not (billend.x_date < mrostart.x_date or billend.x_date < mroend.x_date) and mrostart.x_date != mroend.x_date: + analytic_distribution[account.id] = abs(mroend.x_quantity - mrostart.x_quantity) + + # Outcome + total_ratio = sum(analytic_distribution.values()) + if total_ratio: + for key in analytic_distribution: analytic_distribution[key] *= 100 / total_ratio + for aml in record.invoice_line_ids: aml['analytic_distribution'] = analytic_distribution + else: + for aml in record.invoice_line_ids: aml['analytic_distribution'] = {} + +]]> + + code + Condominium: Distribute Costs + + + + + + code + Condominium: Populate Distribution Key + + + + + + code + Compute Distribution Key Ratios + + + + + code + Condominium: Call Distribute Costs on UI update + base_automation + + + + + code + Condominium: Call Distribute Costs on save + base_automation + + + + + + code + Condominium: Create Task from Motion +
diff --git a/condominium/data/ir_default.xml b/condominium/data/ir_default.xml index 11df1c7de0..830f47a4e4 100644 --- a/condominium/data/ir_default.xml +++ b/condominium/data/ir_default.xml @@ -1,25 +1,83 @@ - - - true - - - - 10 - - - - true - - - - 10 - - - - true - + + + true + + + + true + + + + true + + + + true + + + + true + + + + 1 + + + + 4 + + + + 3 + + + + 2 + + + + 10 + + + + "Shares" + + + + "0" + + + + "1" + + + + true + + + + 10 + + + + true + + + + 10 + + + + true + + + + + + - + + diff --git a/condominium/data/ir_model.xml b/condominium/data/ir_model.xml index d81ec6893d..c8d17b8894 100644 --- a/condominium/data/ir_model.xml +++ b/condominium/data/ir_model.xml @@ -1,35 +1,135 @@ - - - - x_buildings - Buildings - - - x_buildings_tag - Buildings Tags - - - x_properties_tag - Properties Tags - - - - - x_properties_types - Properties Types - - - x_ratios - Ratios - - - x_meter_reading - Meter Reading - - - x_meters - Meters - + + + + x_property + Property + + + x_property_line_bfb14 + Property Line Meter Reading ids + + + x_property_line_019a4 + Property Line Owner ids + + + x_property_line_07bf7 + Property Line Tenant ids + + + + + x_meeting + Meeting + + + x_calendar_event_line_a7dc0 + calendar_event_line + + + x_calendar_event_line_a1bce + Calendar Event Line Motion + + + x_calendar_event_line_a1bce_line_a3f04 + Calendar Event Line Motion Line Vote + + + x_calendar_event_line_920fe + calendar_event_line + + + + + x_vote_criteria + Vote Criteria + + + + + x_period + Period + + + + + x_distribution_key + Distribution Key + + + x_distribution_key_line_4d544 + distribution_key_line + + + x_distribution_key_line_92aae + distribution_key_line + + + x_calendar_event_line_a1bce_line_cce2e + calendar_event_line_a1bce_line + + + x_calendar_event_line_a1bce_line_ea528 + calendar_event_line_a1bce_line + + + x_calendar_event_line_a1bce_line_e3675 + calendar_event_line_a1bce_line + + + x_calendar_event_line_a1bce_line_89b1c + calendar_event_line_a1bce_line + + + + x_ownership + Ownership + + + x_vote + Vote + + + + + x_buildings + Buildings + + + x_buildings_tag + Buildings Tags + + + x_properties_tag + Properties Tags + + + + + x_properties_types + Properties Types + + + x_ratios + Ratios + + + x_meter_reading + Meter Reading + + + x_meters + Meters + + + + x_analytic_account_wizard + Split Analytic Items + + + x_analytic_account_wizard_line + Split Wizard Line + diff --git a/condominium/data/ir_model_access.xml b/condominium/data/ir_model_access.xml index 261872b1e3..ae2f446e5e 100644 --- a/condominium/data/ir_model_access.xml +++ b/condominium/data/ir_model_access.xml @@ -1,137 +1,464 @@ - - - - Ratios group_system - - - - - - - - - Ratios group_user - - - - - - - - Buildings group_system - - - - - - - - - Buildings group_user - - - - - - - - - Buildings Tags group_system - - - - - - - - - Buildings Tags group_user - - - - - - - - - Properties group system - - - - - - - - - Properties group user - - - - - - - - - Properties Tags group_system - - - - - - - - - Properties Tags group_user - - - - - - - - - Properties Types group_system - - - - - - - - - Properties Types group_user - - - - - - - access_meter_reading_user - - - - - - - - - access_meter_reading_admin - - - - - - - - - access_meters_user - - - - - - - + + + + Property group_system + + + + + + + + + Property group_user + + + + + + + + property_line group_system + + + + + + + + + property_line group_user + + + + + + + + property_line group_system + + + + + + + + + property_line group_user + + + + + + + + property_line group_system + + + + + + + + + property_line group_user + + + + + + + + Meeting group_system + + + + + + + + + Meeting group_user + + + + + + + + calendar_event_line group_system + + + + + + + + + calendar_event_line group_user + + + + + + + + calendar_event_line group_system + + + + + + + + + calendar_event_line group_user + + + + + + + + calendar_event_line_a1bce_line group_system + + + + + + + + + calendar_event_line_a1bce_line group_user + + + + + + + + calendar_event_line group_system + + + + + + + + + calendar_event_line group_user + + + + + + + + Vote Criteria group_system + + + + + + + + + Vote Criteria group_user + + + + + + + + Period group_system + + + + + + + + + Period group_user + + + + + + + + Distribution Key group_system + + + + + + + + + Distribution Key group_user + + + + + + + + distribution_key_line group_system + + + + + + + + + distribution_key_line group_user + + + + + + + + distribution_key_line group_system + + + + + + + + + distribution_key_line group_user + + + + + + + + calendar_event_line_a1bce_line group_system + + + + + + + + + calendar_event_line_a1bce_line group_user + + + + + + + + calendar_event_line_a1bce_line group_system + + + + + + + + + calendar_event_line_a1bce_line group_user + + + + + + + + calendar_event_line_a1bce_line group_system + + + + + + + + + calendar_event_line_a1bce_line group_user + + + + + + + + calendar_event_line_a1bce_line group_system + + + + + + + + + calendar_event_line_a1bce_line group_user + + + + + + + + Ratios group_system + + + + + + + + + Ratios group_user + + + + + + + + Buildings group_system + + + + + + + + + Buildings group_user + + + + + + + + + Buildings Tags group_system + + + + + + + + + Buildings Tags group_user + + + + + + + + + Properties group system + + + + + + + + + Properties group user + + + + + + + + + Properties Tags group_system + + + + + + + + + Properties Tags group_user + + + + + + + + + Properties Types group_system + + + + + + + + + Properties Types group_user + + + + + + + access_meter_reading_user + + + + + + + + + access_meter_reading_admin + + + + + + + + + access_meters_user + + + + + + + + + + x_analytic_account_wizard user access + + + + + + + + + + x_analytic_account_wizard_line user access + + + + + + + + diff --git a/condominium/data/ir_model_fields.xml b/condominium/data/ir_model_fields.xml index 95362c4136..6521dbc4ef 100644 --- a/condominium/data/ir_model_fields.xml +++ b/condominium/data/ir_model_fields.xml @@ -1,577 +1,1975 @@ - - x_name - char - - Description - - - 1 - standard - - - x_active - boolean - - Active - - 1 - - - x_company_id - many2one - - Company - - res.company - 1 - - - x_notes - html - - Notes - - - - x_image - binary - - Image - - - - x_sequence - integer - - Sequence - - - - x_tag_ids - many2many - - Tags - - x_buildings_tag - x_buildings_tag_rel - - - x_name - char - - Name - - - - - x_color - integer - - Color - - - - x_tags - many2many - - Tags - - x_properties_tag - x_account_analytic_account_x_properties_tag_rel - - - x_name - char - - Name - - - - - x_color - integer - - Color - - - - x_condominium - many2one - x_company_id.partner_id - Condominium - - - res.partner - - - x_street - char - - Street - - - - x_street2 - char - - Street2 - - - - x_city - char - - City - - - - x_zip - char - - ZIP - - - - x_country - many2one - - Country - - res.country - - - x_state - many2one - - State - - res.country.state - - - x_condominium - many2one - company_id.partner_id - Condominium - - - res.partner - - - x_building - many2one - - Building - - x_buildings - - - - x_tenant - many2one - - Tenant - - res.partner - - - x_parent - many2one - - Parent - - account.analytic.account - - - x_floor - char - - Floor - - - - x_area - float - - Area - - - - x_name - char - - Description - - - 1 - standard - - - x_active - boolean - - Active - - 1 - - - x_sequence - integer - - Sequence - - - - x_type - many2one - - Type - - x_properties_types - - - x_parent_account_analytic_account_count - + x_name + char + + Description + + + 1 + standard + + + x_active + boolean + + Active + + 1 + + + x_company_id + many2one + + Company + + res.company + 1 + + + x_notes + html + + Notes + + + + x_image + binary + + Image + + + + x_sequence + integer + + Sequence + + + + x_tag_ids + many2many + + Tags + + x_buildings_tag + x_buildings_tag_rel + + + x_name + char + + Name + + + + + x_color + integer + + Color + + + + x_tags + many2many + + Tags + + x_properties_tag + x_account_analytic_account_x_properties_tag_rel + + + x_name + char + + Name + + + + + x_color + integer + + Color + + + + x_condominium + many2one + x_company_id.partner_id + Condominium + + + res.partner + + + x_street + char + + Street + + + + x_street2 + char + + Street2 + + + + x_city + char + + City + + + + x_zip + char + + ZIP + + + + x_country + many2one + + Country + + res.country + + + x_state + many2one + + State + + res.country.state + + + x_condominium + many2one + company_id.partner_id + Condominium + + + res.partner + + + x_building + many2one + + Building + + x_buildings + + + + x_tenant + many2one + + Tenant + + res.partner + + + + + x_parent + many2one + + Parent + + account.analytic.account + + + x_floor + char + + Floor + + + + x_area + float + + Area + + + + x_name + char + + Description + + + 1 + standard + + + x_active + boolean + + Active + + 1 + + + x_sequence + integer + + Sequence + + + + x_type + many2one + + Type + + x_properties_types + + + x_parent_account_analytic_account_count + - integer - Parent count - - - - - - x_x_building_account_analytic_account_count - + integer + Parent count + + + + + + x_x_building_account_analytic_account_count + - integer - Building count - - - - - - x_condominium_account_analytic_account_count - - integer - Building Condominium count - - - - - - x_properties_ids - one2many - Properties - - account.analytic.account - partner_id - - - x_companies - + integer + Building count + + + + + + x_condominium_account_analytic_account_count + + integer + Building Condominium count + + + + + + one2many + x_properties_ids + Properties + + account.analytic.account + partner_id + + + one2many + x_properties_ids + Properties (old) + + x_studio_properties + + account.analytic.account + partner_id + + + + x_companies + - many2many - x_properties_ids,x_properties_ids.x_condominium - Partner's Companies - - - res.company - x_res_company_res_partner_rel - - - x_vendors - many2many - - Vendors - - res.partner - x_res_partner_res_partner_rel_1 - - - x_vendor_condominiums - many2many - - Vendors Condominiums - - res.partner - x_res_partner_res_partner_rel_1 - id2 - id1 - - - x_vendor_companies - + many2many + x_properties_ids,x_properties_ids.x_condominium + Partner's Companies + + + res.company + x_res_company_res_partner_rel + + + x_vendors + many2many + + Vendors + + res.partner + x_res_partner_res_partner_rel_1 + + + x_vendor_condominiums + many2many + + Vendors Condominiums + + res.partner + x_res_partner_res_partner_rel_1 + id2 + id1 + + + x_vendor_companies + - many2many - x_vendor_condominiums - Vendors Companies - - - res.company - x_res_company_res_partner_rel_1 - - - x_condominium_properties - one2many - Condominium Properties - - account.analytic.account - x_condominium - - - x_source_sales_order - - Source Sales Order - many2one - sale.order - - - x_x_source_sales_order_sale_order_count - - Source Sales Order count - - integer - - - - - x_is_a_property_plan - boolean - Property plan - - - - x_is_a_property - boolean - Is a property - - plan_id.x_is_a_property_plan - - - - x_company_partner_id - boolean - Company partner - - partner_id,company_id - + many2many + x_vendor_condominiums + Vendors Companies + + + res.company + x_res_company_res_partner_rel_1 + + + x_condominium_properties + one2many + Condominium Properties + + account.analytic.account + x_condominium + + + x_source_sales_order + + Source Sales Order + many2one + sale.order + + + x_x_source_sales_order_sale_order_count + + Source Sales Order count + + integer + + + + + x_is_a_property_plan + boolean + Property plan + + + + x_is_a_property + boolean + Is a property + + plan_id.x_is_a_property_plan + + + + x_company_partner_id + boolean + Company partner + + partner_id,company_id + - - - - - x_name - char - - Description - - standard - - - x_active - boolean - - Active - - - - x_company_id - many2one - - Company - - res.company - - - x_sequence - integer - - Sequence - - - - x_property - many2one - - Property - - account.analytic.account - - - x_pricelist - many2one - - Pricelist - - product.pricelist - - - float - - Ratio - - x_ratio - - - x_area - float - x_property.x_area - Area - - - - - - x_building - many2one - x_property.x_building - Building - - - x_buildings - - - - x_type - many2one - x_property.x_type - Type - - - x_properties_types - - - - x_floor - char - x_property.x_floor - Floor - - - - - - x_owner - many2one - x_property.partner_id - Owner - - - res.partner - - - - x_ratios - one2many - Ratios - - x_ratios - x_pricelist - - - x_distribution_key - many2one - - Distribution Key - - product.pricelist - - - x_meter_id - Meter - - many2one - x_meters - - - x_date - Date - - date - - - - x_quantity - Quantity - - float - - - x_usage - Usage - - float - - - - x_description - Description - - char - - - x_image - Attachment - binary - - - - x_account_analytic_account_id - Property - - account.analytic.account - many2one - - - x_property_meter_reading_ids - Meter Readings - - one2many - x_meter_reading - x_account_analytic_account_id - - - x_name - Description - - char - - - x_currency_id - Currency - - res.currency - many2one - - - x_price - Price - - monetary - - - x_sequence - Sequence - - integer - +]]>
+ + + + + x_name + char + + Description + + standard + + + x_active + boolean + + Active + + + + x_company_id + many2one + + Company + + res.company + + + x_sequence + integer + + Sequence + + + + + + + x_property + many2one + + X Property + + account.analytic.account + + + x_pricelist + many2one + + Pricelist + + product.pricelist + + + float + + Ratio + + x_ratio + + + + + + x_meter_id + Meter + + many2one + x_meters + + + x_date + Date + + date + + + + x_quantity + Quantity + + float + + + x_usage + Usage + + float + + + + x_description + Description + + char + + + x_image + Attachment + binary + + + + x_account_analytic_account_id + Analytic Account Property + + account.analytic.account + many2one + + + x_property_meter_reading_ids + Meter Readings + + one2many + x_meter_reading + x_account_analytic_account_id + + + x_name + Description + + char + + + x_currency_id + Currency + + res.currency + many2one + + + x_price + Price + + monetary + + + x_sequence + Sequence + + integer + + + many2one + + Current Owner + + x_studio_current_owner + res.partner + + + char + + Description + + x_name + + 1 + standard + + + boolean + + Active + + x_active + 1 + + + integer + + Sequence + + x_studio_sequence + + + many2one + + Building + + + x_studio_building + x_buildings + + + many2one + + Type + + x_studio_type + x_properties_types + + + char + + Floor + + x_studio_floor + + + float + + Area + + x_studio_area + + + many2one + + Parent + + x_studio_parent + x_property + + + many2one + + Property + + x_studio_property + x_property + + + x_owner + many2one + x_studio_property.x_studio_current_owner + Owner + + + res.partner + + + + x_building + many2one + x_studio_property.x_studio_building + Building + + + x_buildings + + + + x_type + many2one + x_studio_property.x_studio_type + Type + + + x_properties_types + + + + x_floor + char + x_studio_property.x_studio_floor + Floor + + + + + + x_area + float + x_studio_property.x_studio_area + Area + + + + + + + integer + + Sequence + + x_studio_sequence + + + char + + Description + + x_name + + standard + + + many2one + + X Property + + x_property_id + x_property + + + many2one + + Meter + + x_studio_meter + x_meters + + + date + + Date + + x_studio_date + + + float + + Quantity + + x_studio_quantity + + + float + + Consumption + + x_studio_consumption + + + integer + + Sequence + + x_studio_sequence + + + char + + Description + + x_name + standard + + + many2one + + X Property + + x_property_id + x_property + + + one2many + Owner ids + + x_studio_owner_ids + x_property_line_019a4 + x_property_id + + + integer + + Sequence + + x_studio_sequence + + + char + + Description + + x_name + standard + + + many2one + + X Property + + x_property_id + x_property + + + one2many + Tenant ids + + x_studio_tenant_ids + x_property_line_07bf7 + x_property_id + + + date + + Start Date + + x_studio_start_date + + + date + + End Date + + x_studio_end_date + + + many2one + + Tenant + + x_studio_tenant + res.partner + + + date + + Start Date + + x_studio_start_date + + + date + + End Date + + x_studio_end_date + + + many2one + + Owner + + x_studio_owner + res.partner + + + many2one + + Owner + + x_studio_owner + res.partner + + + many2one + + Property + + x_studio_property + x_property + + + many2one + + Account + + x_studio_account + account.analytic.account + + + many2one + + Owner line + + x_studio_owner_line + x_property_line_019a4 + + + date + x_studio_owner_line.x_studio_start_date + Start Date + + x_studio_start_date + + + + + date + x_studio_owner_line.x_studio_end_date + End Date + + x_studio_end_date + + + + + + many2one + x_studio_property, x_owner + Account + + x_studio_account + + account.analytic.account + + + + + x_studio_property + many2one + + Property + x_property + + + one2many + Meter Reading ids + + x_studio_meter_reading_ids + x_meter_reading + x_studio_property + + + + + many2many + + Tags + + x_studio_tags + x_properties_tag + x_x_properties_tag_x_property_rel + + + + integer + Current Owner count + + x_x_studio_current_owner_x_property_count + + + + + + + boolean + Is my company + + x_is_main_company + + + + + many2one + + Company + + x_studio_company_id + res.company + + + + + + + many2one + x_studio_company_id.partner_id + Condominium + + x_studio_condominium + + res.partner + + + one2many + Account ids + + x_studio_account_ids + account.analytic.account + x_studio_property + + + + integer + Condominium count + + x_x_studio_condominium_x_property_count + + + + + char + + Description + + x_name + + 1 + standard + + + boolean + + Active + + x_active + 1 + + + integer + + Sequence + + x_studio_sequence + + + many2one + + Condominium + + x_studio_condominium + res.company + + + integer + + Sequence + + x_studio_sequence + + + char + + Description + + x_name + + standard + + + many2one + + X Calendar Event + + x_calendar_event_id + calendar.event + + + integer + + Sequence + + x_studio_sequence + + + char + + Motion + + x_name + + standard + + + many2one + + X Calendar Event + + x_calendar_event_id + calendar.event + + + one2many + Motions + + x_studio_vote_ids + x_calendar_event_line_a1bce + x_calendar_event_id + + + integer + + Sequence + + x_studio_sequence + + + char + + Description + + x_name + standard + + + many2one + + X Calendar Event Line A1Bce + + x_calendar_event_line_a1bce_id + x_calendar_event_line_a1bce + + + one2many + Attendee Vote ids + + x_studio_attendee_vote_ids + x_calendar_event_line_a1bce_line_a3f04 + x_calendar_event_line_a1bce_id + + + many2one + + Attendee + + x_studio_attendee + res.partner + + + selection + + Vote + + x_studio_vote + [('Abstention', 'Abstention'), ('Against', 'Against'), ('In Favor', 'In Favor')] + + + integer + + Sequence + + x_studio_sequence + + + char + + Description + + x_name + + standard + + + many2one + + X Calendar Event + + x_calendar_event_id + calendar.event + + + many2one + + Voting key + + x_studio_voting_key + x_distribution_key + + + + float + event_id.x_studio_voting_key + Ratio + + x_studio_ratio + + + + + + one2many + partner_id.x_properties_ids + Property + + x_studio_properties + + account.analytic.account + partner_id + + + + boolean + + Attending + + x_studio_attending + + + many2one + event_id.x_studio_condominium + Condominium + + x_studio_condominium + + res.company + + + + boolean + + Delegating + + x_studio_delegating + + + x_distribution_key + many2one + + Distribution Key + x_distribution_key + + + + one2many + Ratio ids + + x_studio_ratio_ids + x_ratios + x_distribution_key + + + html + + Notes + + x_studio_notes + + + char + + Description + + x_name + + 1 + standard + + + boolean + + Active + + x_active + 1 + + + integer + + Sequence + + x_studio_sequence + + + float + + Acceptation threshold + + x_studio_acceptation_threshold + + + many2one + + Motion Criteria + + x_studio_vote_criteria + x_vote_criteria + + + + + + 0 and record.x_calendar_event_id.x_studio_voting_key != False: + x_studio_in_favor = 0 + for attendee_vote in record.x_studio_attendee_vote_ids: + for attendee in record.x_calendar_event_id.attendee_ids: + if attendee.partner_id.id == attendee_vote.x_studio_attendee.id and attendee_vote.x_studio_vote == 'In Favor': x_studio_in_favor += attendee.x_studio_ratio + record['x_studio_in_favor'] = x_studio_in_favor / sum([x_studio_ratio.x_ratio for x_studio_ratio in record.x_calendar_event_id.x_studio_voting_key.x_studio_ratio_ids]) / record.x_calendar_event_id.x_studio_attending_ratio + else: record['x_studio_in_favor'] = 0]]> + float + x_studio_attendee_vote_ids + In Favor + + x_studio_in_favor + + + + + + 0 and record.x_calendar_event_id.x_studio_voting_key != False: + x_studio_against = 0 + for attendee_vote in record.x_studio_attendee_vote_ids: + for attendee in record.x_calendar_event_id.attendee_ids: + if attendee.partner_id.id == attendee_vote.x_studio_attendee.id and attendee_vote.x_studio_vote == 'Against': x_studio_against += attendee.x_studio_ratio + record['x_studio_against'] = x_studio_against / sum([x_studio_ratio.x_ratio for x_studio_ratio in record.x_calendar_event_id.x_studio_voting_key.x_studio_ratio_ids]) / record.x_calendar_event_id.x_studio_attending_ratio + else: record['x_studio_against'] = 0]]> + float + x_studio_attendee_vote_ids + Against + + x_studio_against + + + + + + 0 and record.x_calendar_event_id.x_studio_voting_key != False: + x_studio_abstention = 0 + for attendee_vote in record.x_studio_attendee_vote_ids: + for attendee in record.x_calendar_event_id.attendee_ids: + if attendee.partner_id.id == attendee_vote.x_studio_attendee.id and attendee_vote.x_studio_vote == 'Abstention': x_studio_abstention += attendee.x_studio_ratio + record['x_studio_abstention'] = x_studio_abstention / sum([x_studio_ratio.x_ratio for x_studio_ratio in record.x_calendar_event_id.x_studio_voting_key.x_studio_ratio_ids]) / record.x_calendar_event_id.x_studio_attending_ratio + else: record['x_studio_abstention'] = 0]]> + float + x_studio_attendee_vote_ids + Abstention + + x_studio_abstention + + + + + + = record.x_studio_vote_criteria.x_studio_acceptation_threshold: record['x_studio_outcome'] = 'Approved' + else: record['x_studio_outcome'] = 'Rejected' + ]]> + selection + x_studio_in_favor, x_studio_against, x_studio_abstention, x_studio_vote_criteria + Outcome + + x_studio_outcome + + + [('Approved', 'Approved'), ('Rejected', 'Rejected')] + + + + + integer + attendee_ids + Attending and Delegating Owners + + x_studio_attending_owners + + + + boolean + + Used for categorization + + x_studio_used_for_categorization + + + + + + + + + + + char + + Name + + x_name + + 1 + standard + + + boolean + + Active + + x_active + 1 + + + date + + Date + + x_studio_date + + + integer + + Sequence + + x_studio_sequence + + + date + + Start Date + + x_studio_start_date + + + date + + End Date + + x_studio_end_date + + + + many2one + + Period + + x_studio_period + x_period + + + date + + Period Start + + x_studio_period_start + + + date + + Period End + + x_studio_period_end + + + char + + Description + + x_name + + 1 + standard + + + boolean + + Active + + x_active + 1 + + + many2one + + Company + + x_studio_company_id + res.company + 1 + + + integer + + Sequence + + x_studio_sequence + + + selection + + Based on + + x_studio_based_on + [('Shares', 'Shares'), ('Meter Readings', 'Meter Readings')] + + + many2one + + Meter + + x_studio_meter + x_meters + + + integer + + Sequence + + x_studio_sequence + + + char + + Description + + x_name + + standard + + + many2one + + X Distribution Key + + x_distribution_key_id + x_distribution_key + + + integer + + Sequence + + x_studio_sequence + + + char + + Description + + x_name + + standard + + + many2one + + X Distribution Key + + x_distribution_key_id + x_distribution_key + + + many2one + + Distribution Key + + x_studio_distribution_key + x_distribution_key + + + many2one + + Distribution Key + + x_studio_distribution_key + x_distribution_key + + + + boolean + invoice_line_ids, x_studio_distribution_key, x_studio_period_start, x_studio_period_end + Is distributed + + x_studio_is_distributed + + + + many2many + + Co-Owners + + x_studio_co_owners + res.partner + x_res_partner_x_property_line_019a4_rel + + + integer + + Year of Build + + x_studio_year_of_build_1 + + + selection + + Roof Type + + x_studio_roof_type_1 + [('Flat', 'Flat'), ('Angled', 'Angled')] + + + integer + + Floors + + x_studio_floors + + + boolean + + Elevators + + x_studio_elevators + + + selection + x_studio_distribution_key.x_studio_based_on + Based on + + x_studio_based_on + + [('Shares', 'Shares'), ('Meter Readings', 'Meter Readings')] + + + + many2one + + Company + + x_company_id + res.company + + + + boolean + parent_id + Is a unit + + x_studio_is_a_unit + + + + many2one + product_id.categ_id + Product Category + + x_studio_product_category + + product.category + + + + many2many + + Co-ownership Properties + + x_studio_co_ownership_properties + x_property + + + one2many + Ownership Properties + + x_studio_ownership_properties + x_property_line_019a4 + x_studio_owner + + + integer + + Sequence + + x_studio_sequence + + + char + + Description + + x_name + + standard + + + many2one + + X Calendar Event Line A1Bce + + x_calendar_event_line_a1bce_id + x_calendar_event_line_a1bce + + + integer + + Sequence + + x_studio_sequence + + + char + + Description + + x_name + + standard + + + many2one + + X Calendar Event Line A1Bce + + x_calendar_event_line_a1bce_id + x_calendar_event_line_a1bce + + + + integer + + Sequence + + x_studio_sequence + + + char + + Description + + x_name + + standard + + + many2one + + X Calendar Event Line A1Bce + + x_calendar_event_line_a1bce_id + x_calendar_event_line_a1bce + + + integer + + Sequence + + x_studio_sequence + + + char + + Description + + x_name + + standard + + + many2one + + X Calendar Event Line A1Bce + + x_calendar_event_line_a1bce_id + x_calendar_event_line_a1bce + + + one2many + New Lines + + x_studio_one2many_field_1ed_1is91cj3m + x_calendar_event_line_a1bce_line_89b1c + x_calendar_event_line_a1bce_id + + + + x_analytic_account_wizard_id + many2one + Analytic account wizard + + x_analytic_account_wizard + + + + + x_analytic_line_id + many2one + Analytic Line + + account.analytic.line + + + + x_currency_id + many2one + res.currency + + x_analytic_line_id.currency_id + + + + + x_amount + monetary + Amount + + x_currency_id + True + + + + x_line_ids + one2many + x_analytic_account_wizard_line + x_analytic_account_wizard_id + Split Lines + + + + + x_share + + float + x_amount + Share + + + + + + x_share_total + + float + x_line_ids.x_share + Share Total + + + + + + x_total + float + Total + + + + x_notes + html + + Notes + + + + + + + x_analytic_account_name_id + many2one + account.analytic.account + Account + + + + 0 and record.x_studio_voting_key != False and record.x_studio_condominium != False : + x_studio_attending_ratio = 0.0 + for attendee in record.attendee_ids: + if attendee.x_studio_attending or attendee.x_studio_delegating: x_studio_attending_ratio += attendee.x_studio_ratio + total_ratio = sum( + x_studio_ratio.x_ratio for x_studio_ratio in record.x_studio_voting_key.x_studio_ratio_ids + ) + if total_ratio > 0: + record['x_studio_attending_ratio'] = x_studio_attending_ratio / total_ratio + else: + record['x_studio_attending_ratio'] = 1]]> + + float + attendee_ids,attendee_ids.x_studio_delegating, attendee_ids.x_studio_attending, attendee_ids.x_studio_ratio, x_studio_voting_key + Attending and Delegating Ratio + + x_studio_attending_ratio + + + diff --git a/condominium/data/ir_rule.xml b/condominium/data/ir_rule.xml index 08f387aaff..e042e82a97 100644 --- a/condominium/data/ir_rule.xml +++ b/condominium/data/ir_rule.xml @@ -15,4 +15,22 @@ + + + + Distribution Key - Multi-Company + + + + + Calendar Event- multi_company + + ['|', ('x_studio_condominium', '=', False), ('x_studio_condominium', '=', 1), ('x_studio_condominium', 'in', company_ids)] + + + + Employee- multi_company + + + diff --git a/condominium/data/ir_ui_menu.xml b/condominium/data/ir_ui_menu.xml index 4842b7ec5b..64285183c5 100644 --- a/condominium/data/ir_ui_menu.xml +++ b/condominium/data/ir_ui_menu.xml @@ -1,10 +1,13 @@ + - + Condominium + + Infrastructure @@ -27,100 +30,277 @@ 1000 + + + + + Condominium + + 1 + Buildings 2 - + + + Properties + + 3 + + + + + + Distribution Keys + + 4 + + + + + + + Owners + 1 - - - Condominium - + + + Accounts + + 2 + + + + Helpdesk + 3 - - - Distribution Keys - - 5 - - - - Buildings - + + + Documents + 4 - - - Tags - - 1 + + + Sales + + 5 + + + + + + Meetings + + 6 + + + + + + Distribution + + 1 + + + + Vendors + + 2 + + + + Employees + + 3 + + + Properties 1 - - - Tags - - 2 - Type 1 - - Meters - + + + Tags - 3 - - - - Vendors - - 1 + 2 - - - Employees - + + + Buildings + 2 - - - Owners - + + + Tags + 1 - - - Helpdesk - - 2 + + + Costs + + 3 - - - Documents - - 3 + + + + Meters + + 1 - - - Sales - - 4 + + + General Meetings + + 4 + + + + Motion Criteria + + 1 + + + + + + + + + + + + + Ownership + + 6 + + + + + Periods + + 1 + + + + + + Vote + + 41 + + + + + + Meter Readings + + 3 + + + + + Periods + + 2 + + + + + Invoices + + 1001 + + + + + ratios + + 1001 + + + + + Buildings (new) + + 2 + + + + + Properties (new) + + 3 + + + + + Units + + 3 + + + + + Breakdown of Charges + + 1 diff --git a/condominium/data/ir_ui_view.xml b/condominium/data/ir_ui_view.xml index 6f941ac83d..0c4a3b92f3 100644 --- a/condominium/data/ir_ui_view.xml +++ b/condominium/data/ir_ui_view.xml @@ -1,523 +1,2257 @@ - - Custom form view for sale order - sale.order - - extension - - 160 - form - - - - - - - - - Distribution Key - - - {"no_open": false, "no_create": true} - Area as distribution key - - - - - Default list view for x_buildings - x_buildings - list - - - - - - + + + primary + account.analytic.account + analytic.analytic.account.form.condominium + 99 + + form + + + + + e.g. Apartment A0 + + + + + + + + + + + + + + + + + + x_is_a_property + Owner + + + True + + + 1 + base.group_no_one + True + + + + + + + + + sale.order.form.condominium + sale.order + + extension + + 160 + form + + + + + + + + + Distribution Key + + + {"no_open": false, "no_create": true} + Area as distribution key + + + + + x_buildings.list.condominium + x_buildings + list + + + + + + + + + + + x_buildings + x_buildings.form.condominium + 99 + form + + +
+
+ + + + + +
+

+ +

+
+ + + + + Address +
+ + + + + + +
+
+ + + +
+ + + +
+ + + + + + x_buildings + x_buildings.form.condominium + search + + + + + + + + + + + + + x_buildings_tag + x_buildings_tag.list.condominium + list + + + + + + + + + + x_buildings_tag + x_buildings_tag.form.condominium + form + + +
+
+ +
+

+ +

+
+
+ + + + + account.analytic.account.kanban.condominium + primary + + account.analytic.account + 99 + kanban + + + + + + + + + + + + + + + account.analytic.plan.inherit.form.condominium + account.analytic.plan + + + + + + + + + + x_buildings.kanban.condominium + x_buildings + + 99 + kanban + + + + + + + + + + + + + x_properties_types.list.condominium + x_properties_types + list + + + + + + + + + + x_properties_types.form.condominium + x_properties_types + form + + +
+
+ + + +
+

+ +

+
+
+ + + + + + x_properties_types.search.condominium + x_properties_types + search + + + + + + + + + + + + x_ratios.list.condominium + x_ratios + + list + + + + + + + + + + x_ratios.form.condominium + x_ratios + + form + +
+
+ + + + + + + + + + + + + + + + + + + x_ratios.search.condominium + x_ratios + + search + + + + + + + + + + + product.pricelist.list.condominium + + extension + product.pricelist + + 99 + list + + + Distribution Key + + + True + + + True + + + + + res.partner.form.condominium + + extension + res.partner + + 160 + form + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + - -
- - x_buildings - Default form view for x_buildings - 99 - form - - -
-
- -
- -
- - -
-

- -

-
- - - - - Address -
- - - - - - -
-
- - - +
+ + + + + + + + + + + + + + + res.partner.select.search.condominium + + extension + res.partner + + 160 + search + + + + + + + + + + + + + + + + Pricelist + + + + + + + + + true + + + + + extension + sale.order + sale.order.form.condominium + 160 + + form + + + + + + + + + + + + + + x_property + + x_property.list.condominium + list + + + + +
+ + + +
+

+ +

+
+ + + + +
+ + + + x_property + + x_property.form.condominium + form + + + + + + + + + + + x_property + + x_property.search.condominium + search + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + - - + + - - - -
-
- - x_buildings - Default search view for x_buildings - search - - - - - - - - - - - - - x_buildings_tag - Default list view for buildings tags - list - - - - - - - - - - x_buildings_tag - Default form view for buildings tag - form - - -
-
- -
-

- -

-
-
- - - - - analytic.analytic.account.form customization - - primary - - account.analytic.account - 400 - form - - - e.g. Apartment A0 - - - - - - - - - - - Apartment... - - - - - - - - - x_is_a_property - Owner - - - - - - - - - True - - - 1 - base.group_no_one - True - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + extension + x_property + x_property.form.condominium + 99 + + form + + + + + + + + + x_property_line_bfb14 + + x_property_line_bfb14.list.condominium + list + + + +
+
+ +
+

+ +

+
+ + + + +
+ + + x_property_line_bfb14 + + x_property_line_bfb14.form.condominium + form + + + + + + + + x_property_line_bfb14 + + x_property_line_bfb14.search.condominium + search + + + + + + + + + x_property_line_019a4 + + x_property_line_019a4.list.condominium + list + + + +
+
+ +
+

+ +

+
+ + + + +
+ + + x_property_line_019a4 + + x_property_line_019a4.form.condominium + form + + + + + + + + x_property_line_019a4 + + x_property_line_019a4.search.condominium + search + + + + + + + + + x_property_line_07bf7 + + x_property_line_07bf7.list.condominium + list + + + +
+
+ +
+

+ +

+
+ + + + +
+ + + x_property_line_07bf7 + + x_property_line_07bf7.form.condominium + form + + + + + + + + x_property_line_07bf7 + + x_property_line_07bf7.search.condominium + search + - - - - - - - - - - - - - - - - - - account.analytic.account.quick_create - account.analytic.account - 1000 - - -
- - - - - -
-
-
- - account.analytic.account.kanban customization - primary - - account.analytic.account - 99 - kanban - - - - - - - - - - - - - - - account.analytic.plan.inherit.form - account.analytic.plan - - - - - - - - - - kanban view for buildings - x_buildings - - 99 - kanban - - - - - - - - - - - - - Default list view for properties types - x_properties_types - list - - - - - + + + + x_property.kanban.condominium + primary + + x_property + 99 + kanban + + + + + + + + + + + + + + + + + + + + + + + + + + + + Owner + + + + + primary + + account.analytic.account + account.analytic.account.list.condominium + 400 + list + + + + + + + + + + + + + 1 + + + + extension + + account.analytic.account + account.analytic.account.search.condominium + search + + + + + + +
+
+
+ + + + + + + +
+
+ + extension + + account.analytic.line + account.analytic.line.form.condominium + 160 + form +
+ + + + + + + + + + + + extension + + x_property + x_property.list.condominium + 99 + list + + + + + + + + + + + extension + ir.default + + ir.default.list.condominium + 99 + list + + + + + + + + + + + extension + ir.default + + ir.default.form.condominium + 99 + form + + + + + + + + + + + + + + + + + + extension + x_ratios + + x_ratios.form.condominium + 99 + form + + + + + + + + + x_calendar_event_line_a7dc0 + x_calendar_event_line_a7dc0.list.condominium + + list + + + +
+
+ +
+

+ +

+
+ + + + +
+ + + x_calendar_event_line_a7dc0 + + x_calendar_event_line_a7dc0.form.condominium + form + + + + + + + + x_calendar_event_line_a7dc0 + + x_calendar_event_line_a7dc0.search.condominium + search + + + + + + + + + x_calendar_event_line_a1bce + + x_calendar_event_line_a1bce.list.condominium + list + + + +
+
+ +
+

+ +

+
+ + + + +
+ + + x_calendar_event_line_a1bce + + x_calendar_event_line_a1bce.form.condominium + form + + + + + + + + x_calendar_event_line_a1bce + + x_calendar_event_line_a1bce.search.condominium + search + + + + + +
- - - - - - - - - - - - - - - - - - - - - - - + + + + + +