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.
496 lines
18 KiB
496 lines
18 KiB
<openerp>
|
|
|
|
<!-- Add menu entries -->
|
|
<data noupdate="1">
|
|
<record id="menu_work_irregular" model="website.menu">
|
|
<field name="name">Shifts</field>
|
|
<field name="url">/shift</field>
|
|
<field name="parent_id" ref="website.main_menu"/>
|
|
<field name="sequence" type="int">50</field>
|
|
</record>
|
|
</data>
|
|
|
|
<!-- Shift -->
|
|
<template
|
|
id="shift"
|
|
name="Shift"
|
|
page="True">
|
|
<t t-call="website.layout">
|
|
|
|
<section class="wrap">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<h1 class="text-center">
|
|
Your shifts
|
|
</h1>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
|
|
<section class="wrap">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="alert alert-info">
|
|
You don't have to participate to shift system.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
</t>
|
|
</template>
|
|
|
|
<!-- Available Tasks Templates for Regular Workers -->
|
|
<template
|
|
id="task_template"
|
|
name="Available Tasks Templates for Regular Workers"
|
|
page="True">
|
|
<t t-call="website.layout">
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
<section class="wrap">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<h1 class="text-center">
|
|
Available Tasks Templates for Regular Workers
|
|
</h1>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
<section class="wrap">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<p class="text-center">
|
|
Subscribe via the member office or via
|
|
<a href="mailto:membre@bees-coop.be">membre@bees-coop.be</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
<section class="wrap">
|
|
<div class="container">
|
|
<div class="row">
|
|
|
|
<p class="visible-xs text-center">
|
|
<span class="label label-warning">NSC</span> : This flag tells you that the shift needs a Super Co-operator
|
|
</p>
|
|
<div class="visible-xs" t-foreach="task_templates" t-as="template">
|
|
<ul class="list-group">
|
|
<li class="list-group-item">
|
|
<t t-esc="template.planning_id.name"/> :
|
|
<t t-esc="template.day_nb_id.name"/>
|
|
<t t-esc='float_to_time(template.start_time)' /> -
|
|
<t t-esc='float_to_time(template.end_time)'/>
|
|
<span class="label label-warning pull-right"
|
|
t-if="not template.super_coop_id">
|
|
NSC
|
|
</span>
|
|
</li>
|
|
<li class="list-group-item">
|
|
<t t-esc="template.task_type_id.name"/>
|
|
<span class="badge"
|
|
t-if="template.remaining_worker > 0">
|
|
<t t-esc="template.remaining_worker"/> space(s)
|
|
</span>
|
|
<span class="badge"
|
|
t-if="template.remaining_worker == 0">
|
|
full
|
|
</span>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<table class="hidden-xs table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Week</th>
|
|
<th class="hidden-sm">Task Template</th>
|
|
<th>Day</th>
|
|
<th>Time</th>
|
|
<th>Type of Task</th>
|
|
<th>Super Co-operator</th>
|
|
<th class="text-center">Available Spaces</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<t t-foreach="task_templates" t-as="template">
|
|
<!-- Row with no super coop will be shown in color -->
|
|
<tr t-attf-class="{{ 'warning' if not template.super_coop_id else '' }}">
|
|
<td>
|
|
<t t-esc="template.planning_id.name"/>
|
|
</td>
|
|
<td class="hidden-sm">
|
|
<t t-esc="template.name"/>
|
|
</td>
|
|
<td>
|
|
<t t-esc="template.day_nb_id.name"/>
|
|
</td>
|
|
<td>
|
|
<t t-esc='float_to_time(template.start_time)' /> -
|
|
<t t-esc='float_to_time(template.end_time)'/>
|
|
</td>
|
|
<td>
|
|
<t t-esc="template.task_type_id.name"/>
|
|
</td>
|
|
<td>
|
|
<t t-if="template.super_coop_id">
|
|
Yes
|
|
</t>
|
|
<t t-if="not template.super_coop_id">
|
|
Not yet
|
|
</t>
|
|
</td>
|
|
<td class="text-center">
|
|
<t t-esc="template.remaining_worker"/>
|
|
</td>
|
|
</tr>
|
|
</t>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
</t>
|
|
</template>
|
|
|
|
<!-- Shifts for Irregular Workers -->
|
|
<template
|
|
id="irregular_worker"
|
|
name="Shifts for Irregular Workers"
|
|
page="True">
|
|
<t t-call="website.layout">
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
<section class="wrap">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<h1 class="text-center">
|
|
Your shifts
|
|
</h1>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
<section class="wrap">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-xs-12 col-md-4 pull-right">
|
|
|
|
<section class="wrap">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<h2>
|
|
Worker status
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
<p>
|
|
<label>Working Mode:</label>
|
|
<t t-esc="dict(status.fields_get(allfields=['working_mode'])['working_mode']['selection'])[status.working_mode]"/>
|
|
</p>
|
|
<p>
|
|
<label>Status:</label>
|
|
<t t-esc="dict(status.fields_get(allfields=['status'])['status']['selection'])[status.status]"/>
|
|
</p>
|
|
<p>
|
|
<label>Absence Counter:</label>
|
|
<t t-esc="status.irregular_absence_counter"/>
|
|
</p>
|
|
<t t-if="status.holiday_start_time">
|
|
<p>
|
|
<label>Holiday start time:</label>
|
|
<t t-esc="status.holiday_start_time"/>
|
|
</p>
|
|
<p>
|
|
<label>Holiday end time:</label>
|
|
<t t-esc="status.holiday_end_time"/>
|
|
</p>
|
|
</t>
|
|
<p>
|
|
<label>Irregular start date:</label>
|
|
<t t-esc="status.irregular_start_date"/>
|
|
</p>
|
|
<p>
|
|
<label>Irregular absence date:</label>
|
|
<t t-if="status.irregular_absence_date">
|
|
<t t-esc="status.irregular_absence_date"/>
|
|
</t>
|
|
<t t-if="not status.irregular_absence_date">
|
|
No absence
|
|
</t>
|
|
</p>
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
</div>
|
|
|
|
<div class="col-xs-12 col-md-8">
|
|
|
|
<section class="wrap">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<h2>
|
|
Your next shifts
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
<div class="visible-xs" t-foreach="subscribed_shifts" t-as="shift">
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading clearfix">
|
|
<div class="panel-title">
|
|
<t t-esc="time.strftime('%A %d %B %Y', time.strptime(shift.start_time, '%Y-%m-%d %H:%M:%S'))"/>
|
|
<span t-field="shift.start_time" t-field-options='{"format": "HH:mm"}'/> -
|
|
<span t-field="shift.end_time" t-field-options='{"format": "HH:mm"}'/>
|
|
</div>
|
|
</div>
|
|
<div class="panel-body">
|
|
<t t-esc="shift.task_type_id.name"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<table class="hidden-xs table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Day</th>
|
|
<th>Date</th>
|
|
<th>Time</th>
|
|
<th>Type of Shift</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<t t-foreach="subscribed_shifts" t-as="shift">
|
|
<tr>
|
|
<td>
|
|
<t t-esc="time.strftime('%A', time.strptime(shift.start_time, '%Y-%m-%d %H:%M:%S'))"/>
|
|
</td>
|
|
<td>
|
|
<t t-esc="time.strftime('%d %B %Y', time.strptime(shift.start_time, '%Y-%m-%d %H:%M:%S'))"/>
|
|
</td>
|
|
<td>
|
|
<span t-field="shift.start_time" t-field-options='{"format": "HH:mm"}'/> -
|
|
<span t-field="shift.end_time" t-field-options='{"format": "HH:mm"}'/>
|
|
</td>
|
|
<td>
|
|
<t t-esc="shift.task_type_id.name"/>
|
|
</td>
|
|
</tr>
|
|
</t>
|
|
</tbody>
|
|
</table>
|
|
|
|
<section class="wrap" t-if="not subscribed_shifts">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="alert alert-warning">
|
|
<strong>Warning !</strong> You have not yet signed up to a shift.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="wrap">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<h2>
|
|
Available Shifts
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
<section class="wrap">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<p class="text-center">
|
|
Explanation text
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
<div class="visible-xs" t-foreach="shift_templates" t-as="shift_count_subscribed">
|
|
<t t-set="shift" t-value="shift_count_subscribed[0]" />
|
|
<t t-set="count" t-value="shift_count_subscribed[1]" />
|
|
<t t-set="is_subscribed" t-value="shift_count_subscribed[2]" />
|
|
<t t-set="highlight_class" t-value="'panel-danger' if count >= highlight_rule else 'panel-default'"/>
|
|
<div t-att-class="'panel %s' % highlight_class">
|
|
<div class="panel-heading clearfix">
|
|
<div class="panel-title pull-left">
|
|
<t t-esc="time.strftime('%A %d %B %Y', time.strptime(shift.start_time, '%Y-%m-%d %H:%M:%S'))"/>
|
|
<span t-field="shift.start_time" t-field-options='{"format": "HH:mm"}'/> -
|
|
<span t-field="shift.end_time" t-field-options='{"format": "HH:mm"}'/>
|
|
</div>
|
|
<div class="label label-default pull-right">
|
|
<t t-esc="count"/> space(s)
|
|
</div>
|
|
</div>
|
|
<div class="panel-body clearfix">
|
|
<t t-esc="shift.task_type_id.name"/>
|
|
<t t-if="is_subscribed">
|
|
<div class="label label-success pull-right">
|
|
<span class="fa fa-check" aria-hidden="true"></span>
|
|
Subscribed
|
|
</div>
|
|
</t>
|
|
<t t-if="not is_subscribed">
|
|
<button type="button" class="btn btn-default btn-sm pull-right" data-toggle="modal"
|
|
t-att-data-target="'#subscribe-shift-%s' % shift.id">
|
|
<span class="fa fa-user-plus" aria-hidden="true"></span>
|
|
Subscribe
|
|
</button>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<table class="hidden-xs table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Day</th>
|
|
<th>Date</th>
|
|
<th>Time</th>
|
|
<th>Type of Shift</th>
|
|
<th class="text-center">Available Spaces</th>
|
|
<th class="text-center">Subscribed</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<t t-foreach="shift_templates" t-as="shift_count_subscribed">
|
|
<t t-set="shift" t-value="shift_count_subscribed[0]" />
|
|
<t t-set="count" t-value="shift_count_subscribed[1]" />
|
|
<t t-set="is_subscribed" t-value="shift_count_subscribed[2]" />
|
|
<tr t-attf-class="{{ 'danger' if count >= highlight_rule else '' }}">
|
|
<td>
|
|
<t t-esc="time.strftime('%A', time.strptime(shift.start_time, '%Y-%m-%d %H:%M:%S'))"/>
|
|
</td>
|
|
<td>
|
|
<t t-esc="time.strftime('%d %B %Y', time.strptime(shift.start_time, '%Y-%m-%d %H:%M:%S'))"/>
|
|
</td>
|
|
<td>
|
|
<span t-field="shift.start_time" t-field-options='{"format": "HH:mm"}'/> -
|
|
<span t-field="shift.end_time" t-field-options='{"format": "HH:mm"}'/>
|
|
</td>
|
|
<td>
|
|
<t t-esc="shift.task_type_id.name"/>
|
|
</td>
|
|
<td class="text-center">
|
|
<t t-esc="count"/>
|
|
</td>
|
|
<td class="text-center">
|
|
<t t-if="is_subscribed">
|
|
<div class="label label-success">
|
|
<span class="fa fa-check" aria-hidden="true"></span>
|
|
Subscribed
|
|
</div>
|
|
</t>
|
|
<t t-if="not is_subscribed">
|
|
<button type="button" class="btn btn-default btn-sm" data-toggle="modal"
|
|
t-att-data-target="'#subscribe-shift-%s' % shift.id">
|
|
<span class="fa fa-user-plus" aria-hidden="true"></span>
|
|
Subscribe
|
|
</button>
|
|
</t>
|
|
</td>
|
|
</tr>
|
|
</t>
|
|
</tbody>
|
|
</table>
|
|
|
|
<!-- Subscribe check -->
|
|
<t t-foreach="shift_templates" t-as="shift_count_subscribed">
|
|
<t t-set="shift" t-value="shift_count_subscribed[0]" />
|
|
<t t-set="count" t-value="shift_count_subscribed[1]" />
|
|
<t t-set="is_subscribed" t-value="shift_count_subscribed[2]" />
|
|
<div class="modal fade" t-att-id="'subscribe-shift-%s' % shift.id" tabindex="-1" role="dialog"
|
|
t-att-aria-labelledby="'subscribe-shift-%s-label' % shift.id">
|
|
<div class="modal-dialog" role="document">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
<h4 class="modal-title" t-att-id="'subscribe-shift-%s-label' % shift.id">
|
|
Are you shure you want to subscribe to this shift?
|
|
</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<t t-esc="time.strftime('%A', time.strptime(shift.start_time, '%Y-%m-%d %H:%M:%S'))"/>
|
|
<t t-esc="time.strftime('%d %B %Y', time.strptime(shift.start_time, '%Y-%m-%d %H:%M:%S'))"/>
|
|
<span t-field="shift.start_time" t-field-options='{"format": "HH:mm"}'/> -
|
|
<span t-field="shift.end_time" t-field-options='{"format": "HH:mm"}'/><br/>
|
|
<t t-esc="shift.task_type_id.name"/><br/>
|
|
<t t-esc="count"/> available space(s)
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
|
<a class="btn btn-primary"
|
|
t-att-href="'/shift/%s/subscribe?nexturl=%s' % (shift.id, nexturl)">
|
|
Subscribe
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
</div> <!-- col-md-8 -->
|
|
</div> <!-- row -->
|
|
</div> <!-- container -->
|
|
</section>
|
|
|
|
<div class="oe_structure"/>
|
|
|
|
</t>
|
|
</template>
|
|
</openerp>
|