| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- <?xml version="1.0" encoding="utf-8"?>
- <odoo>
- <!-- List View -->
- <record id="helpdesk_workflow_template_view_tree" model="ir.ui.view">
- <field name="name">helpdesk.workflow.template.tree</field>
- <field name="model">helpdesk.workflow.template</field>
- <field name="arch" type="xml">
- <list string="Workflow Templates" decoration-muted="active == False">
- <field name="sequence" widget="handle" invisible="1"/>
- <field name="name"/>
- <field name="stage_count" string="Stages" sum="Total Stages"/>
- <field name="sla_count" string="SLA Policies" sum="Total SLAs"/>
- <field name="team_count" string="Teams Using"/>
- <field name="active" widget="boolean_toggle"/>
- </list>
- </field>
- </record>
- <!-- Kanban View -->
- <record id="helpdesk_workflow_template_view_kanban" model="ir.ui.view">
- <field name="name">helpdesk.workflow.template.kanban</field>
- <field name="model">helpdesk.workflow.template</field>
- <field name="arch" type="xml">
- <kanban default_order="name" class="o_kanban_small_column" sample="1">
- <field name="name"/>
- <field name="active"/>
- <field name="stage_count"/>
- <field name="sla_count"/>
- <field name="team_count"/>
- <templates>
- <t t-name="card">
- <div class="oe_kanban_card oe_kanban_global_click">
- <div class="o_kanban_card_header">
- <div class="o_kanban_card_header_title">
- <div class="o_primary">
- <field name="name" class="fw-bold fs-5"/>
- </div>
- </div>
- </div>
- <div class="o_kanban_card_content">
- <div class="row mb-2">
- <div class="col-6">
- <div class="text-muted small">Stages</div>
- <div class="fw-bold"><field name="stage_count"/></div>
- </div>
- <div class="col-6">
- <div class="text-muted small">SLA Policies</div>
- <div class="fw-bold"><field name="sla_count"/></div>
- </div>
- </div>
- <div t-if="record.team_count.raw_value > 0" class="mt-2">
- <span class="badge bg-info">
- <i class="fa fa-users me-1"/>
- <field name="team_count"/>
- </span>
- </div>
- </div>
- </div>
- </t>
- </templates>
- </kanban>
- </field>
- </record>
- <!-- Form View -->
- <record id="helpdesk_workflow_template_view_form" model="ir.ui.view">
- <field name="name">helpdesk.workflow.template.form</field>
- <field name="model">helpdesk.workflow.template</field>
- <field name="arch" type="xml">
- <form string="Workflow Template">
- <header>
- <button name="action_view_teams" string="Teams Using This Template" type="object" class="oe_stat_button" icon="fa-users" invisible="team_count == 0">
- <field name="team_count" widget="statinfo" string="Teams"/>
- </button>
- <field name="active" widget="boolean_toggle" options="{'invisible': [('id', '=', False)]}"/>
- </header>
- <sheet>
- <group>
- <group>
- <field name="name" placeholder="e.g., Basic Support, Premium Support"/>
- <field name="description" placeholder="Describe this workflow template..."/>
- </group>
- </group>
-
- <notebook>
- <page string="Stages" name="stages">
- <field name="stage_template_ids" nolabel="1">
- <list string="Stages" editable="bottom" default_order="sequence">
- <field name="sequence" widget="handle"/>
- <field name="name" required="1"/>
- <field name="fold" widget="boolean_toggle"/>
- <field name="description"/>
- </list>
- </field>
- </page>
- <page string="SLA Policies" name="slas">
- <field name="sla_template_ids" nolabel="1">
- <list string="SLA Policies" editable="bottom" default_order="sequence">
- <field name="sequence" widget="handle"/>
- <field name="name" required="1"/>
- <field name="stage_template_id" required="1" domain="[('template_id', '=', parent.id)]"/>
- <field name="time" widget="float_time" required="1"/>
- <field name="priority" widget="priority"/>
- <field name="exclude_stage_template_ids" widget="many2many_tags"
- domain="[('template_id', '=', parent.id), ('id', '!=', stage_template_id)]"
- string="Excluded Stages"/>
- <field name="tag_ids" widget="many2many_tags" optional="hide"/>
- </list>
- <form string="SLA Policy">
- <sheet>
- <group>
- <group>
- <field name="name"/>
- <field name="sequence"/>
- <field name="stage_template_id" domain="[('template_id', '=', template_id)]"/>
- <field name="time" widget="float_time"/>
- <field name="priority" widget="priority"/>
- </group>
- <group>
- <field name="description"/>
- <field name="exclude_stage_template_ids" widget="many2many_tags"
- domain="[('template_id', '=', template_id), ('id', '!=', stage_template_id)]"
- help="Stages where time spent will NOT count towards the SLA deadline. Useful for 'On Hold' or 'Waiting for Customer' stages."/>
- <field name="tag_ids" widget="many2many_tags"/>
- </group>
- </group>
- </sheet>
- </form>
- </field>
- </page>
- <page string="Form Fields" name="form_fields">
- <field name="field_ids" nolabel="1">
- <list string="Form Fields" editable="bottom" default_order="sequence">
- <field name="sequence" widget="handle"/>
- <field name="field_id"
- domain="[('model', '=', 'helpdesk.ticket'), ('website_form_blacklisted', '=', False)]"
- options="{'no_create': True, 'no_open': True}"
- required="1"/>
- <field name="field_name" readonly="1"/>
- <field name="field_type" readonly="1"/>
- <field name="required"/>
- <field name="model_required" invisible="1"/>
- <field name="label_custom" placeholder="Custom label (optional)"/>
- <field name="placeholder" placeholder="Placeholder text"/>
- <field name="default_value" placeholder="Default value"/>
- <field name="help_text" widget="html" placeholder="Help text (HTML)"/>
- <field name="rows"
- string="Height (Rows)"
- invisible="field_type not in ['text', 'html']"/>
- <field name="input_type"
- string="Input Type"
- invisible="field_type != 'char'"/>
- <field name="selection_type"
- string="Selection Type"
- invisible="field_type not in ['selection', 'many2one']"/>
- <field name="widget"
- column_invisible="1"
- invisible="field_type not in ['one2many', 'many2many']"/>
- <field name="selection_options"
- widget="text"
- column_invisible="1"
- placeholder='[["value1", "Label 1"], ["value2", "Label 2"]]'
- invisible="field_type != 'selection' or field_id.relation"/>
- <field name="visibility_dependency"
- domain="[('model', '=', 'helpdesk.ticket'), ('website_form_blacklisted', '=', False)]"
- options="{'no_create': True, 'no_open': True}"
- placeholder="Select field for visibility condition"/>
- <field name="visibility_comparator"
- placeholder="Select comparator"/>
- <field name="visibility_condition"
- placeholder="Enter value to compare"
- invisible="visibility_dependency_type in ['many2one', 'selection']"/>
- <field name="visibility_condition_m2o_id"
- widget="dynamic_many2one"
- placeholder="Select value"
- invisible="visibility_dependency_type != 'many2one'"
- options="{'no_create': True, 'no_open': True}"/>
- <field name="visibility_condition_selection"
- placeholder="Select value"
- invisible="visibility_dependency_type != 'selection'"/>
- <field name="visibility_between"
- placeholder="End value for range (date/datetime)"
- invisible="visibility_comparator not in ['between', '!between']"/>
- <field name="visibility_dependency_type" invisible="1"/>
- <field name="visibility_condition_m2o_model" invisible="1"/>
- </list>
- <form string="Form Field">
- <sheet>
- <group>
- <group string="Field Configuration">
- <field name="field_id" required="1"/>
- <field name="sequence"/>
- <field name="label_custom"/>
- <field name="required"/>
- <field name="model_required" readonly="1"/>
- </group>
- <group string="Display Options">
- <field name="placeholder"/>
- <field name="default_value"/>
- <field name="selection_type"/>
- <field name="rows"/>
- <field name="input_type"/>
- <field name="help_text" widget="html"/>
- </group>
- </group>
- <group string="Visibility Conditions" col="4">
- <field name="visibility_dependency"/>
- <field name="visibility_comparator"
- invisible="not visibility_dependency"/>
- <field name="visibility_condition"
- invisible="not visibility_dependency"/>
- <field name="visibility_between"
- invisible="visibility_comparator not in ['between', '!between']"/>
- </group>
- </sheet>
- </form>
- </field>
- </page>
- <page string="Documentation" name="documentation">
- <field name="documentation_html" readonly="1" nolabel="1"/>
- </page>
- </notebook>
- </sheet>
- </form>
- </field>
- </record>
- <!-- Search View -->
- <record id="helpdesk_workflow_template_view_search" model="ir.ui.view">
- <field name="name">helpdesk.workflow.template.search</field>
- <field name="model">helpdesk.workflow.template</field>
- <field name="arch" type="xml">
- <search string="Workflow Templates">
- <field name="name" string="Template Name"/>
- <filter string="Active" name="active" domain="[('active', '=', True)]"/>
- <filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
- <separator/>
- <filter string="Has Stages" name="has_stages" domain="[('stage_template_ids', '!=', False)]"/>
- <filter string="Has SLAs" name="has_slas" domain="[('sla_template_ids', '!=', False)]"/>
- <group expand="0" string="Group By">
- <filter string="Active" name="group_active" context="{'group_by': 'active'}"/>
- </group>
- </search>
- </field>
- </record>
- <!-- Action -->
- <record id="helpdesk_workflow_template_action" model="ir.actions.act_window">
- <field name="name">Workflow Templates</field>
- <field name="res_model">helpdesk.workflow.template</field>
- <field name="view_mode">kanban,list,form</field>
- <field name="context">{'search_default_active': 1}</field>
- <field name="help" type="html">
- <p class="o_view_nocontent_smiling_face">
- Create your first workflow template!
- </p>
- <p>
- Workflow templates allow you to quickly set up stages and SLA policies for helpdesk teams.
- Create a template with predefined stages and SLAs, then apply it to any team with one click.
- </p>
- </field>
- </record>
- <!-- Menu -->
- <menuitem id="menu_helpdesk_workflow_template"
- name="Workflow Templates"
- parent="helpdesk.helpdesk_menu_config"
- action="helpdesk_workflow_template_action"
- sequence="30"/>
- </odoo>
|