712 lines
36 KiB
XML
712 lines
36 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<odoo>
|
|
<record id="project_project_inherit_form_view2" model="ir.ui.view">
|
|
<field name="name">project.project.inherit.form.view</field>
|
|
<field name="model">project.project</field>
|
|
<field name="inherit_id" ref="project.edit_project"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//div[hasclass('oe_title')]" position="after">
|
|
<group>
|
|
<h1>
|
|
<field name="sequence_name" readonly="1"/>
|
|
</h1>
|
|
</group>
|
|
</xpath>
|
|
|
|
<xpath expr="//field[@name='user_id']" position="after">
|
|
<field name="project_lead" widget="many2one_avatar_user"/>
|
|
</xpath>
|
|
<xpath expr="//field[@name='user_id']" position="replace">
|
|
<field name="user_id" widget="many2one_avatar_user"/>
|
|
</xpath>
|
|
<xpath expr="//page[@name='settings']" position="inside">
|
|
<group>
|
|
<group name="group_project_channel_managment" string="Project Channel" col="1"
|
|
class="row mt16 o_settings_container">
|
|
<div>
|
|
<setting class="col-lg-12" id="discuss_channel_settings"
|
|
help="Determine the channel in which we are sending notifications">
|
|
<field name="discuss_channel_id"/>
|
|
<button name="action_create_project_channel"
|
|
string="Create Project Channel"
|
|
type="object"
|
|
class="btn-primary"
|
|
invisible="discuss_channel_id"/>
|
|
</setting>
|
|
<field name="default_projects_channel_id" invisible="1"/>
|
|
</div>
|
|
</group>
|
|
|
|
</group>
|
|
</xpath>
|
|
<xpath expr="//form/header" position="inside">
|
|
<button type="object" name="submit_project_for_approval"
|
|
string="Submit for Approval"
|
|
class="oe_highlight"
|
|
invisible="not assign_approval_flow or not show_submission_button"/>
|
|
|
|
<button type="object" name="project_proceed_further"
|
|
string="Approve & Proceed"
|
|
class="oe_highlight"
|
|
invisible="not assign_approval_flow or not show_approval_button"/>
|
|
|
|
<button type="object" name="action_open_reject_wizard"
|
|
string="Reject"
|
|
class="oe_highlight"
|
|
invisible="not assign_approval_flow or not show_refuse_button"/>
|
|
|
|
<button type="object" name="project_back_button"
|
|
string="Go Back"
|
|
class="oe_highlight"
|
|
invisible="not assign_approval_flow or not show_back_button"/>
|
|
|
|
</xpath>
|
|
<xpath expr="//form" position="inside">
|
|
<field name="showable_stage_ids" invisible="1"/>
|
|
<field name="assign_approval_flow" invisible="1"/>
|
|
<field name="manager_level_edit_access" invisible="1"/>
|
|
<field name="show_submission_button" invisible="1"/>
|
|
<field name="show_approval_button" invisible="1"/>
|
|
<field name="show_refuse_button" invisible="1"/>
|
|
<field name="show_back_button" invisible="1"/>
|
|
</xpath>
|
|
<xpath expr="//field[@name='stage_id']" position="attributes">
|
|
<attribute name="domain">[('id', 'in', showable_stage_ids)]</attribute>
|
|
</xpath>
|
|
|
|
|
|
<xpath expr="//page[@name='settings']" position="before">
|
|
<page name="project_stages" string="Project Stages" invisible="not assign_approval_flow">
|
|
<field name="project_stages" options="{'no_create': True, 'no_open': True, 'no_delete': True}">
|
|
<list editable="bottom" delete="0" create="0">
|
|
<field name="stage_id" readonly="1"/>
|
|
<field name="approval_by" readonly="not manager_level_edit_access"/>
|
|
<field name="assigned_to" readonly="not manager_level_edit_access"/>
|
|
<field name="involved_users" widget="many2many_tags"/>
|
|
<field name="assigned_date" readonly="1" optional="hide"/>
|
|
<field name="submission_date" readonly="1" optional="hide"/>
|
|
<field name="note" optional="show" readonly="not manager_level_edit_access"/>
|
|
<field name="project_id" invisible="1" column_invisible="1"/>
|
|
<field name="stage_approval_by" invisible="1" column_invisible="1"/>
|
|
<field name="approval_by_users" invisible="1" column_invisible="1"/>
|
|
<field name="manager_level_edit_access" invisible="1" column_invisible="1"/>
|
|
<field name="activate"/>
|
|
</list>
|
|
</field>
|
|
</page>
|
|
<page name="task_stages" string="Task Stages">
|
|
<field name="type_ids" context="{'project_id': id}" options="{'no_open': True}">
|
|
<list edit="0" no_open="True">
|
|
<field name="sequence"/>
|
|
<field name="name"/>
|
|
<field name="team_id"/>
|
|
<field name="approval_by"/>
|
|
<field name="fold"/>
|
|
<field name="involved_user_ids" widget="many2many_tags"/>
|
|
<button name="create_or_update_data"
|
|
type="object"
|
|
string="Update"
|
|
class="btn-primary"/>
|
|
</list>
|
|
</field>
|
|
</page>
|
|
<page string="Team">
|
|
<group>
|
|
<button name="fetch_project_task_stage_users" type="object" string="Fetch Users from Related Stages" class="btn-primary"/>
|
|
<button name="add_users" type="object" string="Add/Update" class="btn-secondary"/>
|
|
</group>
|
|
<group>
|
|
<field name="members_ids" widget="many2many_avatar_user" nolabel="1"
|
|
options="{'no_create': True, 'no_create_edit': True, 'no_open': True, 'no_quick_create': True}"
|
|
readonly="1"/>
|
|
</group>
|
|
</page>
|
|
</xpath>
|
|
<xpath expr="//chatter" position="attributes">
|
|
<attribute name="invisible">not show_project_chatter</attribute>
|
|
</xpath>
|
|
<xpath expr="//field[@name='user_id']" position="before">
|
|
<field name="project_sponsor" widget="many2one_avatar_user"/>
|
|
</xpath>
|
|
<xpath expr="//header/field[@name='stage_id']" position="attributes">
|
|
<attribute name="readonly">assign_approval_flow</attribute>
|
|
</xpath>
|
|
<page name="description" position="attributes">
|
|
<attribute name="string">Initiation</attribute>
|
|
</page>
|
|
|
|
<xpath expr="//field[@name='description']" position="attributes">
|
|
<attribute name="invisible">1</attribute>
|
|
</xpath>
|
|
<page name="description" position="inside">
|
|
<group>
|
|
<field name="project_vision"
|
|
placeholder="Eg: Build a mobile app that allows users to order groceries and track delivery in real time."
|
|
readonly="not manager_level_edit_access"/>
|
|
</group>
|
|
<group string="Requirements Document">
|
|
|
|
<div class="o_row" style="align-items: flex-start;">
|
|
|
|
<!-- LEFT SIDE -->
|
|
<div class="o_col" style="width: 70%;">
|
|
|
|
<!-- HTML field (visible when NO file uploaded) -->
|
|
<field name="description"
|
|
widget="html" force_save="1" readonly="not manager_level_edit_access"
|
|
invisible="requirement_file" placeholder="The system should allow user login,
|
|
Users should be able to add items to a cart."/>
|
|
|
|
<!-- PDF Viewer (visible when file exists) -->
|
|
<field name="requirement_file"
|
|
widget="binary" force_save="1" readonly="not manager_level_edit_access"
|
|
invisible="not requirement_file"/>
|
|
</div>
|
|
|
|
<!-- RIGHT SIDE -->
|
|
<div class="o_col" style="width: 30%; padding-left: 20px;">
|
|
|
|
<!-- Upload button (visible when NO file exists) -->
|
|
<field name="requirement_file"
|
|
widget="binary" force_save="1"
|
|
filename="requirement_file_name"
|
|
invisible="requirement_file or not manager_level_edit_access"/>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</group>
|
|
|
|
|
|
<!-- ===================== -->
|
|
<!-- FEASIBILITY ASSESSMENT -->
|
|
<!-- ===================== -->
|
|
<group string="Feasibility Assessment">
|
|
|
|
<div class="o_row" style="align-items: flex-start;">
|
|
|
|
<!-- LEFT SIDE -->
|
|
<div class="o_col" style="width: 70%;">
|
|
|
|
<!-- HTML field -->
|
|
<field name="feasibility_html"
|
|
widget="html" force_save="1"
|
|
readonly="not manager_level_edit_access"
|
|
invisible="feasibility_file"
|
|
placeholder="Check whether the project is technically, financially, and operationally possible."/>
|
|
|
|
<!-- PDF Viewer -->
|
|
<field name="feasibility_file"
|
|
widget="binary" force_save="1" readonly="not manager_level_edit_access"
|
|
invisible="not feasibility_file"/>
|
|
</div>
|
|
|
|
<!-- RIGHT SIDE -->
|
|
<div class="o_col" style="width: 30%; padding-left: 20px;">
|
|
|
|
<!-- Upload Field -->
|
|
<field name="feasibility_file"
|
|
widget="binary" force_save="1"
|
|
filename="feasibility_file_name"
|
|
invisible="feasibility_file or not manager_level_edit_access"/>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</group>
|
|
</page>
|
|
<xpath expr="//page[@name='settings']" position="inside">
|
|
<group>
|
|
<group name="group_sprint_requirement_management" string="Project Sprint" col="1"
|
|
class="row mt16 o_settings_container">
|
|
<div>
|
|
<setting class="col-lg-12" id="project_sprint_requirement_settings"
|
|
help="Enable it if you want to add Sprints for the project">
|
|
<field name="require_sprint" force_save="1"/>
|
|
</setting>
|
|
</div>
|
|
</group>
|
|
|
|
</group>
|
|
</xpath>
|
|
|
|
<xpath expr="//sheet" position="inside">
|
|
<widget name="web_ribbon" title="Rejected" bg_color="text-bg-danger"
|
|
invisible="approval_status != 'reject'"/>
|
|
<widget name="web_ribbon" title="Rejected" invisible="approval_status != 'submitted'"/>
|
|
</xpath>
|
|
<xpath expr="//notebook" position="inside">
|
|
<page string="Project Activity Log" invisible="not assign_approval_flow or not show_project_chatter">
|
|
<field name="project_activity_log" widget="html" options="{'sanitize': False}" readonly="1"
|
|
force_save="1"/>
|
|
</page>
|
|
</xpath>
|
|
<xpath expr="//field[@name='date_start']" position="attributes">
|
|
<attribute name="invisible">1</attribute>
|
|
</xpath>
|
|
<xpath expr="//field[@name='date']" position="attributes">
|
|
<attribute name="invisible">1</attribute>
|
|
</xpath>
|
|
|
|
<xpath expr="//sheet/notebook/page[@name='settings']" position="after">
|
|
<page name="planning" string="Planning (Budget & Deadlines)">
|
|
<group>
|
|
|
|
<group string="project Scope">
|
|
<field name="project_scope" nolabel="1"/>
|
|
</group>
|
|
<group string="Timelines">
|
|
<group>
|
|
|
|
<field name="date_start" string="Planned Date" widget="daterange"
|
|
options='{"end_date_field": "date", "always_range": "1"}'
|
|
required="date_start or date"/>
|
|
<field name="date" invisible="1" required="date_start"/>
|
|
|
|
</group>
|
|
<group></group>
|
|
<group>
|
|
<field name="allocated_hours" widget="timesheet_uom_no_toggle" optional="hide"
|
|
invisible="allocated_hours == 0 or not allow_timesheets"
|
|
groups="hr_timesheet.group_hr_timesheet_user"/>
|
|
<field name="effective_hours" widget="timesheet_uom_no_toggle" optional="hide"
|
|
invisible="effective_hours == 0 or not allow_timesheets"
|
|
groups="hr_timesheet.group_hr_timesheet_user"/>
|
|
<field name="remaining_hours" widget="timesheet_uom_no_toggle"
|
|
decoration-danger="remaining_hours < 0"
|
|
decoration-warning="allocated_hours > 0 and (remaining_hours / allocated_hours) < 0.2"
|
|
optional="hide"
|
|
invisible="allocated_hours == 0 or not allow_timesheets"
|
|
groups="hr_timesheet.group_hr_timesheet_user"
|
|
/>
|
|
<field name="estimated_hours" widget="timesheet_uom_no_toggle"
|
|
invisible="not allow_timesheets" groups="hr_timesheet.group_hr_timesheet_user"/>
|
|
</group>
|
|
<group>
|
|
|
|
<field name="task_estimated_hours" widget="timesheet_uom_no_toggle"
|
|
invisible="not allow_timesheets" groups="hr_timesheet.group_hr_timesheet_user"/>
|
|
<field name="actual_hours" widget="timesheet_uom_no_toggle"
|
|
invisible="not allow_timesheets"
|
|
groups="hr_timesheet.group_hr_timesheet_user"/>
|
|
</group>
|
|
</group>
|
|
|
|
</group>
|
|
<group string="Risk Management Plan">
|
|
<field name="risk_ids" nolabel="1">
|
|
<list editable="bottom">
|
|
<field name="project_id" invisible="1" column_invisible="1"/>
|
|
<field name="risk_description" width="30%"/>
|
|
<field name="probability" width="20%"/>
|
|
<field name="impact" width="20%"/>
|
|
<field name="mitigation_plan" width="30%"/>
|
|
</list>
|
|
</field>
|
|
|
|
</group>
|
|
<group string="Budget Planning">
|
|
<group>
|
|
<field name="estimated_amount"/>
|
|
<field name="total_budget_amount" readonly="1"/>
|
|
</group>
|
|
|
|
<notebook>
|
|
<!-- MANPOWER TAB -->
|
|
<page string="Manpower">
|
|
|
|
<button name="action_fetch_resource_data"
|
|
type="object"
|
|
string="Fetch Resource Data"
|
|
class="oe_highlight"
|
|
icon="fa-refresh"/>
|
|
|
|
<field name="resource_cost_ids">
|
|
<list editable="bottom">
|
|
<field name="employee_id"/>
|
|
<field name="monthly_salary"/>
|
|
<field name="daily_rate"/>
|
|
<field name="start_date" optional="hide"/>
|
|
<field name="end_date" optional="hide"/>
|
|
<field name="duration_days" readonly="1"/>
|
|
<field name="total_cost"/>
|
|
</list>
|
|
</field>
|
|
</page>
|
|
|
|
<!-- MATERIAL TAB -->
|
|
<page string="Material">
|
|
<field name="material_cost_ids">
|
|
<list editable="bottom">
|
|
<field name="material_name" width="30%"/>
|
|
<field name="qty" width="20%"/>
|
|
<field name="unit_cost" width="20%"/>
|
|
<field name="total_cost" readonly="1" width="20%"/>
|
|
</list>
|
|
</field>
|
|
</page>
|
|
|
|
<!-- EQUIPMENT TAB -->
|
|
<page string="Equipments/Others">
|
|
<field name="equipment_cost_ids">
|
|
<list editable="bottom">
|
|
<field name="equipment_name" string="Equip/Others" width="30%"/>
|
|
<field name="duration_hours" width="20%"/>
|
|
<field name="hourly_rate" width="20%"/>
|
|
<field name="total_cost" readonly="1" width="20%"/>
|
|
</list>
|
|
</field>
|
|
</page>
|
|
|
|
</notebook>
|
|
</group>
|
|
</page>
|
|
</xpath>
|
|
<xpath expr="//sheet/notebook" position="inside">
|
|
<page name="architecture_design" string="Architecture & Design">
|
|
|
|
<field name="architecture_design_ids">
|
|
<list>
|
|
<field name="tech_stack"/>
|
|
<field name="design_status"/>
|
|
<field name="architecture_notes" optional="hide"/>
|
|
<field name="database_notes" optional="hide"/>
|
|
<field name="reviewer_comments" optional="hide"/>
|
|
</list>
|
|
|
|
<form>
|
|
<sheet>
|
|
<group string="System Architecture">
|
|
<field name="architecture_diagram"/>
|
|
<field name="tech_stack"/>
|
|
<field name="architecture_notes"/>
|
|
</group>
|
|
|
|
<group>
|
|
<group string="UI / UX">
|
|
<field name="ui_wireframe"/>
|
|
<field name="ux_flow"/>
|
|
</group>
|
|
|
|
<group string="Database Design">
|
|
<field name="er_diagram"/>
|
|
<field name="database_notes"/>
|
|
</group>
|
|
</group>
|
|
|
|
<group string="Review">
|
|
<field name="design_status"/>
|
|
<field name="reviewer_comments"/>
|
|
</group>
|
|
</sheet>
|
|
</form>
|
|
|
|
</field>
|
|
|
|
</page>
|
|
<page name="project_sprints" string="Sprints" invisible="not require_sprint">
|
|
<field name="sprint_ids">
|
|
<list editable="bottom">
|
|
<field name="sprint_name" width="20%"/>
|
|
<field name="date_start" width="20%"/>
|
|
<field name="date_end" width="20%"/>
|
|
<field name="allocated_hours" width="20%"/>
|
|
<field name="status" width="20%"/>
|
|
<field name="done_date" optional="hide"/>
|
|
<field name="note" optional="hide"/>
|
|
</list>
|
|
</field>
|
|
</page>
|
|
<page name="development" string="Development Details">
|
|
<group string="Documents">
|
|
<field name="development_document_ids">
|
|
<list editable="bottom">
|
|
<field name="name"/>
|
|
<field name="file" filename="file_name" widget="binary"/>
|
|
<field name="file_name"/>
|
|
<field name="notes"/>
|
|
</list>
|
|
|
|
<form>
|
|
<group>
|
|
<field name="name"/>
|
|
<field name="file" filename="file_name" widget="binary"/>
|
|
<field name="file_name"/>
|
|
<field name="notes"/>
|
|
</group>
|
|
</form>
|
|
</field>
|
|
|
|
</group>
|
|
|
|
<group string="Code Commit Documents">
|
|
<field name="commit_step_ids" readonly="1" create="0" edit="0">
|
|
<list>
|
|
|
|
<field name="task_id"/>
|
|
<field name="sprint_id" optional="hide"/>
|
|
<field name="commit_date"/>
|
|
<field name="commit_code" widget="html" optional="hide"/>
|
|
<field name="commit_message"/>
|
|
<field name="branch_name"/>
|
|
<field name="files_changed"/>
|
|
<field name="notes" optional="hide"/>
|
|
|
|
</list>
|
|
</field>
|
|
|
|
</group>
|
|
<group string="Notes">
|
|
<field name="development_notes" nolabel="1" placeholder="click hear to write comments"/>
|
|
</group>
|
|
</page>
|
|
<page string="Testing Documents">
|
|
<group string="Documents">
|
|
<field name="testing_document_ids">
|
|
<list editable="bottom">
|
|
<field name="name"/>
|
|
<field name="file" filename="file_name"/>
|
|
<field name="file_name"/>
|
|
<field name="notes"/>
|
|
</list>
|
|
|
|
<form>
|
|
<group>
|
|
<field name="name"/>
|
|
<field name="file" filename="file_name"/>
|
|
<field name="file_name"/>
|
|
<field name="notes"/>
|
|
</group>
|
|
</form>
|
|
</field>
|
|
|
|
</group>
|
|
<group string="Notes">
|
|
<field name="testing_notes" nolabel="1" placeholder="click hear to write comments"/>
|
|
</group>
|
|
</page>
|
|
<page string="Deployment" name="deployment">
|
|
<field name="deployment_log_ids" mode="kanban" colspan="4" nolabel="1">
|
|
<kanban class="o_kanban_small_column o_deployment_kanban">
|
|
<field name="deployment_date"/>
|
|
<field name="deployment_ready"/>
|
|
<field name="qa_signoff"/>
|
|
<field name="client_signoff"/>
|
|
<field name="backup_completed"/>
|
|
<field name="deployment_version"/>
|
|
<field name="deployed_by"/>
|
|
<field name="deployment_notes"/>
|
|
<field name="deployment_files_ids"/>
|
|
|
|
<templates>
|
|
<t t-name="kanban-box">
|
|
<div class="oe_kanban_global_click o_kanban_record deployment_card">
|
|
|
|
<!-- Header -->
|
|
<div class="deployment_header">
|
|
<div class="deployment_version">
|
|
<t t-esc="record.deployment_version.value or 'Version ?'"/>
|
|
</div>
|
|
|
|
<div class="deployment_date">
|
|
<i class="fa fa-calendar"></i>
|
|
<t t-esc="record.deployment_date.value"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Status -->
|
|
<div class="deployment_status_container">
|
|
<div class="deployment_status">
|
|
<span>Deployment Ready:</span>
|
|
<span class="badge">
|
|
<t t-esc="record.deployment_ready.value and '✔' or '✘'"/>
|
|
</span>
|
|
</div>
|
|
|
|
<div class="deployment_status">
|
|
<span>QA Signoff:</span>
|
|
<span class="badge">
|
|
<t t-esc="record.qa_signoff.value and '✔' or '✘'"/>
|
|
</span>
|
|
</div>
|
|
|
|
<div class="deployment_status">
|
|
<span>Client Signoff:</span>
|
|
<span class="badge">
|
|
<t t-esc="record.client_signoff.value and '✔' or '✘'"/>
|
|
</span>
|
|
</div>
|
|
|
|
<div class="deployment_status">
|
|
<span>Backup:</span>
|
|
<span class="badge">
|
|
<t t-esc="record.backup_completed.value and '✔' or '✘'"/>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Notes -->
|
|
<t t-if="record.deployment_notes.value">
|
|
<div class="deployment_notes">
|
|
<strong>Notes:</strong>
|
|
<br/>
|
|
<span>
|
|
<t t-esc="record.deployment_notes.value"/>
|
|
</span>
|
|
</div>
|
|
</t>
|
|
</div>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
<form string="Deployment Log">
|
|
<group>
|
|
<group>
|
|
<field name="deployment_version"/>
|
|
<field name="deployment_date"/>
|
|
<field name="deployed_by"/>
|
|
</group>
|
|
|
|
<group>
|
|
<field name="deployment_ready"/>
|
|
<field name="qa_signoff"/>
|
|
<field name="client_signoff"/>
|
|
<field name="backup_completed"/>
|
|
</group>
|
|
</group>
|
|
|
|
<notebook>
|
|
<page string="Notes">
|
|
<field name="deployment_notes" placeholder="Deployment details, changes, steps..."/>
|
|
</page>
|
|
|
|
<page string="Files">
|
|
<field name="deployment_files_ids" widget="many2many"
|
|
options="{'no_create_edit': False, 'no_create': False}"
|
|
create="true"
|
|
mode="list,form">
|
|
<list editable="bottom">
|
|
<field name="name" column_invisible="1"/>
|
|
<field name="datas" filename="name" widget="60%"/>
|
|
<field name="mimetype" widget="30%"/>
|
|
</list>
|
|
<form string="Deployment File">
|
|
<group>
|
|
<field name="datas" filename="name"/>
|
|
<field name="mimetype"/>
|
|
</group>
|
|
</form>
|
|
</field>
|
|
</page>
|
|
</notebook>
|
|
</form>
|
|
</field>
|
|
</page>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
|
|
<record id="project_invoice_form_inherit" model="ir.ui.view">
|
|
<field name="name">project.invoice.inherit.form.view</field>
|
|
<field name="model">project.project</field>
|
|
<field name="inherit_id" ref="hr_timesheet.project_invoice_form"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//field[@name='allocated_hours']" position="attributes">
|
|
<attribute name="invisible">True</attribute>
|
|
<!-- <field name="estimated_hours" widget="timesheet_uom_no_toggle" invisible="not allow_timesheets" groups="hr_timesheet.group_hr_timesheet_user"/>-->
|
|
<!-- <field name="task_estimated_hours" widget="timesheet_uom_no_toggle" invisible="not allow_timesheets" groups="hr_timesheet.group_hr_timesheet_user"/>-->
|
|
<!-- <field name="actual_hours" widget="timesheet_uom_no_toggle" invisible="not allow_timesheets" groups="hr_timesheet.group_hr_timesheet_user"/>-->
|
|
</xpath>
|
|
<xpath expr="//field[@name='effective_hours']" position="attributes">
|
|
<attribute name="invisible">True</attribute>
|
|
</xpath>
|
|
<xpath expr="//field[@name='remaining_hours']" position="attributes">
|
|
<attribute name="invisible">True</attribute>
|
|
</xpath>
|
|
|
|
|
|
</field>
|
|
</record>
|
|
<record id="view_task_form_commit_steps" model="ir.ui.view">
|
|
<field name="name">project.task.form.commit.steps</field>
|
|
<field name="model">project.task</field>
|
|
<field name="inherit_id" ref="project.view_task_form2"/>
|
|
<field name="arch" type="xml">
|
|
|
|
<xpath expr="//notebook" position="inside">
|
|
<page string="Commit Steps">
|
|
<field name="commit_step_ids">
|
|
<list editable="bottom">
|
|
<field name="commit_date"/>
|
|
<field name="commit_code" widget="html"/>
|
|
<field name="commit_message"/>
|
|
<field name="branch_name"/>
|
|
<field name="files_changed"/>
|
|
<field name="notes"/>
|
|
</list>
|
|
|
|
<form>
|
|
<group>
|
|
<field name="commit_code" widget="html"/>
|
|
<field name="commit_message"/>
|
|
<field name="branch_name"/>
|
|
<field name="files_changed"/>
|
|
<field name="commit_date"/>
|
|
<field name="notes"/>
|
|
</group>
|
|
</form>
|
|
</field>
|
|
</page>
|
|
<!-- Development Documents Tab -->
|
|
<page string="Development Documents">
|
|
<field name="development_document_ids">
|
|
<list editable="bottom">
|
|
<field name="name"/>
|
|
<field name="file" filename="file_name"/>
|
|
<field name="file_name"/>
|
|
<field name="notes"/>
|
|
</list>
|
|
|
|
<form>
|
|
<group>
|
|
<field name="name"/>
|
|
<field name="file" filename="file_name"/>
|
|
<field name="file_name"/>
|
|
<field name="notes"/>
|
|
</group>
|
|
</form>
|
|
</field>
|
|
</page>
|
|
|
|
<!-- Testing Documents Tab -->
|
|
<page string="Testing Documents">
|
|
<field name="testing_document_ids">
|
|
<list editable="bottom">
|
|
<field name="name"/>
|
|
<field name="file" filename="file_name"/>
|
|
<field name="file_name"/>
|
|
<field name="notes"/>
|
|
</list>
|
|
|
|
<form>
|
|
<group>
|
|
<field name="name"/>
|
|
<field name="file" filename="file_name"/>
|
|
<field name="file_name"/>
|
|
<field name="notes"/>
|
|
</group>
|
|
</form>
|
|
</field>
|
|
</page>
|
|
</xpath>
|
|
|
|
<xpath expr="//chatter" position="attributes">
|
|
<attribute name="invisible">not show_task_chatter</attribute>
|
|
</xpath>
|
|
|
|
</field>
|
|
</record>
|
|
|
|
|
|
</odoo> |