mirror of
https://github.com/bringout/oca-ocb-vertical-industry.git
synced 2026-04-21 23:12:03 +02:00
19.0 vanilla
This commit is contained in:
parent
4607ccbd2e
commit
825ff6514e
487 changed files with 184979 additions and 195262 deletions
|
|
@ -11,8 +11,8 @@
|
|||
<filter string="Service" name="service" domain="[('cost_type', '=', 'service')]"/>
|
||||
<filter string="Contract" name="contract" domain="[('cost_type', '=', 'contract')]"/>
|
||||
<separator/>
|
||||
<filter name="filter_date_start" date="date_start" default_period="this_year"/>
|
||||
<group expand="1" string="Group By">
|
||||
<filter name="filter_date_start" date="date_start" default_period="year"/>
|
||||
<group>
|
||||
<filter string="Vehicle" name="vehicle" context="{'group_by':'vehicle_id'}"/>
|
||||
<filter string="Driver" name="driver" context="{'group_by':'driver_id'}"/>
|
||||
</group>
|
||||
|
|
@ -46,10 +46,10 @@
|
|||
</record>
|
||||
|
||||
<record id="fleet_vechicle_costs_report_view_tree" model="ir.ui.view">
|
||||
<field name="name">fleet.vehicle.cost.report.view.tree</field>
|
||||
<field name="name">fleet.vehicle.cost.report.view.list</field>
|
||||
<field name="model">fleet.vehicle.cost.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Fleet Costs Analysis">
|
||||
<list string="Fleet Costs Analysis" create="0">
|
||||
<field name="name"/>
|
||||
<field name="driver_id" optional="show"/>
|
||||
<field name="fuel_type" optional="hide"/>
|
||||
|
|
@ -57,25 +57,51 @@
|
|||
<field name="cost" optional="show" sum="Sum of Cost"/>
|
||||
<field name="cost_type" optional="show"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="fleet_costs_reporting_action" model="ir.actions.act_window">
|
||||
<field name="name">Costs Analysis</field>
|
||||
<field name="res_model">fleet.vehicle.cost.report</field>
|
||||
<field name="view_mode">graph,pivot</field>
|
||||
<field name="view_id"></field>
|
||||
<field name="context" eval="{'search_default_filter_date_start': 1}"/>
|
||||
<field name="search_view_id" ref="fleet.fleet_costs_report_view_search"/>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_empty_folder">
|
||||
No data for analysis
|
||||
</p><p>
|
||||
Manage efficiently your different effective vehicles Costs with Odoo.
|
||||
</p>
|
||||
</field>
|
||||
<record id="fleet_vechicle_costs_report_view_form" model="ir.ui.view">
|
||||
<field name="name">fleet.vehicle.cost.report.form</field>
|
||||
<field name="model">fleet.vehicle.cost.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Fleet Costs Analysis" create="0" edit="0">
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="vehicle_id"/>
|
||||
<field name="driver_id"/>
|
||||
<field name="fuel_type"/>
|
||||
<field name="company_id" groups="base.group_multi_company" placeholder="Visible to all"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="date_start"/>
|
||||
<field name="cost"/>
|
||||
<field name="cost_type"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="fleet_costs_reporting_action" model="ir.actions.act_window">
|
||||
<field name="name">Costs Analysis</field>
|
||||
<field name="res_model">fleet.vehicle.cost.report</field>
|
||||
<field name="view_mode">graph,pivot</field>
|
||||
<field name="view_id"></field>
|
||||
<field name="context">{'search_default_filter_date_start': 1}</field>
|
||||
<field name="search_view_id" ref="fleet.fleet_costs_report_view_search"/>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_empty_folder">
|
||||
No data for analysis
|
||||
</p>
|
||||
<p>
|
||||
Manage efficiently your different effective vehicles Costs with Odoo.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Reporting" parent="menu_root" id="menu_fleet_reporting" sequence="99" groups="fleet_group_manager"/>
|
||||
<menuitem id="menu_fleet_reporting_costs"
|
||||
name="Costs"
|
||||
|
|
|
|||
|
|
@ -7,51 +7,45 @@
|
|||
<form string="Contract logs">
|
||||
<field name="company_id" invisible="1"/>
|
||||
<header>
|
||||
<button name="action_open" states="futur" type="object" string="Start Contract" class="oe_highlight" groups="fleet.fleet_group_manager"/>
|
||||
<button name="action_close" states="futur" type="object" string="Cancel" groups="fleet.fleet_group_manager"/>
|
||||
<button name="action_close" states="open,expired,futur" type="object" string="Close Contract" groups="fleet.fleet_group_manager"/>
|
||||
<button name="action_draft" states="closed" type="object" string="Reset To Draft" groups="fleet.fleet_group_manager"/>
|
||||
<field name="state" widget="statusbar" />
|
||||
<field name="state" widget="statusbar" options="{'clickable': '1'}"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<field name="active" invisible="1"/>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="text-bg-danger" invisible="active"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
<div class="oe_title">
|
||||
<h1><field name="name"/></h1>
|
||||
</div>
|
||||
<group string="Information" col="2">
|
||||
<group>
|
||||
<group col="1">
|
||||
<field name="ins_ref"/>
|
||||
<field name="cost_subtype_id"/>
|
||||
<field name="insurer_id"/>
|
||||
<field name="insurer_id" widget="many2one_avatar"/>
|
||||
<field name="service_ids" widget="many2many_tags"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="company_id" groups="base.group_multi_company" placeholder="Visible to all"/>
|
||||
</group>
|
||||
<group>
|
||||
<group col="2">
|
||||
<field name="start_date"/>
|
||||
<field name="expiration_date" attrs="{'required': [('cost_frequency', '!=', 'no')]}"/>
|
||||
<field name="user_id"/>
|
||||
<field name="expiration_date" required="cost_frequency != 'no'"/>
|
||||
<field name="user_id" widget="many2one_avatar_user"/>
|
||||
<field name="purchaser_id" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<separator string="Vehicle"/>
|
||||
<group col="2">
|
||||
<group string="Vehicle" col="2">
|
||||
<group col="1">
|
||||
<field name="vehicle_id"/>
|
||||
</group>
|
||||
<group col="2">
|
||||
<field name="purchaser_id"/>
|
||||
<field name="purchaser_id" widget="many2one_avatar"/>
|
||||
</group>
|
||||
</group>
|
||||
<separator string="Cost"/>
|
||||
<group col="2">
|
||||
<group string="Cost" col="2">
|
||||
<group>
|
||||
<field name="amount" string="Activation Cost" help="Cost that is paid only once at the creation of the contract" widget="monetary" class="w-25"/>
|
||||
<label for="cost_generated"/>
|
||||
<div class="o_row">
|
||||
<span class="w-25">
|
||||
<field name="cost_generated" attrs="{'invisible': [('cost_frequency','=','no')]}" widget="monetary"/>
|
||||
<field name="cost_generated" invisible="cost_frequency == 'no'" widget="monetary"/>
|
||||
</span>
|
||||
<field name="cost_frequency"/>
|
||||
</div>
|
||||
|
|
@ -63,40 +57,36 @@
|
|||
<separator string="Terms and Conditions"/>
|
||||
<field name="notes" nolabel="1" placeholder="Write here all other information relative to this contract" />
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids"/>
|
||||
<field name="activity_ids"/>
|
||||
<field name="message_ids"/>
|
||||
</div>
|
||||
<chatter/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id='fleet_vehicle_log_contract_view_tree' model='ir.ui.view'>
|
||||
<field name="name">fleet.vehicle.log.contract.tree</field>
|
||||
<field name="name">fleet.vehicle.log.contract.list</field>
|
||||
<field name="model">fleet.vehicle.log.contract</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Contract logs"
|
||||
<list string="Contract logs"
|
||||
decoration-warning="expires_today"
|
||||
decoration-danger="days_left==0 and not expires_today"
|
||||
decoration-danger="days_left==0 and not expires_today and not has_open_contract"
|
||||
decoration-muted="state=='closed'"
|
||||
default_order="expiration_date"
|
||||
sample="1">
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="expires_today" invisible="1"/>
|
||||
<field name="active" column_invisible="True"/>
|
||||
<field name="expires_today" column_invisible="True"/>
|
||||
<field name="name" class="fw-bold" />
|
||||
<field name="start_date" />
|
||||
<field name="expiration_date" widget="remaining_days"/>
|
||||
<field name="days_left" invisible="1"/>
|
||||
<field name="days_left" column_invisible="True"/>
|
||||
<field name="vehicle_id"/>
|
||||
<field name="insurer_id" />
|
||||
<field name="purchaser_id" widget="many2one_avatar"/>
|
||||
<field name="cost_generated" widget="monetary"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
<field name="currency_id" column_invisible="True"/>
|
||||
<field name="cost_frequency"/>
|
||||
<field name="state" widget="badge" decoration-info="state == 'open'" decoration-danger="state == 'expired'" />
|
||||
<field name="state" widget="badge" decoration-info="state == 'open'" decoration-danger="state == 'expired' and not has_open_contract" />
|
||||
<field name="activity_exception_decoration" widget="activity_exception"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -105,27 +95,16 @@
|
|||
<field name="model">fleet.vehicle.log.contract</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban class="o_kanban_mobile" sample="1">
|
||||
<field name="activity_state"/>
|
||||
<progressbar field="activity_state" colors='{"planned": "success", "today": "warning", "overdue": "danger"}'/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="oe_kanban_global_click">
|
||||
<div>
|
||||
<strong>
|
||||
<field name="vehicle_id" widget="res_partner_many2one"/>
|
||||
<span class="float-end badge text-bg-secondary">
|
||||
<field name="state"/>
|
||||
</span>
|
||||
</strong>
|
||||
</div>
|
||||
<div>
|
||||
<t t-if="luxon.DateTime.fromISO(record.expiration_date.raw_value) < luxon.DateTime.local()" t-set="expiration_class" t-value="'oe_kanban_text_red'"/>
|
||||
<span t-att-class="expiration_class"><field name="start_date"/> - <field name="expiration_date"/></span>
|
||||
</div>
|
||||
<div>
|
||||
<field name="insurer_id" widget="res_partner_many2one"/>
|
||||
</div>
|
||||
<t t-name="card">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<field name="vehicle_id" class="fw-bold" widget="res_partner_many2one"/>
|
||||
<field class="badge text-bg-secondary" name="state"/>
|
||||
</div>
|
||||
<t t-if="luxon.DateTime.fromISO(record.expiration_date.raw_value) < luxon.DateTime.local()" t-set="expiration_class" t-value="'text-danger fw-bold'"/>
|
||||
<span t-att-class="expiration_class"><field name="start_date"/> - <field name="expiration_date"/></span>
|
||||
<field name="insurer_id" widget="res_partner_many2one"/>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
|
|
@ -154,17 +133,22 @@
|
|||
<field name="insurer_id" string="Vendor" filter_domain="[('insurer_id','child_of', self)]"/>
|
||||
<filter string="In Progress" name="open" domain="[('state', '=', 'open')]"/>
|
||||
<filter string="Expired" name="expired" domain="[('state', '=', 'expired')]"/>
|
||||
<field name="activity_user_id" string="Activities of"/>
|
||||
<field name="activity_type_id" string="Activity type"/>
|
||||
<separator/>
|
||||
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
|
||||
<separator/>
|
||||
<filter invisible="1" string="My Activities" name="filter_activities_my"
|
||||
domain="[('activity_user_id', '=', uid)]"/>
|
||||
<separator invisible="1"/>
|
||||
<filter invisible="1" string="Late Activities" name="activities_overdue"
|
||||
domain="[('my_activity_date_deadline', '<', context_today().strftime('%Y-%m-%d'))]"
|
||||
help="Show all records which has next action date is before today"/>
|
||||
domain="[('my_activity_date_deadline', '<', 'today')]"
|
||||
help="Show all records whose next activity date is past"/>
|
||||
<filter invisible="1" string="Today Activities" name="activities_today"
|
||||
domain="[('my_activity_date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/>
|
||||
domain="[('my_activity_date_deadline', '=', 'today')]"/>
|
||||
<filter invisible="1" string="Future Activities" name="activities_upcoming_all"
|
||||
domain="[('my_activity_date_deadline', '>', context_today().strftime('%Y-%m-%d'))]"/>
|
||||
<group expand="0" string="Group By">
|
||||
domain="[('my_activity_date_deadline', '>', 'today')]"/>
|
||||
<group>
|
||||
<filter string="Vehicle" name="vehicle" context="{'group_by': 'vehicle_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
|
@ -176,13 +160,10 @@
|
|||
<field name="model">fleet.vehicle.log.contract</field>
|
||||
<field name="arch" type="xml">
|
||||
<activity string="Vehicles Contracts">
|
||||
<field name="purchaser_id"/>
|
||||
<templates>
|
||||
<div t-name="activity-box">
|
||||
<img t-att-src="activity_image('res.partner', 'avatar_128', record.purchaser_id.raw_value)" t-att-title="record.purchaser_id.value" t-att-alt="record.purchaser_id.value"/>
|
||||
<div>
|
||||
<field name="vehicle_id" display="full"/>
|
||||
</div>
|
||||
<field name="user_id" widget="many2one_avatar_user"/>
|
||||
<field name="vehicle_id" display="full" class="o_text_block"/>
|
||||
</div>
|
||||
</templates>
|
||||
</activity>
|
||||
|
|
@ -203,7 +184,7 @@
|
|||
<record id='fleet_vehicle_log_contract_action' model='ir.actions.act_window'>
|
||||
<field name="name">Contracts</field>
|
||||
<field name="res_model">fleet.vehicle.log.contract</field>
|
||||
<field name="view_mode">tree,kanban,form,graph,pivot,activity</field>
|
||||
<field name="view_mode">list,kanban,form,graph,pivot,activity</field>
|
||||
<field name="context">{'search_default_open': 1}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
|
|
@ -232,18 +213,18 @@
|
|||
<field name="state" widget="statusbar" options="{'clickable': '1'}"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="text-bg-danger" invisible="active"/>
|
||||
<group col="2">
|
||||
<group>
|
||||
<field name="description" />
|
||||
<field name="service_type_id" />
|
||||
<field name="date" />
|
||||
<field name="amount" widget="monetary"/>
|
||||
<field name="vendor_id"/>
|
||||
<field name="vendor_id" widget="many2one_avatar"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="vehicle_id"/>
|
||||
<field name="purchaser_id"/>
|
||||
<field name="purchaser_id" widget="many2one_avatar"/>
|
||||
<label for="odometer"/>
|
||||
<div class="o_row">
|
||||
<field name="odometer" class="w-25"/>
|
||||
|
|
@ -254,32 +235,28 @@
|
|||
<separator string="Notes"/>
|
||||
<field nolabel="1" name="notes" placeholder="Write here any other information related to the service completed."/>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids"/>
|
||||
<field name="activity_ids"/>
|
||||
<field name="message_ids"/>
|
||||
</div>
|
||||
<chatter/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id='fleet_vehicle_log_services_view_tree' model='ir.ui.view'>
|
||||
<field name="name">fleet.vehicle.log.services.tree</field>
|
||||
<field name="name">fleet.vehicle.log.services.list</field>
|
||||
<field name="model">fleet.vehicle.log.services</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Services Logs" multi_edit="1" expand="1">
|
||||
<list string="Services Logs" multi_edit="1" expand="1">
|
||||
<field name="date" readonly="1" />
|
||||
<field name="description" />
|
||||
<field name="service_type_id" />
|
||||
<field name="vehicle_id" readonly="1"/>
|
||||
<field name="vehicle_id" readonly="1" widget="many2one_avatar" />
|
||||
<field name="purchaser_id" readonly="1" widget="many2one_avatar"/>
|
||||
<field name="vendor_id" optional="show" />
|
||||
<field name="inv_ref" invisible="1" />
|
||||
<field name="inv_ref" column_invisible="True" />
|
||||
<field name="notes" optional="show" />
|
||||
<field name="amount" sum="Total" widget="monetary"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
<field name="currency_id" column_invisible="True"/>
|
||||
<field name="state" readonly="1" widget="badge" decoration-success="state == 'done'" decoration-warning="state == 'new'" decoration-info="state == 'running'" />
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -289,49 +266,30 @@
|
|||
<field name="arch" type="xml">
|
||||
<kanban default_group_by="state">
|
||||
<field name="currency_id"/>
|
||||
<field name="activity_ids"/>
|
||||
<field name="activity_state"/>
|
||||
<field name="purchaser_id"/>
|
||||
<field name="vendor_id"/>
|
||||
<field name="amount"/>
|
||||
<progressbar field="activity_state" colors='{"planned": "success", "today": "warning", "overdue": "danger"}'/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="oe_kanban_global_click container" class="o_kanban_record_has_image_fill">
|
||||
<div class="oe_kanban_details">
|
||||
<div class="o_kanban_record_top">
|
||||
<img t-att-src="kanban_image('fleet.vehicle', 'image_128', record.vehicle_id.raw_value)" t-att-alt="record.vehicle_id.value" class="o_image_24_cover float-start"/>
|
||||
<div class="o_kanban_record_headings ps-2 pe-2">
|
||||
<div class="text-truncate o_kanban_record_title">
|
||||
<strong>
|
||||
<field name="vehicle_id"/>
|
||||
<span t-attf-class="float-end badge #{['todo', 'running'].indexOf(record.state.raw_value) > -1 ? 'text-bg-secondary' : ['cancelled'].indexOf(record.state.raw_value) > -1 ? 'text-bg-danger' : 'text-bg-success'}">
|
||||
<field name="state"/>
|
||||
</span>
|
||||
</strong>
|
||||
</div>
|
||||
<div class="text-truncate">
|
||||
<em><field name="service_type_id"/></em>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<t t-name="card">
|
||||
<div class="flex-row">
|
||||
<field name="vehicle_id" widget="image" options="{'preview_image': 'image_128'}" class="float-start col-2 pe-2"/>
|
||||
<div class="col-10 pe-2 text-truncate">
|
||||
<field class="fw-bolder" name="vehicle_id"/>
|
||||
<span t-attf-class="float-end badge #{['todo', 'running'].indexOf(record.state.raw_value) > -1 ? 'text-bg-secondary' : ['cancelled'].indexOf(record.state.raw_value) > -1 ? 'text-bg-danger' : 'text-bg-success'}">
|
||||
<field name="state"/>
|
||||
</span>
|
||||
<div class="text-truncate">
|
||||
<field name="purchaser_id"/>
|
||||
<span class="float-end"><field name="date"/></span>
|
||||
</div>
|
||||
<div class="text-truncate">
|
||||
<field name="vendor_id"/>
|
||||
</div>
|
||||
<div class="o_kanban_record_bottom">
|
||||
<div class="oe_kanban_bottom_left">
|
||||
<field name="amount" widget="monetary" options="{'currency_field': 'currency_id'}"/>
|
||||
</div>
|
||||
<div class="oe_kanban_bottom_right">
|
||||
<field name="activity_ids" widget="kanban_activity"/>
|
||||
</div>
|
||||
<em><field name="service_type_id"/></em>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-truncate">
|
||||
<field name="purchaser_id"/>
|
||||
<field class="float-end" name="date"/>
|
||||
</div>
|
||||
<field class="text-truncate" name="vendor_id"/>
|
||||
<footer class="pt-0">
|
||||
<field name="amount" widget="monetary" options="{'currency_field': 'currency_id'}"/>
|
||||
<field name="activity_ids" widget="kanban_activity" class="ms-auto"/>
|
||||
</footer>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
|
|
@ -357,11 +315,9 @@
|
|||
<templates>
|
||||
<div t-name="activity-box">
|
||||
<img t-att-src="activity_image('fleet.vehicle', 'image_128', record.vehicle_id.raw_value)" role="img" t-att-title="record.vehicle_id.value" t-att-alt="record.vehicle_id.value"/>
|
||||
<div>
|
||||
<field name="vehicle_id"/>
|
||||
<t t-if="record.description.raw_value">
|
||||
: <field name="description"/>
|
||||
</t>
|
||||
<div class="ms-2">
|
||||
<field name="vehicle_id" class="o_text_block"/>
|
||||
<field t-if="record.description.raw_value" name="description" muted="1" class="o_text_block"/>
|
||||
</div>
|
||||
</div>
|
||||
</templates>
|
||||
|
|
@ -389,11 +345,14 @@
|
|||
<search string="Services Logs" >
|
||||
<field name="vehicle_id"/>
|
||||
<field name="service_type_id"/>
|
||||
<field name="description"/>
|
||||
<separator/>
|
||||
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
|
||||
<group expand="1" string="Group By">
|
||||
<group>
|
||||
<filter string="Service Type" name="groupby_service_type_id" context="{'group_by': 'service_type_id'}"/>
|
||||
<filter string="Fleet Manager" name="groupby_manager_id" context="{'group_by': 'manager_id'}"/>
|
||||
<filter string="Model" name="groupby_model_id" context="{'group_by': 'model_id'}"/>
|
||||
<filter string="Manufacturer" name="groupby_brand_id" context="{'group_by': 'brand_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
|
@ -402,7 +361,7 @@
|
|||
<record id='fleet_vehicle_log_services_action' model='ir.actions.act_window'>
|
||||
<field name="name">Services</field>
|
||||
<field name="res_model">fleet.vehicle.log.services</field>
|
||||
<field name="view_mode">tree,kanban,form,graph,pivot,activity</field>
|
||||
<field name="view_mode">list,kanban,form,graph,pivot,activity</field>
|
||||
<field name="context">{'search_default_groupby_service_type_id': 1}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
|
|
|
|||
|
|
@ -6,11 +6,18 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Model">
|
||||
<sheet>
|
||||
<widget name="web_ribbon" text="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<widget name="web_ribbon" text="Archived" bg_color="text-bg-danger" invisible="active"/>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button name="action_model_vehicle" type="object" icon="fa-car" class="oe_stat_button"
|
||||
attrs="{'invisible': [('vehicle_count', '=', 0)]}">
|
||||
<field name="vehicle_count" widget="statinfo" string="Vehicles"/>
|
||||
<button name="action_model_vehicle" type="object" icon="fa-car" class="oe_stat_button">
|
||||
<field
|
||||
name="vehicle_count"
|
||||
widget="statinfo"
|
||||
string="Vehicles"
|
||||
invisible="not vehicle_count"/>
|
||||
<div class="o_stat_info" invisible="vehicle_count">
|
||||
<span class="o_stat_value">New</span>
|
||||
<span class="o_stat_text">Vehicle</span>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
<field name="image_128" widget='image' class="oe_avatar"/>
|
||||
|
|
@ -34,57 +41,54 @@
|
|||
<notebook>
|
||||
<page string="Information" name="information">
|
||||
<group>
|
||||
<group string="Model" attrs="{'invisible': [('vehicle_type', '!=', 'car')]}">
|
||||
<group string="Model" invisible="vehicle_type != 'car'">
|
||||
<field name="model_year"/>
|
||||
<field name="seats"/>
|
||||
<field name="doors"/>
|
||||
<field name="color"/>
|
||||
<field name="model_year"/>
|
||||
<field name="trailer_hook"/>
|
||||
</group>
|
||||
<group id="vehicle_information" string="Vehicle Information" attrs="{'invisible': [('vehicle_type', '!=', 'bike')]}">
|
||||
<group id="vehicle_information" string="Vehicle Information" invisible="vehicle_type != 'bike'">
|
||||
<field name="electric_assistance"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="Engine" attrs="{'invisible': [('vehicle_type', '!=', 'car')]}">
|
||||
<group>
|
||||
<group string="Engine" invisible="vehicle_type != 'car'" name="group_engine">
|
||||
<field name="default_fuel_type" required="1"/>
|
||||
<label for="default_co2"/>
|
||||
<div class="o_row" name="default_co2">
|
||||
<field name="default_co2"/><span>g/km</span>
|
||||
</div>
|
||||
<field name="co2_standard"/>
|
||||
<field name="transmission"/>
|
||||
</group>
|
||||
<group>
|
||||
<label for="power"/>
|
||||
<div class="o_row">
|
||||
<field name="power"/><span>kW</span>
|
||||
<field name="drive_type"/>
|
||||
<label for="power" invisible="power_unit != 'power'"/>
|
||||
<div class="o_row" invisible="power_unit != 'power'">
|
||||
<field name="power"/>
|
||||
<field name="power_unit"/>
|
||||
</div>
|
||||
<field name="horsepower"/>
|
||||
<field name="horsepower_tax"/>
|
||||
<label for="vehicle_range"/>
|
||||
<div class="o_row">
|
||||
<field name="vehicle_range"/>
|
||||
<field name="range_unit"/>
|
||||
</div>
|
||||
<label for="default_co2"/>
|
||||
<div class="o_row">
|
||||
<field name="default_co2"/>
|
||||
<field name="co2_emission_unit"/>
|
||||
</div>
|
||||
<field name="co2_standard" placeholder="eg. WLTP, Euro 6, or EPA, ..."/>
|
||||
<label for="horsepower" invisible="power_unit != 'horsepower'"/>
|
||||
<div class="o_row" invisible="power_unit != 'horsepower'">
|
||||
<field name="horsepower"/>
|
||||
<field name="power_unit"/>
|
||||
</div>
|
||||
<field name="horsepower_tax" invisible="power_unit != 'horsepower'"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Vendors" name="vendors">
|
||||
<field name="vendors">
|
||||
<kanban quick_create="false" create="true">
|
||||
<field name="name"/>
|
||||
<field name="phone"/>
|
||||
<field name="email"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div style="position: relative" class="oe_kanban_global_click">
|
||||
<div>
|
||||
<div class="o_kanban_record_title">
|
||||
<field name="name"/>
|
||||
<div class="o_kanban_details float-end">
|
||||
<span class="text-muted">
|
||||
<t t-if="record.phone.raw_value"><field name="phone"/><br/></t>
|
||||
<t t-if="record.email.raw_value"><field name="email"/></t>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<t t-name="card" class="flex-row fw-bold">
|
||||
<field name="name"/>
|
||||
<div class="text-muted ms-auto">
|
||||
<t t-if="record.phone.raw_value"><field name="phone"/><br/></t>
|
||||
<t t-if="record.email.raw_value"><field name="email"/></t>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
|
|
@ -93,22 +97,23 @@
|
|||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
<chatter/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id='fleet_vehicle_model_view_tree' model='ir.ui.view'>
|
||||
<field name="name">fleet.vehicle.model.tree</field>
|
||||
<field name="name">fleet.vehicle.model.list</field>
|
||||
<field name="model">fleet.vehicle.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Models">
|
||||
<list string="Models" multi_edit="1">
|
||||
<field name="brand_id" />
|
||||
<field name="name" />
|
||||
<field name="vehicle_count" string="Vehicles"/>
|
||||
<field name="category_id" optional="show"/>
|
||||
<field name="vehicle_type" optional="show"/>
|
||||
<field name="default_co2" optional="hide"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -118,11 +123,9 @@
|
|||
<field name="arch" type="xml">
|
||||
<kanban string="Models">
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_global_click oe_kanban_details">
|
||||
<div><strong><field name="name"/></strong></div>
|
||||
<div><field name="brand_id"/></div>
|
||||
</div>
|
||||
<t t-name="card">
|
||||
<field class="fw-bold" name="name"/>
|
||||
<field name="brand_id"/>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
|
|
@ -134,10 +137,15 @@
|
|||
<field name="model">fleet.vehicle.model</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Vehicles costs" >
|
||||
<field name="brand_id" />
|
||||
<group expand="1" string="Group By">
|
||||
<filter name="groupby_brand" context="{'group_by' : 'brand_id'}" string="Contains Vehicles"/>
|
||||
<field name="name" string="Model" />
|
||||
<field name="brand_id"/>
|
||||
<filter string="Contains Vehicle" name="contains_vehicle" domain="[('vehicle_count', '!=', 0)]"/>
|
||||
<group>
|
||||
<filter name="groupby_brand" context="{'group_by' : 'brand_id'}" string="Manufacturers"/>
|
||||
<filter name="groupby_category" context="{'group_by' : 'category_id'}" string="Category"/>
|
||||
<filter name="groupby_vehicle_type" context="{'group_by' : 'vehicle_type'}" string="Vehicle Type"/>
|
||||
</group>
|
||||
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
@ -145,7 +153,7 @@
|
|||
<record id='fleet_vehicle_model_action' model='ir.actions.act_window'>
|
||||
<field name="name">Models</field>
|
||||
<field name="res_model">fleet.vehicle.model</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="context">{"search_default_groupby_brand" : True,}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
|
|
@ -156,17 +164,17 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Fleet" id="menu_root" sequence="220" groups="fleet_group_user" web_icon="fleet,static/description/icon.svg"/>
|
||||
<menuitem name="Fleet" id="menu_root" sequence="220" groups="fleet_group_user" web_icon="fleet,static/description/icon.png"/>
|
||||
<menuitem name="Configuration" parent="menu_root" id="fleet_configuration" sequence="100" groups="fleet_group_manager"/>
|
||||
|
||||
<record id='fleet_vehicle_model_brand_view_tree' model='ir.ui.view'>
|
||||
<field name="name">fleet.vehicle.model.brand.tree</field>
|
||||
<field name="name">fleet.vehicle.model.brand.list</field>
|
||||
<field name="model">fleet.vehicle.model.brand</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Model Make">
|
||||
<list string="Model Make">
|
||||
<field name="name" />
|
||||
<field name="model_count" string="Models"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -178,17 +186,15 @@
|
|||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button name="action_brand_model" type="object" icon="fa-car" class="oe_stat_button"
|
||||
attrs="{'invisible': [('model_count', '=', 0)]}">
|
||||
invisible="model_count == 0">
|
||||
<field name="model_count" widget="statinfo" string="Models"/>
|
||||
</button>
|
||||
</div>
|
||||
<group>
|
||||
<div>
|
||||
<field name="image_128" widget="image" class="oe_avatar"/>
|
||||
<h1>
|
||||
<field name="name"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="image_128" widget="image" class="oe_avatar float-start"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
|
|
@ -199,34 +205,27 @@
|
|||
<field name="name">fleet.vehicle.model.brandkanban</field>
|
||||
<field name="model">fleet.vehicle.model.brand</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban default_order="name" action="action_brand_model" type="object">
|
||||
<field name="id"/>
|
||||
<field name="name" />
|
||||
<kanban action="action_brand_model" type="object" default_order="name">
|
||||
<field name="active"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_vignette oe_semantic_html_override oe_kanban_global_click">
|
||||
<div class="o_dropdown_kanban dropdown">
|
||||
<a class="dropdown-toggle o-no-caret btn" role="button" data-bs-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
|
||||
<span class="fa fa-ellipsis-v"/>
|
||||
</a>
|
||||
<div class="dropdown-menu" role="menu">
|
||||
<a role="menuitem" type="open" class="dropdown-item">Configuration</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_kanban_image">
|
||||
<img alt="img" t-att-src="kanban_image('fleet.vehicle.model.brand', 'image_128', record.id.raw_value)" class="o_image_64_max" height="52"/>
|
||||
</div>
|
||||
<div class="oe_kanban_details">
|
||||
<h4 class="oe_partner_heading">
|
||||
<a type="open" class="o_kanban_record_title">
|
||||
<field name="name"/>
|
||||
</a>
|
||||
</h4>
|
||||
<div>
|
||||
<field name="model_count"/> MODELS
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<t t-name="menu">
|
||||
<a role="menuitem" type="open" class="dropdown-item">Configuration</a>
|
||||
<a role="menuitem" type="object" name="action_archive" class="dropdown-item" t-if="record.active.raw_value">Archive</a>
|
||||
<a role="menuitem" type="object" name="action_unarchive" class="dropdown-item" t-if="!record.active.raw_value">Restore</a>
|
||||
<a role="menuitem" t-if="widget.deletable" type="delete" class="dropdown-item">Delete</a>
|
||||
</t>
|
||||
<t t-name="card" class="flex-row p-1">
|
||||
<aside>
|
||||
<a type="object" name="action_open_brand_form">
|
||||
<field name="image_128" widget="image" options="{'img_class': 'object-fit-contain'}"/>
|
||||
</a>
|
||||
</aside>
|
||||
<main class="ms-2 mt-1">
|
||||
<field class="fw-bold fs-5" name="name"/>
|
||||
<span class="mt-2 text-black">
|
||||
<field name="model_count"/> MODELS
|
||||
</span>
|
||||
</main>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
|
|
@ -241,6 +240,8 @@
|
|||
<field name="name"/>
|
||||
<filter string="With Models" name="with_models"
|
||||
domain="[('model_count', '>', 0)]"/>
|
||||
<separator/>
|
||||
<filter string="Archived" name="active" domain="[('active','=',False)]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
@ -248,7 +249,8 @@
|
|||
<record id='fleet_vehicle_model_brand_action' model='ir.actions.act_window'>
|
||||
<field name="name">Manufacturers</field>
|
||||
<field name="res_model">fleet.vehicle.model.brand</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="view_mode">kanban,list,form</field>
|
||||
<field name="context">{'search_default_with_models': 1}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create a new manufacturer
|
||||
|
|
@ -260,22 +262,25 @@
|
|||
<record id='fleet_vehicle_model_category_action' model='ir.actions.act_window'>
|
||||
<field name="name">Categories</field>
|
||||
<field name="res_model">fleet.vehicle.model.category</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_mode">list</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create a new category
|
||||
</p>
|
||||
<p>
|
||||
Categories will help you manage your fleet more efficiently and arrange your vehicles.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="fleet_vehicle_model_category_view_tree" model="ir.ui.view">
|
||||
<field name="name">fleet.vehicle.model.category.view.tree</field>
|
||||
<field name="name">fleet.vehicle.model.category.view.list</field>
|
||||
<field name="model">fleet.vehicle.model.category</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Model Category" editable="bottom" default_order="sequence, id">
|
||||
<list string="Model Category" editable="bottom">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="fleet_vehicle_odometer_report_view_search" model="ir.ui.view">
|
||||
<field name="name">fleet.vehicle.odometer.report.view.search</field>
|
||||
<field name="model">fleet.vehicle.odometer.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<filter string="Date" name="groupby_date" context="{'group_by': 'recorded_date:month'}"/>
|
||||
<filter string="Vehicle" name="groupby_vehicle" context="{'group_by': 'vehicle_id'}"/>
|
||||
<filter string="Category" name="groupby_category" context="{'group_by': 'category_id'}"/>
|
||||
<filter string="Fuel Type" name="groupby_fuel_type" context="{'group_by': 'fuel_type'}"/>
|
||||
<filter string="Model" name="groupby_model" context="{'group_by': 'model_id'}"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="fleet_vehicle_odometer_report_view_graph" model="ir.ui.view">
|
||||
<field name="name">fleet.vehicle.odometer.report.view.graph</field>
|
||||
<field name="model">fleet.vehicle.odometer.report</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Vehicle Odometer Timeline" stacked="0" type="line" sample="1" disable_linking="1">
|
||||
<field name="mileage_delta" type="measure"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="fleet_vehicle_odometer_reporting_action" model="ir.actions.act_window">
|
||||
<field name="name">Odometer Analysis</field>
|
||||
<field name="res_model">fleet.vehicle.odometer.report</field>
|
||||
<field name="view_mode">graph</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_empty_folder">
|
||||
No data for odometer analysis
|
||||
</p>
|
||||
<p>
|
||||
Manage efficiently your vehicle Odometers with Odoo.
|
||||
</p>
|
||||
</field>
|
||||
<field name="domain">[('vehicle_id.active', '=', True)]</field>
|
||||
<field name="context">{'search_default_groupby_date': 1, 'search_default_groupby_category': 1}</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
id="menu_fleet_odometer_reporting_odometer"
|
||||
name="Odometers"
|
||||
parent="menu_fleet_reporting"
|
||||
action="fleet_vehicle_odometer_reporting_action"
|
||||
sequence="2"
|
||||
groups="fleet_group_manager"
|
||||
/>
|
||||
</odoo>
|
||||
|
|
@ -5,14 +5,14 @@
|
|||
<field name="name">fleet.vehicle.form</field>
|
||||
<field name="model">fleet.vehicle</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Vehicle" js_class="fleet_form" class="o_fleet_form">
|
||||
<form string="Vehicle" js_class="fleet_form">
|
||||
<field name="service_activity" invisible="1"/>
|
||||
<header>
|
||||
<button string="Apply New Driver"
|
||||
class="btn btn-primary"
|
||||
type="object"
|
||||
name="action_accept_driver_change"
|
||||
attrs="{'invisible': [('future_driver_id', '=', False)]}"/>
|
||||
invisible="not future_driver_id"/>
|
||||
<field name="state_id" widget="statusbar" options="{'clickable': '1'}"/>
|
||||
</header>
|
||||
<sheet>
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
class="oe_stat_button"
|
||||
icon="fa-wrench"
|
||||
context="{'xml_id':'fleet_vehicle_log_services_action', 'search_default_inactive': not active}"
|
||||
attrs="{'invisible': [('service_activity', '!=', 'none')]}"
|
||||
invisible="service_activity != 'none'"
|
||||
help="show the services logs for this vehicle">
|
||||
<field name="service_count" widget="statinfo" string="Services"/>
|
||||
</button>
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
class="oe_stat_button text-danger"
|
||||
icon="fa-wrench"
|
||||
context="{'xml_id':'fleet_vehicle_log_services_action', 'search_default_inactive': not active}"
|
||||
attrs="{'invisible': [('service_activity', '!=', 'overdue')]}"
|
||||
invisible="service_activity != 'overdue'"
|
||||
help="show the services logs for this vehicle">
|
||||
<field name="service_count" widget="statinfo" string="Services"/>
|
||||
</button>
|
||||
|
|
@ -57,7 +57,7 @@
|
|||
class="oe_stat_button text-warning"
|
||||
icon="fa-wrench"
|
||||
context="{'xml_id':'fleet_vehicle_log_services_action', 'search_default_inactive': not active}"
|
||||
attrs="{'invisible': [('service_activity', '!=', 'today')]}"
|
||||
invisible="service_activity != 'today'"
|
||||
help="show the services logs for this vehicle">
|
||||
<field name="service_count" widget="statinfo" string="Services"/>
|
||||
</button>
|
||||
|
|
@ -67,16 +67,16 @@
|
|||
icon="fa-tachometer"
|
||||
context="{'xml_id':'fleet_vehicle_odometer_action'}"
|
||||
help="show the odometer logs for this vehicle"
|
||||
attrs="{'invisible': [('vehicle_type', '!=', 'car')]}">
|
||||
invisible="vehicle_type != 'car'">
|
||||
<field name="odometer_count" widget="statinfo" string="Odometer"/>
|
||||
</button>
|
||||
</div>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="text-bg-danger" invisible="active"/>
|
||||
<field name="image_128" widget='image' class="oe_avatar"/>
|
||||
<div class="oe_title">
|
||||
<label for="model_id"/>
|
||||
<h1>
|
||||
<field name="model_id" placeholder="e.g. Model S"/>
|
||||
<field name="model_id" placeholder="e.g. Model S" class="w-100"/>
|
||||
</h1>
|
||||
<label for="license_plate"/>
|
||||
<h2>
|
||||
|
|
@ -89,115 +89,131 @@
|
|||
<group string="Driver">
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="vehicle_type" invisible="1"/>
|
||||
<field name="driver_id" domain="['|', ('company_id', '=', False ), ('company_id', '=', company_id)]"/>
|
||||
<field name="future_driver_id"/>
|
||||
<field name="plan_to_change_car" groups="fleet.fleet_group_manager" attrs="{'invisible': [('vehicle_type', '!=', 'car')]}"/>
|
||||
<field name="plan_to_change_bike" groups="fleet.fleet_group_manager" attrs="{'invisible': [('vehicle_type', '!=', 'bike')]}"/>
|
||||
<field name="driver_id" domain="['|', ('company_id', '=', False ), ('company_id', '=', company_id)]" widget="many2one_avatar"/>
|
||||
<field name="future_driver_id" widget="many2one_avatar"/>
|
||||
<field name="next_assignation_date"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="company_id" groups="base.group_multi_company" placeholder="Visible to all"/>
|
||||
</group>
|
||||
<group string="Vehicle">
|
||||
<field name="category_id"/>
|
||||
<field name="acquisition_date" attrs="{'invisible': [('vehicle_type', '!=', 'car')]}"/>
|
||||
<field name="write_off_date" attrs="{'invisible': [('vehicle_type', '!=', 'car')]}"/>
|
||||
<field name="order_date"/>
|
||||
<field name="acquisition_date" invisible="vehicle_type != 'car'"/>
|
||||
<field name="write_off_date" invisible="vehicle_type != 'car'"/>
|
||||
<field name="vin_sn"/>
|
||||
<label for="odometer" attrs="{'invisible': [('vehicle_type', '!=', 'car')]}"/>
|
||||
<div class="o_row" attrs="{'invisible': [('vehicle_type', '!=', 'car')]}">
|
||||
<field name="odometer"/>
|
||||
<field name="odometer_unit"/>
|
||||
<label for="odometer" invisible="vehicle_type != 'car'"/>
|
||||
<div class="o_row o_fleet_narrow_field" invisible="vehicle_type != 'car'">
|
||||
<field class="o_fleet_odometer_value" name="odometer"/>
|
||||
<field class="o_fleet_odometer_unit" name="odometer_unit"/>
|
||||
<button name="action_open_odometer_report" type="object" class="fa fa-line-chart me-1" title="Odometer Report"/>
|
||||
</div>
|
||||
<field name="manager_id" domain="[('share', '=', False)]"/>
|
||||
<field name="manager_id" widget="many2one_avatar_user"/>
|
||||
<field name="location"/>
|
||||
<label string="Make Vehicle Available" for="plan_to_change_car" class="text-nowrap" invisible="vehicle_type != 'car'"/>
|
||||
<field name="plan_to_change_car" groups="fleet.fleet_group_user" invisible="vehicle_type != 'car'" nolabel="1"
|
||||
help="This will allow this vehicle to be selectable for the Salary Configurator" class="text-nowrap"/>
|
||||
<label string="Make Vehicle Available" for="plan_to_change_bike" class="text-nowrap" invisible="vehicle_type != 'bike'"/>
|
||||
<field name="plan_to_change_bike" groups="fleet.fleet_group_user" invisible="vehicle_type != 'bike'" nolabel="1"
|
||||
help="This will allow this vehicle to be selectable for the Salary Configurator"/>
|
||||
</group>
|
||||
</group>
|
||||
<field name="vehicle_properties" columns="2"/>
|
||||
<notebook>
|
||||
<page string="Tax Info">
|
||||
<page string="Tax Info" name="page_tax_info">
|
||||
<group>
|
||||
<group string="Fiscality">
|
||||
<field name="horsepower_tax" widget="monetary"/>
|
||||
<group col="1" name="fiscality_group" string="Fiscality">
|
||||
<group col="1" name="fiscality_first_group">
|
||||
<field name="horsepower_tax" widget="monetary"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="Contract">
|
||||
<field name="first_contract_date"/>
|
||||
<field name="contract_date_start"/>
|
||||
<field name="car_value" widget="monetary"/>
|
||||
<field name="net_car_value" widget="monetary"/>
|
||||
<field name="residual_value" widget="monetary"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Model">
|
||||
<page string="Model" name="page_model">
|
||||
<group>
|
||||
<group string="Model">
|
||||
<group string="Model" name="group_model">
|
||||
<field name="model_year"/>
|
||||
<field name="transmission"/>
|
||||
<field name="seats" invisible="vehicle_type != 'car'"/>
|
||||
<field name="doors" invisible="vehicle_type != 'car'"/>
|
||||
<field name="color"/>
|
||||
<field name="seats" attrs="{'invisible': [('vehicle_type', '!=', 'car')]}"/>
|
||||
<field name="doors" attrs="{'invisible': [('vehicle_type', '!=', 'car')]}"/>
|
||||
<field name="trailer_hook" attrs="{'invisible': [('vehicle_type', '!=', 'car')]}"/>
|
||||
<field name="frame_type" attrs="{'invisible': [('vehicle_type', '!=', 'bike')]}"/>
|
||||
<label for="frame_size" attrs="{'invisible': [('vehicle_type', '!=', 'bike')]}"/>
|
||||
<div class="o_row" attrs="{'invisible': [('vehicle_type', '!=', 'bike')]}">
|
||||
<field name="trailer_hook" invisible="vehicle_type != 'car'"/>
|
||||
<field name="frame_type" invisible="vehicle_type != 'bike'"/>
|
||||
<label for="frame_size" invisible="vehicle_type != 'bike'"/>
|
||||
<div class="o_row" invisible="vehicle_type != 'bike'">
|
||||
<field name="frame_size" /><span>cm</span>
|
||||
</div>
|
||||
<field name="electric_assistance" attrs="{'invisible': [('vehicle_type', '!=', 'bike')]}"/>
|
||||
<field name="electric_assistance" invisible="vehicle_type != 'bike'"/>
|
||||
</group>
|
||||
<group string="Engine" attrs="{'invisible': [('vehicle_type', '!=', 'car')]}">
|
||||
<field name="horsepower"/>
|
||||
<label for="power"/>
|
||||
<div class="o_row">
|
||||
<field name="power"/><span>kW</span>
|
||||
</div>
|
||||
<group string="Engine" invisible="vehicle_type != 'car'">
|
||||
<field name="fuel_type"/>
|
||||
<label for="co2"/>
|
||||
<div class="o_row" name="co2">
|
||||
<field name="co2"/><span>g/km</span>
|
||||
<field name="transmission" invisible="vehicle_type != 'car'"/>
|
||||
<label for="power" invisible="power_unit != 'power'"/>
|
||||
<div class="o_row" invisible="power_unit != 'power'">
|
||||
<field name="power"/>
|
||||
<field name="power_unit"/>
|
||||
</div>
|
||||
<field name="co2_standard"/>
|
||||
<label for="horsepower" invisible="power_unit != 'horsepower'"/>
|
||||
<div class="o_row" invisible="power_unit != 'horsepower'">
|
||||
<field name="horsepower"/>
|
||||
<field name="power_unit"/>
|
||||
</div>
|
||||
<label for="vehicle_range"/>
|
||||
<div class="o_row">
|
||||
<field name="vehicle_range"/>
|
||||
<field name="range_unit"/>
|
||||
</div>
|
||||
<label for="co2"/>
|
||||
<div class="o_row">
|
||||
<field name="co2"/>
|
||||
<field name="co2_emission_unit"/>
|
||||
</div>
|
||||
<field name="co2_standard" placeholder="eg. WLTP, Euro 6, or EPA, ..."/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Note">
|
||||
<page string="Note" name="note">
|
||||
<field name="description" nolabel="1" placeholder="Write here any other information related to this vehicle" />
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids"/>
|
||||
<field name="activity_ids"/>
|
||||
<field name="message_ids"/>
|
||||
</div>
|
||||
<chatter/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id='fleet_vehicle_view_tree' model='ir.ui.view'>
|
||||
<field name="name">fleet.vehicle.tree</field>
|
||||
<field name="name">fleet.vehicle.list</field>
|
||||
<field name="model">fleet.vehicle</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Vehicle"
|
||||
<list string="Vehicle"
|
||||
decoration-warning="contract_renewal_due_soon and not contract_renewal_overdue"
|
||||
decoration-danger="contract_renewal_overdue"
|
||||
multi_edit="1"
|
||||
sample="1">
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="active" column_invisible="True"/>
|
||||
<field name="license_plate" readonly="1"/>
|
||||
<field name="model_id" readonly="1"/>
|
||||
<field name="model_id" widget="many2one_avatar" readonly="1"/>
|
||||
<field name="category_id"/>
|
||||
<field name="manager_id" optional="hide"/>
|
||||
<field name="manager_id" optional="hide" widget="many2one_avatar_user"/>
|
||||
<field name="driver_id" widget="many2one_avatar" readonly="1" optional="show"/>
|
||||
<field name="future_driver_id" widget="many2one_avatar" readonly="1" optional="show"/>
|
||||
<field name="log_drivers" invisible="1"/>
|
||||
<field name="log_drivers" column_invisible="True"/>
|
||||
<field name="vin_sn" readonly="1" optional="hide"/>
|
||||
<field name="co2" string="CO2 Emissions g/km" optional="hide" readonly="1"/>
|
||||
<field name="co2" string="CO2 Emissions" optional="hide" readonly="1"/>
|
||||
<field name="acquisition_date" readonly="1"/>
|
||||
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}" readonly="1"/>
|
||||
<field name="state_id" widget="badge" readonly="1" optional="hide"/>
|
||||
<field name="contract_renewal_due_soon" invisible="1"/>
|
||||
<field name="contract_renewal_overdue" invisible="1"/>
|
||||
<field name="contract_renewal_total" invisible="1"/>
|
||||
<field name="vehicle_properties"/>
|
||||
<field name="contract_state" widget="badge" decoration-info="contract_state == 'open'"
|
||||
decoration-danger="contract_state == 'expired'" optional="hide"/>
|
||||
<field name="activity_exception_decoration" widget="activity_exception"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -217,7 +233,7 @@
|
|||
<field string="License Plate" name="license_plate"/>
|
||||
<field name="tag_ids"/>
|
||||
<field string="Status" name="state_id"/>
|
||||
<field string="Current Driver" name="driver_id"/>
|
||||
<field string="Properties" name="vehicle_properties"/>
|
||||
<filter string="Available" name="available"
|
||||
domain="['&', ('future_driver_id', '=', False), '|', ('driver_id', '=', False), '|', '&', ('plan_to_change_car', '=', True), ('vehicle_type', '=', 'car'), '&', ('plan_to_change_bike', '=', True), ('vehicle_type', '=', 'bike')]"/>
|
||||
<filter string="Bikes" name="bikes" domain="[('vehicle_type', '=', 'bike')]"/>
|
||||
|
|
@ -229,87 +245,90 @@
|
|||
<separator/>
|
||||
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
|
||||
<separator/>
|
||||
<filter invisible="1" string="My Activities" name="filter_activities_my"
|
||||
domain="[('activity_user_id', '=', uid)]"/>
|
||||
<separator invisible="1"/>
|
||||
<filter invisible="1" string="Late Activities" name="activities_overdue"
|
||||
domain="[('my_activity_date_deadline', '<', context_today().strftime('%Y-%m-%d'))]"
|
||||
help="Show all records which has next action date is before today"/>
|
||||
domain="[('my_activity_date_deadline', '<', 'today')]"
|
||||
help="Show all records whose next activity date is past"/>
|
||||
<filter invisible="1" string="Today Activities" name="activities_today"
|
||||
domain="[('my_activity_date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/>
|
||||
domain="[('my_activity_date_deadline', '=', 'today')]"/>
|
||||
<filter invisible="1" string="Future Activities" name="activities_upcoming_all"
|
||||
domain="[('my_activity_date_deadline', '>', context_today().strftime('%Y-%m-%d'))]"/>
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Status" name="groupby_status" context="{'group_by': 'state_id'}"/>
|
||||
domain="[('my_activity_date_deadline', '>', 'today')]"/>
|
||||
<group>
|
||||
<filter string="Model" name="groupby_model" context="{'group_by': 'model_id'}"/>
|
||||
<filter string="Brand" name="groupby_make" context="{'group_by': 'brand_id'}"/>
|
||||
<filter string="Status" name="groupby_status" context="{'group_by': 'state_id'}"/>
|
||||
<filter string="Fuel Type" name="groupby_fueltype" context="{'group_by': 'fuel_type'}"/>
|
||||
<filter string="Properties" name="group_by_vehicle_properties" context="{'group_by': 'vehicle_properties'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="fleet_vehicle_view_form_quick_create" model="ir.ui.view">
|
||||
<field name="name">fleet.vehicle.form.quick.create</field>
|
||||
<field name="model">fleet.vehicle</field>
|
||||
<field name="priority">1000</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<group>
|
||||
<field name="model_id" placeholder="e.g. Model S"/>
|
||||
<field name="license_plate" placeholder="e.g. PAE 326"/>
|
||||
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id='fleet_vehicle_view_kanban' model='ir.ui.view'>
|
||||
<field name="name">fleet.vehicle.kanban</field>
|
||||
<field name="model">fleet.vehicle</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban default_group_by="state_id" sample="1">
|
||||
<field name="license_plate" />
|
||||
<field name="model_id" />
|
||||
<field name="driver_id" />
|
||||
<field name="future_driver_id" />
|
||||
<field name="location" />
|
||||
<field name="state_id" />
|
||||
<field name="id" />
|
||||
<field name="tag_ids" />
|
||||
<kanban default_group_by="state_id" sample="1" quick_create_view="fleet.fleet_vehicle_view_form_quick_create">
|
||||
<field name="contract_renewal_due_soon" />
|
||||
<field name="contract_renewal_overdue" />
|
||||
<field name="contract_renewal_name" />
|
||||
<field name="contract_renewal_total" />
|
||||
<field name="contract_count" />
|
||||
<field name="activity_ids"/>
|
||||
<field name="activity_state"/>
|
||||
<progressbar field="activity_state" colors='{"planned": "success", "today": "warning", "overdue": "danger"}'/>
|
||||
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_global_click o_kanban_record_has_image_fill">
|
||||
<div class="o_kanban_image" t-attf-style="background-image:url('#{kanban_image('fleet.vehicle', 'image_128', record.id.raw_value)}')"/>
|
||||
<div class="oe_kanban_details">
|
||||
<strong class="o_kanban_record_title">
|
||||
<t t-if="record.license_plate.raw_value"><field name="license_plate"/>:</t> <field name="model_id"/>
|
||||
</strong>
|
||||
<div class="o_kanban_tags_section">
|
||||
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
|
||||
</div>
|
||||
<ul>
|
||||
<li>
|
||||
<t t-if="record.driver_id.raw_value"><field name="driver_id"/></t>
|
||||
</li>
|
||||
<li>
|
||||
<t t-if="record.future_driver_id.raw_value">Future Driver : <field name="future_driver_id"/></t>
|
||||
</li>
|
||||
<li>
|
||||
<t t-if="record.location.raw_value"><small><i class="fa fa-map-marker" title="Location"></i> <field name="location"/></small></t>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="o_kanban_record_bottom" t-if="!selection_mode">
|
||||
<div class="oe_kanban_bottom_left">
|
||||
<a t-if="record.contract_count.raw_value>0" data-type="object"
|
||||
data-name="return_action_to_open" href="#" class="oe_kanban_action oe_kanban_action_a"
|
||||
data-context='{"xml_id":"fleet_vehicle_log_contract_action"}'>
|
||||
<field name="contract_count"/>
|
||||
Contract(s)
|
||||
<span t-if="record.contract_renewal_due_soon.raw_value and !record.contract_renewal_overdue.raw_value"
|
||||
class="fa fa-exclamation-triangle" t-att-style="'color:orange'" role="img" aria-label="Warning: renewal due soon" title="Warning: renewal due soon">
|
||||
</span>
|
||||
<span t-if="record.contract_renewal_overdue.raw_value"
|
||||
class="fa fa-exclamation-triangle" t-att-style="'color:red;'" role="img" aria-label="Attention: renewal overdue" title="Attention: renewal overdue">
|
||||
</span>
|
||||
</a>
|
||||
<field name="activity_ids" widget="kanban_activity"/>
|
||||
</div>
|
||||
</div>
|
||||
<t t-name="card" class="flex-row">
|
||||
<aside class="d-flex align-items-center me-2">
|
||||
<field name="image_128" widget="image" options="{'img_class': 'object-fit-cover'}"/>
|
||||
</aside>
|
||||
<main>
|
||||
<div>
|
||||
<t t-if="record.license_plate.raw_value">
|
||||
<field class="fw-bolder fs-5" name="license_plate"/>:
|
||||
</t>
|
||||
<field class="fw-bolder fs-5" name="model_id"/>
|
||||
</div>
|
||||
</div>
|
||||
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
|
||||
<div class="d-flex gap-1" t-if="record.driver_id.raw_value">
|
||||
<field name="driver_id" widget="many2one_avatar"/>
|
||||
<field name="driver_id" class="small pt-1 pb-1"/>
|
||||
</div>
|
||||
<div class="small">
|
||||
<t t-if="record.future_driver_id.raw_value">Future Driver : <field name="future_driver_id"/></t>
|
||||
</div>
|
||||
<t t-if="record.location.raw_value"><small><i class="fa fa-map-marker" title="Location"></i> <field name="location"/></small></t>
|
||||
<field name="vehicle_properties" widget="properties"/>
|
||||
<footer class="pt-0 mt-0" t-if="!selection_mode">
|
||||
<div class="d-flex fs-6">
|
||||
<a t-if="record.contract_count.raw_value>0" type="object"
|
||||
name="return_action_to_open" href="#" context='{"xml_id":"fleet_vehicle_log_contract_action"}'>
|
||||
<field name="contract_count"/>
|
||||
Contract(s)
|
||||
<span t-if="record.contract_renewal_due_soon.raw_value and !record.contract_renewal_overdue.raw_value"
|
||||
class="fa fa-exclamation-triangle text-warning" role="img" aria-label="Warning: renewal due soon" title="Warning: renewal due soon">
|
||||
</span>
|
||||
<span t-if="record.contract_renewal_overdue.raw_value"
|
||||
class="fa fa-exclamation-triangle text-danger" role="img" aria-label="Attention: renewal overdue" title="Attention: renewal overdue">
|
||||
</span>
|
||||
</a>
|
||||
<field name="activity_ids" widget="kanban_activity" class="ms-2"/>
|
||||
</div>
|
||||
</footer>
|
||||
</main>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
|
|
@ -325,9 +344,10 @@
|
|||
<field name="id"/>
|
||||
<templates>
|
||||
<div t-name="activity-box">
|
||||
<img t-att-src="activity_image('fleet.vehicle', 'image_128', record.id.raw_value)" role="img" t-att-title="record.id.value" t-att-alt="record.id.value"/>
|
||||
<div>
|
||||
<field name="license_plate"/> : <field name="model_id"/>
|
||||
<img class="rounded-circle" t-att-src="activity_image('fleet.vehicle', 'image_128', record.id.raw_value)" role="img" t-att-title="record.id.value" t-att-alt="record.id.value"/>
|
||||
<div class="ms-2">
|
||||
<field name="license_plate" display="full" class="o_text_block"/>
|
||||
<field name="model_id" muted="1" class="o_text_block"/>
|
||||
</div>
|
||||
</div>
|
||||
</templates>
|
||||
|
|
@ -349,11 +369,12 @@
|
|||
|
||||
<record id='fleet_vehicle_action' model='ir.actions.act_window'>
|
||||
<field name="name">Vehicles</field>
|
||||
<field name="path">fleet</field>
|
||||
<field name="res_model">fleet.vehicle</field>
|
||||
<field name="view_mode">kanban,tree,form,pivot,activity</field>
|
||||
<field name="view_mode">kanban,list,form,pivot,activity</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Ready to manage your fleet more efficiently ?
|
||||
Ready to manage your fleet more efficiently?
|
||||
</p><p>
|
||||
Let's create your first vehicle.
|
||||
</p>
|
||||
|
|
@ -387,41 +408,16 @@
|
|||
</record>
|
||||
|
||||
<record id='fleet_vehicle_odometer_view_tree' model='ir.ui.view'>
|
||||
<field name="name">fleet.vehicle.odometer.tree</field>
|
||||
<field name="name">fleet.vehicle.odometer.list</field>
|
||||
<field name="model">fleet.vehicle.odometer</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Odometer Logs" editable="top">
|
||||
<list string="Odometer Logs" editable="top">
|
||||
<field name="date" />
|
||||
<field name="vehicle_id"/>
|
||||
<field name="vehicle_id" widget="many2one_avatar"/>
|
||||
<field name="driver_id" widget="many2one_avatar"/>
|
||||
<field name="value" />
|
||||
<field name="unit" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id='fleet_vehicle_odometer_view_kanban' model='ir.ui.view'>
|
||||
<field name="name">fleet.vehicle.odometer.kanban</field>
|
||||
<field name="model">fleet.vehicle.odometer</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban class="o_kanban_mobile">
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="oe_kanban_global_click">
|
||||
<div>
|
||||
<strong>
|
||||
<field name="vehicle_id"/>
|
||||
<span class="float-end"><field name="date"/></span>
|
||||
</strong>
|
||||
</div>
|
||||
<div>
|
||||
<span><field name="driver_id"/></span>
|
||||
<span class="float-end"><field name="value"/> Km</span>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -434,8 +430,9 @@
|
|||
<field name="driver_id"/>
|
||||
<field name="value"/>
|
||||
<field name="date"/>
|
||||
<group expand="0" string="Group By">
|
||||
<group>
|
||||
<filter name="groupby_vehicle" context="{'group_by': 'vehicle_id'}" string="Vehicle"/>
|
||||
<filter name="groupby_date" context="{'group_by': 'date'}" string="Date"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
|
@ -455,7 +452,7 @@
|
|||
<record id='fleet_vehicle_odometer_action' model='ir.actions.act_window'>
|
||||
<field name="name">Odometers</field>
|
||||
<field name="res_model">fleet.vehicle.odometer</field>
|
||||
<field name="view_mode">tree,kanban,form,graph</field>
|
||||
<field name="view_mode">list,form,graph</field>
|
||||
<field name="context"></field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
|
|
@ -469,13 +466,13 @@
|
|||
<menuitem action="fleet_vehicle_odometer_action" parent="fleet_vehicles" id="fleet_vehicle_odometer_menu" groups="fleet_group_user" sequence="10"/>
|
||||
|
||||
<record id='fleet_vehicle_service_types_view_tree' model='ir.ui.view'>
|
||||
<field name="name">fleet.service.type.tree</field>
|
||||
<field name="name">fleet.service.type.list</field>
|
||||
<field name="model">fleet.service.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Service Types" editable="bottom">
|
||||
<list string="Service Types" editable="bottom">
|
||||
<field name="name" />
|
||||
<field name="category"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -485,7 +482,7 @@
|
|||
<search>
|
||||
<field name="name"/>
|
||||
<field name="category"/>
|
||||
<group expand="1" string="Group By">
|
||||
<group>
|
||||
<filter name="groupby_category" context="{'group_by' : 'category'}"/>
|
||||
</group>
|
||||
</search>
|
||||
|
|
@ -495,7 +492,8 @@
|
|||
<record id='fleet_vehicle_service_types_action' model='ir.actions.act_window'>
|
||||
<field name="name">Types</field>
|
||||
<field name="res_model">fleet.service.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="context">{"search_default_groupby_category" : True}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create a new type of service
|
||||
|
|
@ -509,20 +507,37 @@
|
|||
id="fleet_vehicle_service_types_menu" sequence="1" groups="base.group_no_one"/>
|
||||
|
||||
<record id='fleet_vehicle_state_view_tree' model='ir.ui.view'>
|
||||
<field name="name">fleet.vehicle.state.tree</field>
|
||||
<field name="name">fleet.vehicle.state.list</field>
|
||||
<field name="model">fleet.vehicle.state</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="State" editable="bottom">
|
||||
<list string="State" editable="bottom">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name" />
|
||||
</tree>
|
||||
<field name="fold"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id='fleet_vehicle_state_view_form' model='ir.ui.view'>
|
||||
<field name="name">fleet.vehicle.state.form</field>
|
||||
<field name="model">fleet.vehicle.state</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="name" />
|
||||
<field name="sequence"/>
|
||||
<field name="fold"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id='fleet_vehicle_state_action' model='ir.actions.act_window'>
|
||||
<field name="name">Status</field>
|
||||
<field name="res_model">fleet.vehicle.state</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create a new vehicle status
|
||||
|
|
@ -551,13 +566,13 @@
|
|||
</record>
|
||||
|
||||
<record id="fleet_vehicle_tag_view_view_tree" model="ir.ui.view">
|
||||
<field name="name">fleet.vehicle.tag.tree</field>
|
||||
<field name="name">fleet.vehicle.tag.list</field>
|
||||
<field name="model">fleet.vehicle.tag</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Vehicle Tags" editable="bottom">
|
||||
<list string="Vehicle Tags" editable="bottom">
|
||||
<field name="name"/>
|
||||
<field name="color" widget="color_picker"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -574,16 +589,24 @@
|
|||
<menuitem id="fleet_vehicle_tag_menu" parent="fleet_vehicles_configuration" action="fleet_vehicle_tag_action" sequence="20" groups="base.group_no_one"/>
|
||||
|
||||
<record id="fleet_vehicle_assignation_log_view_list" model="ir.ui.view">
|
||||
<field name="name">fleet.vehicle.assignation.log.view.tree</field>
|
||||
<field name="name">fleet.vehicle.assignation.log.view.list</field>
|
||||
<field name="model">fleet.vehicle.assignation.log</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Assignment Logs" editable="bottom">
|
||||
<list default_order="date_start desc, id desc" string="Assignment Logs" editable="bottom">
|
||||
<field name="vehicle_id" />
|
||||
<field name="driver_id" widget="many2one_avatar" string="Current Driver" />
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
</tree>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_fleet_vehicle_send_mail" model="ir.actions.server">
|
||||
<field name="name">Mail to Driver</field>
|
||||
<field name="model_id" ref="fleet.model_fleet_vehicle"/>
|
||||
<field name="binding_model_id" ref="fleet.model_fleet_vehicle"/>
|
||||
<field name="binding_view_types">list,kanban</field>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = records.action_send_email()</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<record id="mail_activity_type_action_config_fleet" model="ir.actions.act_window">
|
||||
<field name="name">Activity Types</field>
|
||||
<field name="res_model">mail.activity.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">list,kanban,form</field>
|
||||
<field name="domain">['|', ('res_model', '=', False), ('res_model', '=', 'fleet.vehicle.log.contract')]</field>
|
||||
<field name="context">{'default_res_model': 'fleet.vehicle.log.contract'}</field>
|
||||
</record>
|
||||
|
|
|
|||
|
|
@ -7,33 +7,26 @@
|
|||
<field name="priority" eval="90"/>
|
||||
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[hasclass('settings')]" position="inside">
|
||||
<div class="app_settings_block" data-string="Fleet" id="fleet" string="Fleet" data-key="fleet" groups="fleet.fleet_group_manager">
|
||||
<h2>Fleet Management</h2>
|
||||
<div class="row mt16 o_settings_container" id="end_contract_setting">
|
||||
<div class="col-12 col-lg-6 o_setting_box">
|
||||
<div class="o_setting_left_pane"/>
|
||||
<div class="o_setting_right_pane">
|
||||
<span class="o_form_label">End Date Contract Alert</span>
|
||||
<div class="text-muted content-group mt16">
|
||||
<span>Send an alert </span>
|
||||
<field name="delay_alert_contract" class="text-center" style="width: 10%; min-width: 4rem;" />
|
||||
<span> days before the end date</span>
|
||||
</div>
|
||||
<xpath expr="//form" position="inside">
|
||||
<app data-string="Fleet" id="fleet" string="Fleet" name="fleet" groups="fleet.fleet_group_manager">
|
||||
<block title="Fleet Management" id="end_contract_setting">
|
||||
<setting string="End Date Contract Alert">
|
||||
<div class="text-muted content-group mt16">
|
||||
<span>Send an alert </span>
|
||||
<field name="delay_alert_contract" class="text-center" style="width: 10%; min-width: 4rem;" />
|
||||
<span> days before the end date</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</setting>
|
||||
</block>
|
||||
</app>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="fleet_config_settings_action" model="ir.actions.act_window">
|
||||
<field name="name">Settings</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">res.config.settings</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">inline</field>
|
||||
<field name="context">{'module' : 'fleet', 'bin_size': False}</field>
|
||||
</record>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue