479 lines
26 KiB
XML
479 lines
26 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<record id="project_issue_form_view" model="ir.ui.view">
|
|
<field name="name">project.issue.form.view</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="arch" type="xml">
|
|
<form>
|
|
<header>
|
|
<field name="stage_id" widget="statusbar" clickable="True"
|
|
options="{'fold_field': 'fold'}"/>
|
|
</header>
|
|
<sheet string="Issue">
|
|
<div class="oe_button_box" name="button_box">
|
|
<button name="toggle_active" type="object" groups="base.group_no_one"
|
|
class="oe_stat_button" icon="fa-archive">
|
|
<field name="active" widget="boolean_button"
|
|
options='{"terminology": "archive"}'/>
|
|
</button>
|
|
</div>
|
|
<field name="kanban_state" class="oe_inline" widget="state_selection"/>
|
|
<div class="oe_title">
|
|
<h1><field name="name" placeholder="Issue Summary..."/></h1>
|
|
</div>
|
|
<group>
|
|
<group>
|
|
<field name="user_id"/>
|
|
<field name="priority" groups="base.group_user" widget="priority"/>
|
|
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
|
|
</group>
|
|
<group>
|
|
<field name="partner_id"/>
|
|
<field name="email_from"/>
|
|
<field name="project_id" context="{'default_use_issues':1}" groups="base.group_user"/>
|
|
<field name="task_id" groups="base.group_no_one" context="{'default_project_id':project_id}"/>
|
|
</group>
|
|
</group>
|
|
<notebook>
|
|
<page string="Description">
|
|
<field name="description" placeholder="Add an internal note..." groups="base.group_user"/>
|
|
</page>
|
|
<page string="Extra Info" name="extra_info" groups="project.group_project_manager,project.group_project_user">
|
|
<group>
|
|
<group>
|
|
<field name="id" groups="base.group_no_one"/>
|
|
<field name="day_open"/>
|
|
<field name="day_close"/>
|
|
<field name="legend_blocked" invisible="1"/>
|
|
<field name="legend_done" invisible="1"/>
|
|
<field name="legend_normal" invisible="1"/>
|
|
</group>
|
|
<group>
|
|
<field name="working_hours_open" widget="float_time"/>
|
|
<field name="working_hours_close" widget="float_time"/>
|
|
<field name="inactivity_days"/>
|
|
<field name="days_since_creation"/>
|
|
</group>
|
|
</group>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
<div class="oe_chatter">
|
|
<field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
|
|
<field name="activity_ids" widget="mail_activity"/>
|
|
<field name="message_ids" widget="mail_thread" options="{'post_refresh': 'recipients'}"/>
|
|
</div>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_issue_tree_view" model="ir.ui.view">
|
|
<field name="name">project.issue.tree.view</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Issue Tracker Tree" decoration-bf="message_needaction==True">
|
|
<field name="message_needaction" invisible="1"/>
|
|
<field name="id"/>
|
|
<field name="name"/>
|
|
<field name="partner_id"/>
|
|
<field name="project_id" groups="base.group_user"/>
|
|
<field name="priority" string="Priority" groups="base.group_user"/>
|
|
<field name="create_date" string="Creation Date"/>
|
|
<field name="user_id"/>
|
|
<field name="stage_id" widget="selection" readonly="1"/>
|
|
<field name="tag_ids" invisible="1"/>
|
|
<field name="task_id" invisible="1"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_issue_view_tree_activity" model="ir.ui.view">
|
|
<field name="name">project.issue.view.tree.activity</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Next Activities" decoration-danger="activity_date_deadline < current_date" default_order="activity_date_deadline">
|
|
<field name="name"/>
|
|
<field name="project_id"/>
|
|
<field name="activity_date_deadline"/>
|
|
<field name="activity_type_id"/>
|
|
<field name="activity_summary"/>
|
|
<field name="stage_id"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_project_issue_filter" model="ir.ui.view">
|
|
<field name="name">project.issue.search.view</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Issue Tracker Search">
|
|
<field name="name" string="Issue" filter_domain="['|', '|', '|', ('partner_id','child_of',self), ('description','ilike',self),('email_from','ilike',self),('name','ilike',self)]"/>
|
|
<field name="id"/>
|
|
<field name="partner_id" operator="child_of"/>
|
|
<field name="user_id"/>
|
|
<field name="project_id" groups="base.group_user"/>
|
|
<field name="tag_ids"/>
|
|
<field name="stage_id" domain="[]"/>
|
|
<filter string="My Issues" name="my_issues" domain="[('user_id','=',uid)]"/>
|
|
<filter string="Unassigned" name="unassigned" domain="[('user_id', '=', False)]"/>
|
|
<separator/>
|
|
<filter string="New" name="draft" domain="[('stage_id.sequence', '=', 1)]"/>
|
|
<separator/>
|
|
<filter string="Unread Messages" name="message_needaction" domain="[('message_needaction','=',True)]"/>
|
|
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
|
|
<separator/>
|
|
<filter string="My Activities" name="activities_my"
|
|
domain="[('activity_ids.user_id', '=', uid)]"/>
|
|
<separator/>
|
|
<filter string="Late Activities" name="activities_overdue"
|
|
domain="[('activity_ids.date_deadline', '<', context_today().strftime('%Y-%m-%d'))]"
|
|
help="Show all records which has next action date is before today"/>
|
|
<filter string="Today Activities" name="activities_today"
|
|
domain="[('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/>
|
|
<filter string="Future Activities" name="activities_upcoming_all"
|
|
domain="[('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d'))
|
|
]"/>
|
|
<group expand="0" string="Group By" >
|
|
<filter string="Assigned to" name="Responsible" context="{'group_by':'user_id'}" />
|
|
<filter string="Project" name="project" context="{'group_by':'project_id'}" />
|
|
<filter string="Task" context="{'group_by':'task_id'}"/>
|
|
<filter string="Priority" context="{'group_by':'priority'}" />
|
|
<filter string="Stage" context="{'group_by':'stage_id'}"/>
|
|
<filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
|
<separator/>
|
|
<filter string="Create Day" context="{'group_by':'create_date:day'}" help="Create Date"/>
|
|
<filter string="Last Message" name="group_message_last_post" context="{'group_by':'message_last_post:week'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_issue_calendar_view" model="ir.ui.view">
|
|
<field name="name">project.issue.calendar.view</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="priority" eval="2"/>
|
|
<field name="arch" type="xml">
|
|
<calendar string="Issues" date_start="date" date_delay="duration" color="user_id">
|
|
<field name="name"/>
|
|
<field name="partner_id"/>
|
|
</calendar>
|
|
</field>
|
|
</record>
|
|
|
|
|
|
<!-- Project Issue Karban View-->
|
|
|
|
<record id="project_issue_kanban_view" model="ir.ui.view">
|
|
<field name="name">project.issue.kanban.view</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="arch" type="xml">
|
|
<kanban default_group_by="stage_id" class="o_kanban_small_column">
|
|
<field name="stage_id" options='{"group_by_tooltip": {"description": "Description", "legend_priority": "Use of stars"}}'/>
|
|
<field name="color"/>
|
|
<field name="user_email"/>
|
|
<field name="user_id"/>
|
|
<field name="date_deadline"/>
|
|
<field name="message_needaction_counter"/>
|
|
<field name="active"/>
|
|
<field name="legend_blocked"/>
|
|
<field name="legend_done"/>
|
|
<field name="legend_normal"/>
|
|
<field name="activity_ids" />
|
|
<field name="activity_state" />
|
|
<templates>
|
|
<t t-name="kanban-tooltip">
|
|
<ul class="oe_kanban_tooltip">
|
|
<li><b>Project:</b> <field name="project_id"/></li>
|
|
</ul>
|
|
</t>
|
|
<t t-name="kanban-box">
|
|
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click oe_semantic_html_override">
|
|
<div class="o_dropdown_kanban dropdown" groups="base.group_user">
|
|
|
|
<a class="dropdown-toggle btn" data-toggle="dropdown" href="#" >
|
|
<span class="fa fa-bars fa-lg"/>
|
|
</a>
|
|
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
|
|
<t t-if="widget.editable"><li><a type="edit">Edit Issue</a></li></t>
|
|
<t t-if="widget.deletable"><li><a type="delete">Delete</a></li></t>
|
|
<li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
|
|
</ul>
|
|
</div>
|
|
<div class="oe_kanban_content" tooltip="kanban-tooltip">
|
|
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
|
|
<div>
|
|
<b><field name="name"/></b> <br/>
|
|
<field name="partner_id"/> <br/>
|
|
</div>
|
|
<div class="oe_kanban_bottom_left">
|
|
<field name="priority" widget="priority"/>
|
|
<t t-if="record.message_needaction_counter.raw_value">
|
|
<span class='oe_kanban_mail_new' title='Unread Messages'><i class='fa fa-comments'/><t t-raw="record.message_needaction_counter.raw_value"/></span>
|
|
</t>
|
|
</div>
|
|
<div class="oe_kanban_bottom_right">
|
|
<div class="o_kanban_inline_block ml4 mr4">
|
|
<field name="activity_ids" widget="kanban_activity" />
|
|
</div>
|
|
<img t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar pull-right"/>
|
|
<div class="pull-left" groups="base.group_user">
|
|
<field name="kanban_state" widget="state_selection"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="oe_clear"></div>
|
|
</div>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_issue_view_kanban_inherit_no_group_create" model="ir.ui.view">
|
|
<field name="name">project.issue.view.kanban.inherit.no.group.create</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="inherit_id" ref="project_issue.project_issue_kanban_view"/>
|
|
<field name="mode">primary</field>
|
|
<field name="priority">32</field>
|
|
<field name="arch" type="xml">
|
|
<kanban position="attributes">
|
|
<attribute name="group_create">false</attribute>
|
|
</kanban>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_issue_pivot_view" model="ir.ui.view">
|
|
<field name="name">project.issue.pivot.view</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="arch" type="xml">
|
|
<pivot string="Project Issues">
|
|
<field name="project_id" type="row"/>
|
|
<field name="stage_id" type="col"/>
|
|
</pivot>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_issue_graph_view" model="ir.ui.view">
|
|
<field name="name">project.issue.graph.view</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="arch" type="xml">
|
|
<graph string="Project Issues" type="bar">
|
|
<field name="project_id" type="row"/>
|
|
<field name="create_date" interval="month" type="col"/>
|
|
</graph>
|
|
</field>
|
|
</record>
|
|
|
|
|
|
<!-- Feature Requests -->
|
|
<record id="project_feature_tree_view" model="ir.ui.view">
|
|
<field name="name">project.issue.tree.view.featured</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Feature Tracker Tree" decoration-bf="message_needaction==True">
|
|
<field name="id"/>
|
|
<field name="message_needaction" invisible="1"/>
|
|
<field name="name" string="Feature description"/>
|
|
<field name="partner_id"/>
|
|
<field name="priority" string="Priority"/>
|
|
<field name="user_id"/>
|
|
<field name="stage_id" widget="selection" readonly="1"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="act_project_project_2_project_issue_all" model="ir.actions.act_window">
|
|
<field name="res_model">project.issue</field>
|
|
<field name="view_type">form</field>
|
|
<field name="name">Issues</field>
|
|
<field name="view_mode">kanban,tree,form,calendar,graph,pivot</field>
|
|
<field name="search_view_id" ref="view_project_issue_filter"/>
|
|
<field name="context">{
|
|
'search_default_project_id': [active_id],
|
|
'default_project_id': active_id,
|
|
}
|
|
</field>
|
|
<field name="help" type="html">
|
|
<p>
|
|
The Odoo issues tracker allows you to efficiently manage things
|
|
like internal requests, software development bugs, customer
|
|
complaints, project troubles, material breakdowns, etc.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_view_issues" model="ir.actions.act_window">
|
|
<field name="res_model">project.issue</field>
|
|
<field name="view_type">form</field>
|
|
<field name="name">Issues</field>
|
|
<field name="view_mode">kanban,tree,form,calendar,graph</field>
|
|
<field name="search_view_id" ref="view_project_issue_filter"/>
|
|
<field name="help" type="html">
|
|
<p>
|
|
The Odoo issues tracker allows you to efficiently manage things
|
|
like internal requests, software development bugs, customer
|
|
complaints, project troubles, material breakdowns, etc.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_issue_action_from_partner" model="ir.actions.act_window">
|
|
<field name="res_model">project.issue</field>
|
|
<field name="view_type">form</field>
|
|
<field name="name">Issues</field>
|
|
<field name="view_mode">kanban,tree,form</field>
|
|
</record>
|
|
|
|
<record id="project_issue_categ_act0" model="ir.actions.act_window">
|
|
<field name="name">Issues</field>
|
|
<field name="res_model">project.issue</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">kanban,tree,calendar,form,pivot,graph</field>
|
|
<field name="view_id" eval="False"/>
|
|
<field name="domain" eval=""/>
|
|
<field name="context">{'search_default_my_issues': 1}</field>
|
|
<field name="search_view_id" ref="view_project_issue_filter"/>
|
|
<field name="view_ids"
|
|
eval="[(5, 0, 0),
|
|
(0, 0, {'view_mode': 'kanban', 'view_id': ref('project_issue_view_kanban_inherit_no_group_create')}),
|
|
(0, 0, {'view_mode': 'tree', 'view_id': ref('project_issue_tree_view')}),
|
|
(0, 0, {'view_mode': 'calendar', 'view_id': ref('project_issue_calendar_view')}),
|
|
(0, 0, {'view_mode': 'form', 'view_id': ref('project_issue_form_view')}),
|
|
(0, 0, {'view_mode': 'pivot', 'view_id': ref('project_issue_pivot_view')}),
|
|
(0, 0, {'view_mode': 'graph', 'view_id': ref('project_issue_graph_view')}),
|
|
]"/>
|
|
<field name="help" type="html">
|
|
<p>
|
|
The Odoo issues tracker allows you to efficiently manage things
|
|
like internal requests, software development bugs, customer
|
|
complaints, project troubles, material breakdowns, etc.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_issue_action_activity" model="ir.actions.act_window">
|
|
<field name="name">My Next Issue Activities</field>
|
|
<field name="res_model">project.issue</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,form,kanban,calendar</field>
|
|
<field name="view_id" ref="project_issue_view_tree_activity"/>
|
|
<field name="context">{'search_default_activities_my':1}</field>
|
|
<field name="domain">[('activity_date_deadline', '!=', False)]</field>
|
|
<field name="help" type="html">
|
|
<p>
|
|
Currently there are not any activity scheduled.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<menuitem id="menu_project_issue_track" name="Issues" parent="project.menu_project_management"
|
|
action="project_issue_categ_act0" sequence="15"/>
|
|
|
|
|
|
<menuitem id="project_issue_menu_activity"
|
|
name="Next Issue Activities"
|
|
parent="project.menu_project_management"
|
|
action="project_issue_action_activity"
|
|
sequence="25"/>
|
|
|
|
<record id="project.mail_activity_type_action_config_project_types" model="ir.actions.act_window">
|
|
<field name="domain">['|', ('res_model_id', '=', False), ('res_model_id.model', 'in', ['project.task', 'project.issue'])]</field>
|
|
</record>
|
|
|
|
<record id="project_issue_view_pivot" model="ir.ui.view">
|
|
<field name="name">project.issue.pivot</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="arch" type="xml">
|
|
<pivot string="Project Issue" disable_linking="True">
|
|
<field name="project_id" type="row"/>
|
|
<field name="create_date" interval="month" type="col"/>
|
|
</pivot>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_issue_view_graph" model="ir.ui.view">
|
|
<field name="name">project.issue.graph</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="arch" type="xml">
|
|
<graph string="Project Issue">
|
|
<field name="project_id" type="row"/>
|
|
<field name="create_date" interval="month" type="col"/>
|
|
</graph>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_issue_view_search" model="ir.ui.view">
|
|
<field name="name">project.issue.search</field>
|
|
<field name="model">project.issue</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Search">
|
|
<field name="project_id"/>
|
|
<field name="user_id"/>
|
|
<field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/>
|
|
<field name="stage_id"/>
|
|
<filter string="Unassigned" name="unassigned" domain="[('user_id','=',False)]"/>
|
|
<group expand="1" string="Group By">
|
|
<filter string="Assigned to" name="Responsible" context="{'group_by':'user_id'}" />
|
|
<filter string="Project" name="project" context="{'group_by':'project_id'}" />
|
|
<filter string="Priority" context="{'group_by':'priority'}" />
|
|
<filter string="Stage" context="{'group_by':'stage_id'}"/>
|
|
<filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
|
<separator/>
|
|
<filter string="Create Day" context="{'group_by':'create_date:day'}" help="Create Date"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="project_issue_action_analysis" model="ir.actions.act_window">
|
|
<field name="name">Issues Analysis</field>
|
|
<field name="res_model">project.issue</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">graph,pivot</field>
|
|
<field name="context">{'search_default_year':1,'search_default_This Month':1,'search_default_project':1}</field>
|
|
<field name="search_view_id" ref="project_issue_view_search"/>
|
|
<field name="view_ids" eval="[(5, 0, 0),
|
|
(0, 0, {'view_mode': 'pivot', 'view_id': ref('project_issue_view_pivot')}),
|
|
(0, 0, {'view_mode': 'graph', 'view_id': ref('project_issue_view_graph')})]"/>
|
|
<field name="help">This report on the project issues allows you to analyse the quality of your support or after-sales services. You can track the issues per age. You can analyse the time required to open or close an issue, the number of email to exchange and the time spent on average by issues.</field>
|
|
</record>
|
|
|
|
<!-- Custom reports (aka filters) -->
|
|
<record id="project_issue_filter_delay" model="ir.filters">
|
|
<field name="name">Delay</field>
|
|
<field name="model_id">project.issue</field>
|
|
<field name="user_id" eval="False"/>
|
|
<field name="action_id" ref="project_issue_action_analysis"/>
|
|
<field name="context">{'group_by': ['project_id'], 'measures': ['delay_close', 'delay_open']}</field>
|
|
</record>
|
|
<record id="project_issue_filter_responsible" model="ir.filters">
|
|
<field name="name">By Responsible</field>
|
|
<field name="model_id">project.issue</field>
|
|
<field name="user_id" eval="False"/>
|
|
<field name="action_id" ref="project_issue_action_analysis"/>
|
|
<field name="context">{'group_by': ['project_id', 'user_id']}</field>
|
|
</record>
|
|
|
|
<record id="action_project_issue_report_filtered" model="ir.actions.act_window">
|
|
<field name="name">Issues Analysis</field>
|
|
<field name="res_model">project.issue</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">graph,pivot</field>
|
|
<field name="context">{
|
|
'search_default_year':1,
|
|
'search_default_This Month':1,
|
|
'search_default_project':1,
|
|
'search_default_project_id': [active_id],
|
|
'default_project_id': active_id,
|
|
}
|
|
</field>
|
|
<field name="search_view_id" ref="project_issue_view_search"/>
|
|
<field name="view_id"></field> <!-- force empty -->
|
|
<field name="help">This report on the project issues allows you to analyse the quality of your support or after-sales services. You can track the issues per age. You can analyse the time required to open or close an issue, the number of email to exchange and the time spent on average by issues.</field>
|
|
</record>
|
|
|
|
<menuitem id="menu_project_issue_report_tree" action="project_issue_action_analysis"
|
|
parent="project.menu_project_report" sequence="20"/>
|
|
|
|
</odoo>
|