You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
353 lines
18 KiB
353 lines
18 KiB
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<odoo>
|
|
<!-- Form view-->
|
|
<record id="helpdesk_ticket_view_quick_create_form" model="ir.ui.view">
|
|
<field name="name">ticket.helpdesk.quick.view.form</field>
|
|
<field name="model">ticket.helpdesk</field>
|
|
<field name="arch" type="xml">
|
|
<form>
|
|
<group>
|
|
<field name="subject" string="Subject"/>
|
|
<field name="customer_id" string="Customer"/>
|
|
<field name="description" string="Description"/>
|
|
</group>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
<record id="ticket_helpdesk_view_form" model="ir.ui.view">
|
|
<field name="name">ticket.helpdesk.view.form</field>
|
|
<field name="model">ticket.helpdesk</field>
|
|
<field name="priority">1</field>
|
|
<field name="arch" type="xml">
|
|
<form>
|
|
<header>
|
|
<button name="action_send_reply" string="Reply"
|
|
type="object" class="btn-primary"/>
|
|
<button name="action_create_tasks" string="Create Task"
|
|
type="object" class="btn-primary"
|
|
invisible="create_task==False"/>
|
|
<button name="action_create_invoice" string="Create Invoice"
|
|
type="object" class="btn-primary"
|
|
invisible="billable==False"/>
|
|
<field name="stage_id" widget="statusbar"
|
|
options="{'clickable': '1'}"/>
|
|
</header>
|
|
<sheet>
|
|
<div class="oe_button_box" name="button_box">
|
|
<button class="oe_stat_button" name="action_open_tasks"
|
|
string="Tasks" type="object" icon="fa-tasks"
|
|
invisible="create_task==False">
|
|
</button>
|
|
<button class="oe_stat_button"
|
|
name="action_open_merged_tickets"
|
|
string="Merged Tickets" type="object"
|
|
icon="fa-list"
|
|
invisible="merge_ticket_invisible==False">
|
|
<div class="o_stat_info">
|
|
<field name="merge_count" readonly="True"/>
|
|
<span class="o_stat_text">Merged Tickets</span>
|
|
</div>
|
|
</button>
|
|
<button class="oe_stat_button" name="action_open_invoices"
|
|
string="Invoices" type="object" icon="fa-tasks"
|
|
invisible="billable==False">
|
|
</button>
|
|
</div>
|
|
<field name="kanban_state" widget="state_selection"/>
|
|
<div class="oe_title">
|
|
<label for="name" class="oe_edit_only"/>
|
|
<h1>
|
|
<field name="name"/>
|
|
</h1>
|
|
<label for="subject" class="oe_edit_only"/>
|
|
<h1 class="mt0">
|
|
<field name="subject"/>
|
|
</h1>
|
|
</div>
|
|
<group>
|
|
<group>
|
|
<field name="customer_id"/>
|
|
<field name="ticket_type_id"/>
|
|
<field name="email"/>
|
|
<field name="phone"/>
|
|
<field name="tags_ids" widget="many2many_tags"/>
|
|
</group>
|
|
<group>
|
|
<field name="show_category" invisible="1"/>
|
|
<field name="priority" widget="priority"/>
|
|
<field name="create_date"/>
|
|
<field name="start_date"/>
|
|
<field name="end_date"/>
|
|
<field name="product_ids" widget="many2many_tags"/>
|
|
<field name="show_category" invisible="1"/>
|
|
<field name="merge_count" invisible="1"/>
|
|
<field name="merge_ticket_invisible" invisible="1"/>
|
|
</group>
|
|
</group>
|
|
<notebook>
|
|
<page string="Issue Description">
|
|
<field name="description"
|
|
placeholder="Provide the reason in detail"/>
|
|
</page>
|
|
<page string="Attachments">
|
|
<field name="attachment_ids">
|
|
<list string="Attachments" no_open="1">
|
|
<field name="name"/>
|
|
<field name="res_model"/>
|
|
<field name="res_field"/>
|
|
<field name="res_id"/>
|
|
<field name="type"/>
|
|
<field name="file_size"/>
|
|
<field name="company_id"/>
|
|
<field name="create_uid"/>
|
|
<field name="create_date"/>
|
|
<field name="datas" widget="binary"
|
|
filename="name"/>
|
|
</list>
|
|
</field>
|
|
</page>
|
|
<page string="Customer Rating">
|
|
<group>
|
|
<field name="customer_rating"
|
|
widget="priority"/>
|
|
<field name="review"/>
|
|
</group>
|
|
</page>
|
|
<page string="Other Information">
|
|
<group>
|
|
<group>
|
|
<field name="team_id"/>
|
|
<field name="team_head_id"/>
|
|
<field name="assigned_user_id"/>
|
|
<field name="category_id"
|
|
groups="odoo_website_helpdesk.group_show_category"/>
|
|
</group>
|
|
<group>
|
|
<field name="project_id"/>
|
|
<field name="service_product_id" invisible="create_task==False"
|
|
required="create_task==True"/>
|
|
<field name="show_create_task"
|
|
invisible="1"/>
|
|
<field name="create_task"
|
|
invisible="show_create_task==False"/>
|
|
<field name="billable"
|
|
invisible="create_task==False"/>
|
|
<field name="last_update_date"/>
|
|
<field name="replied_date"/>
|
|
</group>
|
|
</group>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
<div class="o_attachment_preview"/>
|
|
<chatter/>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
<!--List view-->
|
|
<record id="ticket_helpdesk_view_list" model="ir.ui.view">
|
|
<field name="name">ticket.helpdesk.view.list</field>
|
|
<field name="model">ticket.helpdesk</field>
|
|
<field name="arch" type="xml">
|
|
<list>
|
|
<field name="name"/>
|
|
<field name="customer_id"/>
|
|
<field name="customer_name"/>
|
|
<field name="subject"/>
|
|
<field name="stage_id"/>
|
|
</list>
|
|
</field>
|
|
</record>
|
|
<!-- Kanban view-->
|
|
<record id="ticket_helpdesk_view_kanban" model="ir.ui.view">
|
|
<field name="name">ticket.helpdesk.view.kanban</field>
|
|
<field name="model">ticket.helpdesk</field>
|
|
<field name="arch" type="xml">
|
|
<kanban default_group_by="stage_id" class="o_kanban_small_column"
|
|
on_create="quick_create"
|
|
quick_create_view="odoo_website_helpdesk.helpdesk_ticket_view_quick_create_form">
|
|
<field name="color"/>
|
|
<field name="name"/>
|
|
<field name="stage_id"/>
|
|
<field name="kanban_state"/>
|
|
<progressbar field="kanban_state"
|
|
colors="{"done": "success", "blocked": "danger", "normal": "200"}"/>
|
|
<templates>
|
|
<t t-name="kanban-menu">
|
|
<t t-if="widget.editable">
|
|
<a role="menuitem" type="edit"
|
|
class="dropdown-item">Edit
|
|
</a>
|
|
</t>
|
|
<t t-if="widget.deletable">
|
|
<a role="menuitem" type="delete"
|
|
class="dropdown-item">Delete
|
|
</a>
|
|
</t>
|
|
<ul class="oe_kanban_colorpicker"
|
|
data-field="color"/>
|
|
</t>
|
|
<t t-name="kanban-box">
|
|
<div t-attf-class="#{!selection_mode ? kanban_color(record.color.raw_value) : ''} #{lost_ribbon ? 'oe_kanban_card_ribbon' : ''} oe_kanban_global_click oe_kanban_card d-flex flex-column">
|
|
<div t-attf-class="o_kanban_card_header">
|
|
|
|
<div class="oe_kanban_content">
|
|
<div class="row">
|
|
<div class="col">
|
|
<strong>
|
|
<field name="name"/>
|
|
</strong>
|
|
</div>
|
|
</div>
|
|
<div class="text-muted">
|
|
<field name="customer_id"/>
|
|
</div>
|
|
<div>
|
|
<field name="tags_ids" widget="many2many_tags"/>
|
|
</div>
|
|
<div class="text-muted"
|
|
invisible="team_id==False">
|
|
<field name="team_id"/>
|
|
</div>
|
|
<div class="o_kanban_record_bottom flex-wrap">
|
|
<div class="oe_kanban_bottom_left">
|
|
<field name="priority"
|
|
widget="priority"/>
|
|
<field name="activity_ids"
|
|
widget="kanban_activity"/>
|
|
</div>
|
|
<div class="oe_kanban_bottom_right">
|
|
<field name="kanban_state"
|
|
widget="state_selection"/>
|
|
<field name="user_id"
|
|
widget="many2one_avatar_user"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="clearfix"/>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</field>
|
|
</record>
|
|
<!-- Activity view-->
|
|
<record id="helpdesk_ticket_view_activity" model="ir.ui.view">
|
|
<field name="name">ticket.helpdesk.view.activity</field>
|
|
<field name="model">ticket.helpdesk</field>
|
|
<field name="arch" type="xml">
|
|
<activity string="Tickets">
|
|
<templates>
|
|
<div t-name="activity-box">
|
|
<div>
|
|
<field name="name" display="full"/>
|
|
<field name="customer_id" muted="1"
|
|
display="full"/>
|
|
</div>
|
|
</div>
|
|
</templates>
|
|
</activity>
|
|
</field>
|
|
</record>
|
|
<!-- Calendar view-->
|
|
<record id="ticket_helpdesk_view_calendar" model="ir.ui.view">
|
|
<field name="name">ticket.helpdesk.view.calendar</field>
|
|
<field name="model">ticket.helpdesk</field>
|
|
<field name="arch" type="xml">
|
|
<calendar string="Helpdesk Ticket" date_start="create_date" date_stop="end_date"
|
|
event_open_popup="true" mode="month"
|
|
color="customer_id" quick_create="0"
|
|
>
|
|
<field name="customer_id"/>
|
|
<field name="subject"/>
|
|
<field name="team_id"/>
|
|
</calendar>
|
|
</field>
|
|
</record>
|
|
|
|
<!--Pivot view-->
|
|
<record id="help_ticket_view_pivot" model="ir.ui.view">
|
|
<field name="name">ticket.helpdesk.pivot</field>
|
|
<field name="model">ticket.helpdesk</field>
|
|
<field name="arch" type="xml">
|
|
<pivot>
|
|
<field name="customer_id" type="col"/>
|
|
<field name="subject" type="row"/>
|
|
<field name="team_id" type="col"/>
|
|
<field name="customer_name" type="col"/>
|
|
<field name="email"/>
|
|
<field name="phone"/>
|
|
<field name="start_date"/>
|
|
<field name="team_id" type="col"/>
|
|
<field name="project_id"/>
|
|
</pivot>
|
|
</field>
|
|
</record>
|
|
<!--Graph view-->
|
|
<record id="help_ticket_view_graph" model="ir.ui.view">
|
|
<field name="name">ticket.helpdesk.graph</field>
|
|
<field name="model">ticket.helpdesk</field>
|
|
<field name="arch" type="xml">
|
|
<graph>
|
|
<field name="customer_id"/>
|
|
<field name="subject"/>
|
|
<field name="team_id"/>
|
|
<field name="customer_name"/>
|
|
<field name="email"/>
|
|
<field name="phone"/>
|
|
<field name="start_date"/>
|
|
<field name="team_id"/>
|
|
<field name="project_id"/>
|
|
</graph>
|
|
</field>
|
|
</record>
|
|
<!--Search view-->
|
|
<record id="help_ticket_search" model="ir.ui.view">
|
|
<field name="name">ticket.helpdesk.search</field>
|
|
<field name="model">ticket.helpdesk</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Ticket Search">
|
|
<field name="name" string="Ticket"/>
|
|
<field name="subject"/>
|
|
<filter string="my_ticket" name="My Ticket"
|
|
domain="[('assigned_user_id', '=', uid)]"/>
|
|
<filter string="Archived" name="filter_archived"
|
|
domain="[('active','=', False)]"/>
|
|
<filter string="UnArchived" name="filter_unarchived"
|
|
domain="[('active','=', True)]"/>
|
|
<group expand="0" string="Group By">
|
|
<filter name="Customer" string="Customer"
|
|
context="{'group_by':'customer_id'}"/>
|
|
<filter name="Team" string="Team"
|
|
context="{'group_by':'team_id'}"/>
|
|
<filter name="Team_Head" string="Team Head"
|
|
context="{'group_by':'team_head_id'}"/>
|
|
<filter name="assign" string="Assigned To"
|
|
context="{'group_by':'assigned_user_id'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Action for ticket helpdesk model.-->
|
|
<record id="ticket_helpdesk_action_report" model="ir.actions.act_window">
|
|
<field name="name">Report Help Desk</field>
|
|
<field name="res_model">ticket.helpdesk</field>
|
|
<field name="view_mode">graph,search</field>
|
|
</record>
|
|
<!-- Define the action for the general Helpdesk view -->
|
|
<record id="ticket_helpdesk_action" model="ir.actions.act_window">
|
|
<field name="name">Helpdesk</field>
|
|
<field name="res_model">ticket.helpdesk</field>
|
|
<field name="view_mode">kanban,list,form,calendar,activity,pivot,graph</field>
|
|
</record>
|
|
|
|
<!-- Define the action for the My Helpdesk view with a specific domain -->
|
|
<record id="ticket_helpdesk_action_my" model="ir.actions.act_window">
|
|
<field name="name">My Helpdesk</field>
|
|
<field name="res_model">ticket.helpdesk</field>
|
|
<field name="domain">[('assigned_user_id','=',uid), ('team_head_id','=', uid)]</field>
|
|
<field name="view_mode">kanban,list,form,calendar,activity,pivot,graph</field>
|
|
</record>
|
|
</odoo>
|
|
|