Before this commit, all the custom code for the widgets, form, list and kanban views are always in OWL and have to be migrate to the new JS framework. This commit converts all the widgets, list, kanban and form views used in the project app in OWL. Some JS tours has been adapted according to the OWL views, the project right side panel has been reviewed since it was LegacyComponent (in old component in OWL) task-2944742 Part-of: odoo/odoo#98380
132 lines
6.7 KiB
XML
132 lines
6.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<record id="project_update_view_search" model="ir.ui.view">
|
|
<field name="name">project.update.view.search</field>
|
|
<field name="model">project.update</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Search Update">
|
|
<field name="name"/>
|
|
<field name="project_id" invisible="1"/>
|
|
<filter string="My Updates" name="my_updates" domain="[('user_id', '=', uid)]"/>
|
|
<filter string="Followed Updates" name="followed_updates" domain="[('message_is_follower', '=', True)]"/>
|
|
<separator/>
|
|
<filter string="On Track" name="on_track" domain="[('status', '=', 'on_track')]"/>
|
|
<filter string="At Risk" name="at_risk" domain="[('status', '=', 'at_risk')]"/>
|
|
<filter string="Off Track" name="off_track" domain="[('status', '=', 'off_track')]"/>
|
|
<filter string="On Hold" name="on_hold" domain="[('status', '=', 'on_hold')]"/>
|
|
<separator/>
|
|
<filter name="date" string="Date" date="date"/>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_update_view_form" model="ir.ui.view">
|
|
<field name="name">project.update.view.form</field>
|
|
<field name="model">project.update</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Project Update" class="o_form_project_update" js_class="form_description_expander">
|
|
<sheet>
|
|
<div class="oe_title">
|
|
<h1>
|
|
<field name="name" class="o_text_overflow" placeholder="e.g. Monthly review"/>
|
|
</h1>
|
|
</div>
|
|
<group>
|
|
<group>
|
|
<field name="project_id" invisible="1"/>
|
|
<field name="color" invisible="1"/>
|
|
<field name="status" widget="status_with_color" options="{'color_field': 'color'}"/>
|
|
<field name="progress" widget="progressbar" options="{'editable': true}"/>
|
|
</group>
|
|
<group>
|
|
<field name="user_id" widget="many2one_avatar_user" readonly="1"/>
|
|
<field name="date"/>
|
|
</group>
|
|
</group>
|
|
<separator/>
|
|
<notebook>
|
|
<page string="Description" name="description">
|
|
<field name="description" widget="html_with_action" nolabel="1" class="o_project_update_description" options="{'resizable': false}"/>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
<div class="oe_chatter">
|
|
<field name="message_follower_ids" options="{'post_refresh':True}" groups="base.group_user"/>
|
|
<field name="activity_ids"/>
|
|
<field name="message_ids"/>
|
|
</div>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_update_view_kanban" model="ir.ui.view">
|
|
<field name="name">project.update.view.kanban</field>
|
|
<field name="model">project.update</field>
|
|
<field name="arch" type="xml">
|
|
<kanban class="o_pupdate_kanban" sample="1" js_class="project_update_kanban">
|
|
<field name="color"/>
|
|
<templates>
|
|
<t t-name="kanban-box">
|
|
<div t-attf-class="{{!selection_mode ? 'oe_kanban_color_' + record.color.raw_value : ''}} oe_kanban_global_click o_pupdate_kanban_card">
|
|
<!-- Project Update Kanban View is always ungrouped - see js_class -->
|
|
<div class="o_kanban_detail_ungrouped row">
|
|
<div class="col-sm-4 col-6 o_pupdate_name">
|
|
<b><field name="name_cropped"/></b>
|
|
<div>
|
|
<field name="user_id" widget="many2one_avatar_user"/>
|
|
<t t-esc="record.user_id.value"/>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-2 text-sm-start col-6 text-end align-end">
|
|
<field name="color" invisible="1"/>
|
|
<b><field name="status" widget="status_with_color" options="{'color_field': 'color'}"/></b>
|
|
</div>
|
|
<div class="col-sm-2 col-6">
|
|
<b><field name="progress_percentage" widget="percentage"/></b>
|
|
<div>Progress</div>
|
|
</div>
|
|
<div class="col-sm-2 col-6">
|
|
<b><field name="date"/></b>
|
|
<div>Date</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_update_view_tree" model="ir.ui.view">
|
|
<field name="name">project.update.view.tree</field>
|
|
<field name="model">project.update</field>
|
|
<field name="arch" type="xml">
|
|
<tree sample="1" js_class="project_update_list">
|
|
<field name="name"/>
|
|
<field name="user_id" widget="many2one_avatar_user" class="fw-bold" optional="show"/>
|
|
<field name="date" optional="show"/>
|
|
<field name="progress_percentage" string="Progress" widget="percentage" optional="show"/>
|
|
<field name="color" invisible="1"/>
|
|
<field name="status" widget="status_with_color" options="{'color_field': 'color'}"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_update_all_action" model="ir.actions.act_window">
|
|
<field name="name">Project Updates</field>
|
|
<field name="type">ir.actions.act_window</field>
|
|
<field name="res_model">project.update</field>
|
|
<field name="view_mode">kanban,tree,form</field>
|
|
<field name="domain">[('project_id', '=', active_id)]</field>
|
|
<field name="search_view_id" ref="project_update_view_search"/>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_smiling_face">
|
|
No updates found. Let's create one!
|
|
</p><p>
|
|
Get a snapshot of the status of your project and share its progress with key stakeholders.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
</odoo>
|