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.
227 lines
12 KiB
227 lines
12 KiB
<odoo>
|
|
<record model="ir.ui.view" id="task_view_tree">
|
|
<field name="name">Shift List</field>
|
|
<field name="model">beesdoo.shift.shift</field>
|
|
<field name="arch" type="xml">
|
|
<tree>
|
|
<field name="start_time"/>
|
|
<field name="planning_id"/>
|
|
<field name="task_type_id"/>
|
|
<field name="name"/>
|
|
<field name="super_coop_id"/>
|
|
<field name="worker_id"/>
|
|
<field name="replaced_id"/>
|
|
<field name="end_time"/>
|
|
<field name="state"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="task_view_search">
|
|
<field name="name">Shift Search</field>
|
|
<field name="model">beesdoo.shift.shift</field>
|
|
<field name="arch" type="xml">
|
|
<search>
|
|
<field name="planning_id"/>
|
|
<field name="task_type_id"/>
|
|
<field name="name"/>
|
|
<field name="super_coop_id"/>
|
|
<field name="worker_id"/>
|
|
<filter string="My Team Shift"
|
|
name="my_team_shift"
|
|
domain="[('super_coop_id', '=', uid)]"/>
|
|
<filter string="My Shift"
|
|
name="my_shift"
|
|
domain="[('worker_id.user_ids', 'in', uid)]"/>
|
|
<separator/>
|
|
<filter string="Assigned"
|
|
name="assigned"
|
|
domain="[('worker_id', '!=', False)]"/>
|
|
<filter string="Unassigned"
|
|
name="unassigned"
|
|
domain="[('worker_id', '=', False)]"/>
|
|
<separator/>
|
|
<filter string="4 next days" name="nextweek"
|
|
domain="[('end_time','>', context_today().strftime('%Y-%m-%d 00:00:00')), ('start_time','<', (context_today() + datetime.timedelta(days=4)).strftime('%Y-%m-%d 23:59:59'))]"/>
|
|
<filter string="J-5" name="jminus5"
|
|
domain="[('end_time','>', (context_today() - datetime.timedelta(days=5)).strftime('%Y-%m-%d 00:00:00')), ('start_time','<', (context_today() - datetime.timedelta(days=5)).strftime('%Y-%m-%d 23:59:59'))]"/>
|
|
<filter string="J-4" name="jminus4"
|
|
domain="[('end_time','>', (context_today() - datetime.timedelta(days=4)).strftime('%Y-%m-%d 00:00:00')), ('start_time','<', (context_today() - datetime.timedelta(days=4)).strftime('%Y-%m-%d 23:59:59'))]"/>
|
|
<filter string="J-3" name="jminus3"
|
|
domain="[('end_time','>', (context_today() - datetime.timedelta(days=3)).strftime('%Y-%m-%d 00:00:00')), ('start_time','<', (context_today() - datetime.timedelta(days=3)).strftime('%Y-%m-%d 23:59:59'))]"/>
|
|
<filter string="J-2" name="jminus2"
|
|
domain="[('end_time','>', (context_today() - datetime.timedelta(days=2)).strftime('%Y-%m-%d 00:00:00')), ('start_time','<', (context_today() - datetime.timedelta(days=2)).strftime('%Y-%m-%d 23:59:59'))]"/>
|
|
<filter string="J-1" name="jminus1"
|
|
domain="[('end_time','>', (context_today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')), ('start_time','<', (context_today() - datetime.timedelta(days=1)).strftime('%Y-%m-%d 23:59:59'))]"/>
|
|
<filter string="Today" name="today"
|
|
domain="[('end_time','>', context_today().strftime('%Y-%m-%d 00:00:00')), ('start_time','<', context_today().strftime('%Y-%m-%d 23:59:59'))]"/>
|
|
<group expand="1" string="Group By">
|
|
<filter string="Shift Template"
|
|
name="template"
|
|
context="{'group_by' : 'task_template_id'}"/>
|
|
<filter string="Type"
|
|
name="gb_type"
|
|
context="{'group_by' : 'task_type_id'}"/>
|
|
<filter string="Status"
|
|
name="gb_status"
|
|
context="{'group_by' : 'state'}"/>
|
|
<filter string="Day"
|
|
name="gb_day"
|
|
context="{'group_by' : 'start_time:day'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="task_view_calendar">
|
|
<field name="name">Task Template List</field>
|
|
<field name="model">beesdoo.shift.shift</field>
|
|
<field name="arch" type="xml">
|
|
<calendar string="Calendar View" date_start="start_time"
|
|
date_stop="end_time" color="task_type_id">
|
|
<field name="name"/>
|
|
<field name="super_coop_id"/>
|
|
<field name="worker_id"/>
|
|
</calendar>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="task_view_form">
|
|
<field name="name">Task Template Form</field>
|
|
<field name="model">beesdoo.shift.shift</field>
|
|
<field name="arch" type="xml">
|
|
<form>
|
|
<header>
|
|
<field name="state" widget="statusbar" clickable="1"/>
|
|
</header>
|
|
<sheet>
|
|
<div class="oe_title">
|
|
<h1>
|
|
<field name="name"/>
|
|
</h1>
|
|
</div>
|
|
<group>
|
|
<group>
|
|
<field name="task_template_id"/>
|
|
<field name="task_type_id"/>
|
|
<field name="super_coop_id"
|
|
domain="[('cooperative_status_ids.status', 'not in', ('unsubscribed', 'resigning'))]"/>
|
|
<field name="worker_id"
|
|
options="{'no_create': True, 'no_open': True}"
|
|
domain="[('cooperative_status_ids.status', 'not in', ('unsubscribed', 'resigning'))]"/>
|
|
<field name="replaced_id"
|
|
options="{'no_create': True, 'no_open': True}"
|
|
domain="[('working_mode', '=', 'regular')]"
|
|
attrs="{'invisible': [('working_mode', '!=', 'regular')]}"/>
|
|
<field name="is_regular"
|
|
attrs="{'invisible': [('working_mode', '!=', 'regular')]}"/>
|
|
<field name="is_compensation"
|
|
attrs="{'invisible': [('working_mode', '!=', 'regular')]}"/>
|
|
<field name="working_mode" invisible="1"/>
|
|
</group>
|
|
<group>
|
|
<field name="start_time"/>
|
|
<field name="end_time"/>
|
|
<field name="revert_info" invisible="0"/>
|
|
</group>
|
|
</group>
|
|
</sheet>
|
|
<!-- Solution Ex1 -->
|
|
<div class="oe_chatter">
|
|
<field name="message_follower_ids" widget="mail_followers"/>
|
|
<field name="message_ids" widget="mail_thread"/>
|
|
</div>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="task_shift_view_kanban">
|
|
<field name="name">Shift Kanban</field>
|
|
<field name="model">beesdoo.shift.shift</field>
|
|
<field name="arch" type="xml">
|
|
<kanban>
|
|
<field name="color"/>
|
|
<field name="task_type_id"/>
|
|
<field name="name"/>
|
|
<field name="state"/>
|
|
<field name="worker_id"/>
|
|
<field name="replaced_id"/>
|
|
<field name="super_coop_id"/>
|
|
<field name="is_regular"/>
|
|
<templates>
|
|
<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">
|
|
<div class="o_dropdown_kanban dropdown"
|
|
name="card_dropdown_menu"
|
|
groups="base.group_user">
|
|
<a class="dropdown-toggle o-no-caret btn"
|
|
role="button" data-toggle="dropdown"
|
|
data-display="static" href="#"
|
|
aria-label="Dropdown menu"
|
|
title="Dropdown menu">
|
|
<span class="fa fa-ellipsis-v"/>
|
|
</a>
|
|
<div class="dropdown-menu" role="menu">
|
|
<t t-if="widget.editable">
|
|
<a role="menuitem" type="edit"
|
|
class="dropdown-item">Edit Shift
|
|
</a>
|
|
</t>
|
|
<t t-if="widget.deletable">
|
|
<a role="menuitem" type="delete"
|
|
class="dropdown-item">Delete
|
|
</a>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
<div class="oe_kanban_content">
|
|
<strong>
|
|
<field name="name"/>
|
|
</strong>
|
|
<div>
|
|
<field name="start_time"
|
|
widget="datetime"/>
|
|
-
|
|
<field name="end_time" widget="datetime"/>
|
|
</div>
|
|
<div>
|
|
Status:
|
|
<field name="state"/>
|
|
</div>
|
|
<div t-if="record.task_type_id.raw_value">
|
|
Type:
|
|
<field name="task_type_id"/>
|
|
</div>
|
|
<div>
|
|
Worker:
|
|
<field name="worker_id"/>
|
|
</div>
|
|
<div t-if="record.replaced_id.raw_value">
|
|
Replacement worker:
|
|
<field name="replaced_id"/>
|
|
</div>
|
|
<div t-if="record.super_coop_id.raw_value">
|
|
Super Coop:
|
|
<field name="super_coop_id"/>
|
|
</div>
|
|
<div t-if="record.is_regular.raw_value">
|
|
Regular Shift
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Actions -->
|
|
<record model="ir.actions.act_window" id="action_task">
|
|
<field name="name">Shifts</field>
|
|
<field name="res_model">beesdoo.shift.shift</field>
|
|
<field name="view_mode">kanban,calendar,tree,form,pivot</field>
|
|
<field name="context">{'search_default_today': 1, 'search_default_gb_type':1}</field>
|
|
</record>
|
|
|
|
</odoo>
|