Browse Source

[IMP] website_shift: Refactor and fix bugs (s0030g)

[IMP] website_shift: Next shifts for regular

Refactor the generation of the next shift for regular worker.
Fix: no next shifts shown when the worker is a new worker and doesn't have any
past shift
Fix: no next shifts shown when the next shift of the worker is not
generated yet.

[ADD] website_shift: Help texts

[FIX] website_shift: Help texts

Fix help text for the status based on the input from the members office

[IMP] website_shift: Help texts translation

Add translation for the help texts.

[IMP] website_shift: Future alert date

The future alert date has moved to beesdoo_shift module. So we use this
one instead of re-compute it in the controller.

[IMP] website_shift: Update manifest

[FIX] website_shift: Better position for help text

On a small screen help texts appear on the top of the page leaving
useful info on the bottom. Now help texts is moved on the bottom of the
page.

[ADD] website_shift: Feedback when subscribing

Add a feedback to the user about the successfulness of the subscription.

[FIX] website_shift: Super-cooperator info modal

The modal showing the super-cooperator information didn't work for the
'fictive' shift generated for regular workers. It's due to the fact that
a 'fictive' shift doesn't have an id. So we should not use it to
generate xml ids. Instead we use the index of the foreach loop.

[FIX] website_shift: Wrong time when crossing DST

The issue: There was a time difference of one hour when the fictive
shifts cross the DST (Daylight Saving Time).

Explanation: Python works with two types of datetime. The datetime
without a timezone called *naive* and the one with a timezone called
*non-naive*. `timedelta()` is used to add a number of day to a datetime.
However, changing a non-naive datetime with `timedelta` just change the
date but leave the timezone unchanged. That's no correct because the new
date may not be in the same timezone because of the DST. If the new date
is after a change of time, due to DST, the timezone of the non-naive
datetime should be updated. Python don't do that because `timedelta`
doesn't realy add days but add the corresponding hours ! So when adding
hours it's consistent to not change the timezone (you can use
`normalize()` to get your datetime in the right timezone after a cross
of DST). To fix this, after adding a `timedelta` the timezone of the
datetime should be set to none and the relocalized with the `localize()`
function of the `pytz` corresponding timezone.

[FIX] website_shift: Translations
pull/128/head
Rémy Taymans 7 years ago
parent
commit
de3bad0aaf
  1. 9
      beesdoo_website_shift/__openerp__.py
  2. 214
      beesdoo_website_shift/controllers/main.py
  3. 619
      beesdoo_website_shift/i18n/fr_BE.po
  4. 202
      beesdoo_website_shift/views/my_shift_website_templates.xml

9
beesdoo_website_shift/__openerp__.py

@ -4,18 +4,19 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{ {
'name': 'BEES coop Shift Website',
'name': 'BEES coop Website Shift',
'summary': """ 'summary': """
Show available shifts for regular and irregular workers in
portal.
Show available shifts for regular and irregular workers on the
website and let workers manage their shifts with an
easy web interface.
""", """,
'description': """ 'description': """
""", """,
'author': 'Rémy Taymans', 'author': 'Rémy Taymans',
'license': 'AGPL-3', 'license': 'AGPL-3',
'version': '9.0.1.0',
'version': '9.0.2.0',
'website': "https://github.com/beescoop/Obeesdoo", 'website': "https://github.com/beescoop/Obeesdoo",
'category': 'Cooperative management', 'category': 'Cooperative management',

214
beesdoo_website_shift/controllers/main.py

@ -5,17 +5,15 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from ast import literal_eval from ast import literal_eval
from copy import copy
from datetime import datetime, timedelta from datetime import datetime, timedelta
from itertools import groupby from itertools import groupby
from pytz import timezone, utc
from openerp import http, fields from openerp import http, fields
from openerp.http import request from openerp.http import request
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT as DATETIME_FORMAT
from openerp.addons.beesdoo_shift.models.planning import float_to_time from openerp.addons.beesdoo_shift.models.planning import float_to_time
PERIOD = 28 # TODO: use the same constant as in 'beesdoo_shift'
from openerp.addons.beesdoo_shift.models.cooperative_status import PERIOD
class WebsiteShiftController(http.Controller): class WebsiteShiftController(http.Controller):
@ -35,6 +33,34 @@ class WebsiteShiftController(http.Controller):
working_mode = user.partner_id.working_mode working_mode = user.partner_id.working_mode
return working_mode == 'exempt' return working_mode == 'exempt'
def add_days(self, datetime, days):
"""
Add the number of days to datetime. This take the DST in
account, meaning that the UTC time will be correct even if the
new datetime has cross the DST boundary.
:param datetime: a naive datetime expressed in UTC
:return: a naive datetime expressed in UTC with the added days
"""
# Ensure that the datetime given is without a timezone
assert datetime.tzinfo is None
# Get current user and user timezone
cur_user = request.env['res.users'].browse(request.uid)
user_tz = timezone(cur_user.tz)
# Convert to UTC
dt_utc = utc.localize(datetime, is_dst=False)
# Convert to user TZ
dt_local = dt_utc.astimezone(user_tz)
# Add the number of days
newdt_local = dt_local + timedelta(days=days)
# If the newdt_local has cross the DST boundary, its tzinfo is
# no longer correct. So it will be replaced by the correct one.
newdt_local = user_tz.localize(newdt_local.replace(tzinfo=None))
# Now the newdt_local has the right DST so it can be converted
# to UTC.
newdt_utc = newdt_local.astimezone(utc)
return newdt_utc.replace(tzinfo=None)
@http.route('/my/shift', auth='user', website=True) @http.route('/my/shift', auth='user', website=True)
def my_shift(self, **kw): def my_shift(self, **kw):
""" """
@ -79,11 +105,13 @@ class WebsiteShiftController(http.Controller):
irregular_enable_sign_up = literal_eval(request.env['ir.config_parameter'].get_param( irregular_enable_sign_up = literal_eval(request.env['ir.config_parameter'].get_param(
'beesdoo_website_shift.irregular_enable_sign_up')) 'beesdoo_website_shift.irregular_enable_sign_up'))
request.session['success'] = False
if (irregular_enable_sign_up if (irregular_enable_sign_up
and cur_user.partner_id.working_mode == 'irregular' and cur_user.partner_id.working_mode == 'irregular'
and shift and shift
and not shift.worker_id): and not shift.worker_id):
shift.worker_id = cur_user.partner_id shift.worker_id = cur_user.partner_id
request.session['success'] = True
return request.redirect(kw['nexturl']) return request.redirect(kw['nexturl'])
@http.route('/shift_irregular_worker', auth='public', website=True) @http.route('/shift_irregular_worker', auth='public', website=True)
@ -126,10 +154,6 @@ class WebsiteShiftController(http.Controller):
""" """
Return template variables for 'beesdoo_website_shift.my_shift_irregular_worker' template Return template variables for 'beesdoo_website_shift.my_shift_irregular_worker' template
""" """
# Get current user
cur_user = request.env['res.users'].browse(request.uid)
cur_cooperative_status = cur_user.partner_id.cooperative_status_ids
# Get config # Get config
irregular_enable_sign_up = literal_eval(request.env['ir.config_parameter'].get_param( irregular_enable_sign_up = literal_eval(request.env['ir.config_parameter'].get_param(
'beesdoo_website_shift.irregular_enable_sign_up')) 'beesdoo_website_shift.irregular_enable_sign_up'))
@ -144,19 +168,13 @@ class WebsiteShiftController(http.Controller):
irregular_enable_sign_up, nexturl irregular_enable_sign_up, nexturl
)) ))
future_alert_date = False
if not cur_cooperative_status.alert_start_time:
# Compute date before which the worker is up to date
today_date = fields.Date.from_string(cur_cooperative_status.today)
delta = (today_date - fields.Date.from_string(cur_cooperative_status.irregular_start_date)).days
future_alert_date = today_date + timedelta(days=(cur_cooperative_status.sr + 1) * PERIOD - delta % PERIOD)
future_alert_date = future_alert_date.strftime('%Y-%m-%d')
# Add feedback about the success or the fail of the subscription
template_context['back_from_subscription'] = False
if 'success' in request.session:
template_context['back_from_subscription'] = True
template_context['success'] = request.session.get('success')
del request.session['success']
template_context.update(
{
'future_alert_date': future_alert_date,
}
)
return template_context return template_context
def my_shift_regular_worker(self): def my_shift_regular_worker(self):
@ -265,42 +283,57 @@ class WebsiteShiftController(http.Controller):
('worker_id', '=', cur_user.partner_id.id)], ('worker_id', '=', cur_user.partner_id.id)],
order="start_time, task_template_id, task_type_id", order="start_time, task_template_id, task_type_id",
) )
# We don't use record to show the next shift as we need to add
# fictive one for regular worker. I say 'fictive' one because
# the next shifts for the regular worker are generated on a
# PERIOD basis and database doesn't contain more than a PERIOD
# of shift. So a regular worker will always see only one
# next shift, the one that is generated and stored in the
# database. Meaning that if we want to show the next shifts
# for an entire year, we need to compute the dates for the next
# shifts and create it. But we want to keep it 'fictive',
# meaning that we don't want to write them in the database.
# So here we convert recordset into Shift object.
# Create a list of record in order to add new record to it later
subscribed_shifts = [] subscribed_shifts = []
for shift_rec in subscribed_shifts_rec:
shift = Shift(shift_rec)
subscribed_shifts.append(shift)
# We want to keep a copy of the shift that will serve as a
# master to create the fictive shifts.
if shift_rec.worker_id in shift_rec.task_template_id.worker_ids:
main_shift = shift
main_shift_rec = shift_rec
for rec in subscribed_shifts_rec:
subscribed_shifts.append(rec)
# In case of regular worker, we compute his fictive next shifts # In case of regular worker, we compute his fictive next shifts
# according to the regular_next_shift_limit # according to the regular_next_shift_limit
if self.is_user_regular() and subscribed_shifts and main_shift:
if self.is_user_regular():
# Compute main shift
nb_subscribed_shifts = len(subscribed_shifts)
if nb_subscribed_shifts > 0:
main_shift = subscribed_shifts[-1]
else:
task_template = request.env['beesdoo.shift.template'].sudo().search(
[('worker_ids', 'in', cur_user.partner_id.id)],
limit=1,
)
main_shift = request.env['beesdoo.shift.shift'].sudo().search(
[('task_template_id', '=', task_template[0].id)],
order="start_time desc",
limit=1,
)
# Get config # Get config
regular_next_shift_limit = int(request.env['ir.config_parameter'].get_param( regular_next_shift_limit = int(request.env['ir.config_parameter'].get_param(
'beesdoo_website_shift.regular_next_shift_limit')) 'beesdoo_website_shift.regular_next_shift_limit'))
for i in range(1, regular_next_shift_limit):
# Compute the new date for the created shift
start_time = fields.Datetime.from_string(main_shift_rec.start_time)
start_time = (start_time + timedelta(days=i*PERIOD)).strftime(DATETIME_FORMAT)
for i in range(nb_subscribed_shifts, regular_next_shift_limit):
# Create the fictive shift # Create the fictive shift
shift = copy(main_shift)
shift.id = -i # We give negative id 'caus this shift doesn't exist in database
shift.start_day = start_time
shift.start_date = start_time
shift = main_shift.new()
shift.name = main_shift.name
shift.task_template_id = shift.task_template_id
shift.planning_id = main_shift.planning_id
shift.task_type_id = main_shift.task_type_id
shift.worker_id = main_shift.worker_id
shift.stage_id = main_shift.stage_id
shift.super_coop_id = main_shift.super_coop_id
shift.color = main_shift.color
shift.is_regular = main_shift.is_regular
shift.replaced_id = main_shift.replaced_id
shift.revert_info = main_shift.revert_info
# Set new date
shift.start_time = self.add_days(
fields.Datetime.from_string(main_shift.start_time),
days=i*PERIOD
)
shift.end_time = self.add_days(
fields.Datetime.from_string(main_shift.end_time),
days=i*PERIOD
)
# Add the fictive shift to the list of shift
subscribed_shifts.append(shift) subscribed_shifts.append(shift)
return { return {
@ -350,88 +383,3 @@ class WebsiteShiftController(http.Controller):
return { return {
'status': cur_user.partner_id.cooperative_status_ids, 'status': cur_user.partner_id.cooperative_status_ids,
} }
class Shift(object):
"""
Represent a shift with all useful information in a format that is directly printable in a template
"""
def __init__(self, shift_rec=None):
self.id = 0
self._start_day = ''
self._start_date = ''
self._start_time = ''
self._end_time = ''
self.task_type_name = ''
self.super_coop_name = ''
self.super_coop_phone = ''
self.super_coop_email = ''
if shift_rec:
self.update(shift_rec)
def update(self, shift_rec=None):
""" Fill in self with data in the given record"""
if shift_rec:
self.id = shift_rec.id
self.start_day = shift_rec.start_time
self.start_date = shift_rec.start_time
self.start_time = shift_rec.start_time
self.end_time = shift_rec.end_time
if shift_rec.task_type_id:
self.task_type_name = shift_rec.task_type_id.name
if shift_rec.super_coop_id:
self.super_coop_name = shift_rec.super_coop_id.name
self.super_coop_phone = shift_rec.super_coop_id.phone
self.super_coop_email = shift_rec.super_coop_id.email
# Properties
@property
def start_day(self):
return self._start_day
@property
def start_date(self):
return self._start_date
@property
def start_time(self):
return self._start_time
@property
def end_time(self):
return self._end_time
# Setters
@start_day.setter
def start_day(self, datetime_str):
self._start_day = datetime.strptime(datetime_str, DATETIME_FORMAT).strftime('%A')
@start_date.setter
def start_date(self, datetime_str):
self._start_date = datetime.strptime(datetime_str, DATETIME_FORMAT).strftime('%d %B %Y')
@start_time.setter
def start_time(self, datetime_str):
self._start_time = datetime.strptime(datetime_str, DATETIME_FORMAT).strftime('%H:%M')
@end_time.setter
def end_time(self, datetime_str):
self._end_time = datetime.strptime(datetime_str, DATETIME_FORMAT).strftime('%H:%M')
# Deleters
@start_day.deleter
def start_day(self):
del self._start_day
@start_date.deleter
def start_date(self):
del self._start_date
@start_time.deleter
def start_time(self):
del self._start_time
@end_time.deleter
def end_time(self):
del self._end_time

619
beesdoo_website_shift/i18n/fr_BE.po

@ -2,14 +2,12 @@
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * beesdoo_portal_shift # * beesdoo_portal_shift
# #
# Tanslators:
# Rémy Taymans <remytaymans@gmail.com>, 2017
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n" "Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-29 09:02+0000\n" "POT-Creation-Date: 2017-09-29 09:02+0000\n"
"PO-Revision-Date: 2017-09-29 11:08+0200\n"
"PO-Revision-Date: 2018-04-28 16:34+0200\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -19,104 +17,601 @@ msgstr ""
"Language: fr_BE\n" "Language: fr_BE\n"
"X-Generator: Poedit 1.8.11\n" "X-Generator: Poedit 1.8.11\n"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.task_template
msgid "Available Tasks Templates for Regular Workers"
msgstr "Créneaux disponibles pour les travailleurs réguliers"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
msgid "<span class=\"fa fa-check\" aria-hidden=\"true\"/>\n"
" Subscribed"
msgstr "<span class=\"fa fa-check\" aria-hidden=\"true\"/>\n"
" Inscrit"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
msgid "<span class=\"fa fa-check\" aria-hidden=\"true\"/>\n"
" Subscribed"
msgstr "<span class=\"fa fa-check\" aria-hidden=\"true\"/>\n"
" Inscrit"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_next_shifts
msgid "<span class=\"fa fa-info\" aria-hidden=\"true\"/>\n"
" Super Cooperator Info"
msgstr "<span class=\"fa fa-info\" aria-hidden=\"true\"/>\n"
" Info Supercoopérateur"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
msgid "<span class=\"fa fa-user-plus\" aria-hidden=\"true\"/>\n"
" Subscribe"
msgstr "<span class=\"fa fa-user-plus\" aria-hidden=\"true\"/>\n"
" Inscription"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
msgid "<span class=\"fa fa-user-plus\" aria-hidden=\"true\"/>\n"
" Subscribe"
msgstr "<span class=\"fa fa-user-plus\" aria-hidden=\"true\"/>\n"
" Inscription"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "<span class=\"label label-warning\">NSC</span> : This flag tells you that the shift needs a Super Co-operator"
msgstr "<span class=\"label label-warning\">NSC</span> : Ceci vous informe que le créneau n'a pas encore de supercoopérateur."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.help_text_irregular_worker
msgid "<strong>Alert:</strong>\n"
" If you are in alert status, that means you didn't anticipate enough shifts.\n"
" Your counter is now negative, directly to -2.\n"
" You have 4 weeks to do 2 shifts to be up to date.\n"
" For the compensation shifts, subscribe like you do for a normal shift.\n"
" Be careful, in addition to these 2 shifts, don't forget to do your normal shift in the same delay to prevent to be in the same situation next month."
msgstr "<strong>Alerte :</strong>\n"
"Si vous êtes en alerte, c'est que vous n'avez pas anticipé assez de shifts. Votre compteur est donc passé en négatif, directement à -2. Vous avez donc 4 semaines pour effectuer deux shifts pour vous remettre à jour. Pour les shifts de rattrapage, inscrivez-vous comme pour tout shift normal. Attention, en plus de ces deux shifts de retard, n’oubliez pas de faire votre shift normal dans les mêmes délais, pour éviter d’avoir le même problème le mois prochain."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.help_text_regular_worker
msgid "<strong>Alert:</strong>\n"
" If you are in alert status, that means you didn't do your last shift. You have\n"
" until your next scheduled shift to do your compensation shift according to your situation.\n"
" Your compensation is either simple or double. If you don't how how many compensation shifts you have to do, please contact your supercooperator.\n"
" To do your compensation shift, no need to subscribe in advance : you come at the beginning of the shift that best suits you.\n"
" Add your name and the indication \"compensation shift\" on the attendance list.\n"
" No panic, you still can come and shop, so can your eaters if you have any."
msgstr "<strong>Alerte : </strong>\n"
"Si vous êtes en alerte c'est que vous n'avez pas effectué votre dernier shift. Vous avez donc jusqu'à votre prochain shift de prévu pour faire votre compensation suivant la situation. Celle-ci sera simple ou double. Si vous ne savez pas si vous avez une simple ou une double compensation, contactez votre supercoopérateur. Pour les shifts de compensation, pas besoin d'inscription : vous vous présentez au début d'un shift au créneau qui vous convient le mieux. Ajoutez sur la feuille de présence votre nom/prénom + “shift de compensation”.\n"
"Mais pas de panique, vous pouvez toujours venir faire vos courses (ainsi que vos mangeurs le cas échéant)."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.help_text_irregular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.help_text_regular_worker
msgid "<strong>Auto-Extension:</strong>\n"
" You didn't manage to do your compensation shifts in the delay but you benefit from the auto-extension.\n"
" This is two more weeks to do your compensation shifts. You can shop.\n"
" If you don't do your compensation shifts, you'll be suspended."
msgstr "<strong>Délai de grâce :</strong>\n"
"Vous n'êtes pas parvenu à effectuer vos compensations dans les délais mais vous bénéficiez d’un délai de grâce. Il s’agit de deux semaines supplémentaires pour effectuer vos compensations tout en continuant de pouvoir faire vos courses. Si vous ne les effectuez pas, vous serez suspendu·e."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_past_shifts
msgid "<strong>Info !</strong> You don't have any past shift."
msgstr "<strong>Info !</strong> Vous n'avez pas de shift passé."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.help_text_common
msgid "<strong>Info!</strong> If you do not agree with your status, please contact the members office by mail (membre@bees-coop.be) or during the open hours of the office (Monday 5PM to 7:30PM, Wednesday 5PM to 7:30 PM and Friday 2:30PM to 5 PM)."
msgstr "<strong>Info !</strong> Si vous n’êtes pas d’accord avec votre statut, il peut s’agir d’une erreur de notre part. Contactez alors le bureau des membres par mail (membre@bees-coop.be) ou en personne pendant les heures d'ouverture du bureau : le lundi de 17h00 à 19h30, le mercredi de 17h à 19h30 et le vendredi de 14h30 à 17h (à l'étage du magasin)."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.help_text_regular_worker
msgid "<strong>Suspended:</strong>\n"
" If you are suspended, that means you didn't come to a shift and you didn't do you compensation shifts in the delay (4 weeks).\n"
" You cannot shop (so as your eaters). But no need to panic : a two-weeks delay is activable on demand at the entrance of the supermarket.\n"
" You will be able to shop during 2 more weeks and to put your situation in order.\n"
" To do your compensation shift, no need to subscribe in advance : you come at the beginning of the shift that best suits you.\n"
" Add your name and the indication \"compensation shift\" on the attendance list."
msgstr "<strong>Suspendu·e :</strong>\n"
"Si vous êtes suspendu·e, c’est que vous avez raté un shift et vous n'avez pas effectué votre/vos shifts de compensation dans les délais prévus (4 semaines). Vous ne pouvez plus faire vos courses (tout comme vos mangeurs). Mais pas de panique : un délai de grâce de 2 semaines est activable sur simple demande à l’accueil du magasin. Celui-ci vous octroie 2 semaines supplémentaires pour faire vos course et vous remettre en ordre. Si vous ne savez pas si vous avez une simple ou une double compensation, contactez votre supercoopérateur. Pour les shifts de compensation, pas besoin d'inscription : vous vous présentez au début d'un shift au créneau qui vous convient le mieux. Ajoutez sur la feuille de présence votre nom/prénom + “shift de compensation”."
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.shift_template
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.help_text_irregular_worker
msgid "<strong>Suspended:</strong>\n"
" You did not anticipate enough shifts and you did not come back to a normal situation in the delay.\n"
" You cannot shop anymore, nor can your eaters.\n"
" But no need to panic : a two-weeks delay is activable on demand at the entrance of the supermarket.\n"
" You will be able to shop during 2 more weeks and to put your situation in order.\n"
" For the compensation shifts, subscribe like you do for a normal shift."
msgstr "<strong>Suspendu·e:</strong>\n"
"Vous n'avez pas anticipé suffisamment de shifts et n’avez pas rattrapé votre retard dans les délais prévus. Vous ne pouvez plus faire vos courses (tout comme vos mangeurs). Mais pas de panique, nous pouvons vous proposer un délai de grâce de 2 semaines pour effectuer vos shifts de rattrapage. Vous pouvez le demander à l'accueil du magasin. Cela vous permettra de garder le droit de faire vos courses dans ce délai. Pour les shifts de rattrapage, inscrivez-vous comme pour tout shift normal."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.help_text_regular_worker
msgid "<strong>Unsubscribed:</strong>\n"
" You did not attend two consecutive shifts. You are now unsubscribed. You cannot shop (nor can your eaters) nor come to work.\n"
" To subscribe again, please contact membre@bees-coop.be or come to the members office during the opening hours."
msgstr "<strong>Désinscrit·e :</strong>\n"
"Vous avez raté deux shifts consécutifs. Vous êtes donc désinscrit·e. Vous ne pouvez plus venir faire vos courses (tout comme vos mangeurs), ni venir travailler. Pour vous réinscrire, contactez membre@bees-coop.be ou passez au bureau des membres pendant les heures d'ouverture."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.help_text_irregular_worker
msgid "<strong>Unsubscribed:</strong>\n"
" Your counter is negative and you haven't come to work for more than 8 weeks.\n"
" You are unsubscribed. You cannot shop nor can your eaters.\n"
" To subscribe again of if it's a mistake, please contact membre@bees-coop.be or come to the members office during the opening hours."
msgstr "<strong>Désinscrit·e :</strong>\n"
"Vous êtes en négatif sur votre compteur et vous n'êtes pas venu travailler depuis plus de 8 semaines.\n"
"Vous êtes donc désinscrit·e. Vous ne pouvez plus venir faire vos courses (tout comme vos mangeurs). Pour vous réinscrire ou si c'est une erreur de notre part, contactez membre@bees-coop.be ou passez au bureau des membres pendant les heures d'ouverture."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.help_text_common
msgid "<strong>Up To Date:</strong>\n"
" That's perfect! You are in order. Thanks a lot. You can come and shop, so can your eaters if you have any."
msgstr "<strong>A jour :</strong>\n"
"C'est parfait! Vous êtes en ordre de travail. Merci beaucoup. Vous pouvez venir faire vos courses (ainsi que vos mangeurs le cas échéant)."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_next_shifts
msgid "<strong>Warning !</strong> For the moment public holidays are not taken into account. If your shift\n"
" occures during a public holiday, you do not have to do it."
msgstr "<strong>Attention !</strong> Pour le moment, les congés publics ne sont pas pris en compte. Si votre shift tombe durant un congé public, vous ne devez pas le faire."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_next_shifts
msgid "<strong>Warning !</strong> You have not yet signed up to a shift."
msgstr "<strong>Attention !</strong> Vous n'êtes inscrit à aucun shift."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.view_website_shift_config_irregular
#: model:ir.ui.view,arch_db:beesdoo_website_shift.view_website_shift_config_regular
msgid "Apply"
msgstr "Appliquer"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
msgid "Are you shure you want to subscribe to this shift?"
msgstr "Etes-vous sûr de vouloir vous inscrire à ce shift ?"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_irregular_worker
msgid "Available Shifts"
msgstr "Shifts disponibles"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_irregular_worker
msgid "Available Shifts for Irregular Workers" msgid "Available Shifts for Irregular Workers"
msgstr "Shifts disponibles pour les travailleurs volants" msgstr "Shifts disponibles pour les travailleurs volants"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.shift_template
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "Available Spaces"
msgstr "&amp;nbsp;Places disponibles"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "Available Tasks Templates for Regular Workers"
msgstr "Créneaux disponibles pour les travailleurs réguliers"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_worker_status_common
msgid "Begin of Holiday:"
msgstr "Début de congé :"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.view_website_shift_config_irregular
#: model:ir.ui.view,arch_db:beesdoo_website_shift.view_website_shift_config_regular
msgid "Cancel"
msgstr "Annuler"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_next_shifts
msgid "Close"
msgstr "Fermer"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_regular_worker
msgid "Compensation Shift:"
msgstr "Shift de compensation :"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.view_website_shift_config_irregular
msgid "Configure Website Shift Irregular Worker"
msgstr "Configure Website Shift Irregular Worker"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.view_website_shift_config_regular
msgid "Configure Website Shift Regular Worker"
msgstr "Configure Website Shift Regular Worker"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_create_uid
msgid "Created by"
msgstr "Créé par"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_create_date
msgid "Created on"
msgstr "Créé le"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_next_shifts
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_past_shifts
msgid "Date" msgid "Date"
msgstr "Date" msgstr "Date"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.shift_template
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_next_shifts
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_past_shifts
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "Day" msgid "Day"
msgstr "Jour" msgstr "Jour"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.shift_template
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.task_template
msgid "Available Spaces"
msgstr "Places disponibles"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_display_name
msgid "Display Name"
msgstr "Nom affiché"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.task_template
msgid "Subscribe via the member office or via"
msgstr "Inscription au bureau des membres ou via"
#. module: beesdoo_website_shift
#: model:ir.model.fields,help:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_irregular_enable_sign_up
msgid "Enable shift sign up for irregular worker"
msgstr "Autoriser l'inscription pour les volants"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.shift_template
msgid "Subscribe via"
msgstr "Inscription via"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_worker_status_common
msgid "End of Holiday:"
msgstr "Fin de congé :"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_exempted_worker
msgid "Exempt Reason:"
msgstr "Raison d'exemption :"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.help_text_common
msgid "Explanation of the status:"
msgstr "Explication des statuts"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_irregular_worker
msgid "Future Date of Alert:"
msgstr "A jour jusqu'à :"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.help_text_title
msgid "Help"
msgstr "Aide"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_hide_rule
msgid "Hide rule"
msgstr "Règle d'affichage"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_highlight_rule
msgid "Highlight rule"
msgstr "Règle de mise en évidence"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_id
msgid "ID"
msgstr "ID"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_regular_worker
msgid "In Alert Since:"
msgstr "En alerte depuis :"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_regular_worker
msgid "In Extension Since:"
msgstr "En extension depuis :"
#. module: beesdoo_website_shift
#: model:ir.ui.menu,name:beesdoo_website_shift.menu_website_shift_irregular
msgid "Irregular Shift"
msgstr "Shift irrégulier"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_irregular_enable_sign_up
msgid "Irregular enable sign up"
msgstr "Permettre l'inscription des volants"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.task_template
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_irregular_past_shift_limit
msgid "Irregular past shift limit"
msgstr "Limite de shifts volants passés"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_irregular_shift_limit
msgid "Irregular shift limit"
msgstr "Limite de shifts volants"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_irregular_worker
msgid "Last Absence Date:"
msgstr "Date de dernière absence :"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings___last_update
msgid "Last Modified on"
msgstr "Dernière modification le"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_write_uid
msgid "Last Updated by"
msgstr "Mis à jour par"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_write_date
msgid "Last Updated on"
msgstr "Mis à jour le"
#. module: beesdoo_website_shift
#: model:ir.model.fields,help:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_irregular_past_shift_limit
msgid "Maximum past shift that will be shown for irregular worker"
msgstr "Nombre maximal de shifts à afficher pour les volants"
#. module: beesdoo_website_shift
#: model:ir.model.fields,help:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_regular_past_shift_limit
msgid "Maximum past shift that will be shown for regular worker"
msgstr " Nombre maximal de shifts à afficher pour les réguliers "
#. module: beesdoo_website_shift
#: model:ir.model.fields,help:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_irregular_shift_limit
msgid "Maximum shift that will be shown"
msgstr "Nombre maximum de shifts à montrer"
#. module: beesdoo_website_shift
#: model:ir.model.fields,help:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_regular_next_shift_limit
msgid "Maximun number of next shift that will be shown"
msgstr "Nombre maximum de prochains shifts à montrer"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_link
msgid "My Shift"
msgstr "Mes shifts"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "NSC"
msgstr "NSC"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
msgid "Need Super Co-operator"
msgstr "Besoin de Supercoopérateur"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "Not yet" msgid "Not yet"
msgstr "Pas encore" msgstr "Pas encore"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.shift_template
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_irregular_worker
msgid "Number of Absence:"
msgstr "Nombre d'absence :"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_irregular_worker
msgid ""
"Please, subscribe, in priority, to the highlighted shifts. To sign up to a shift click on the\n"
" subscribe button. Notice that you can not unsubscribe online. To unsubscribe to a shift, please,\n"
" contact us."
msgstr ""
"Inscrivez-vous en priorité aux shifts mis en évidence en couleur.\n"
" Pour s'inscrire, cliquer sur le bouton \"S'inscrire\".\n"
" Pour vous désinscrire à un shift, contactez-nous."
#. module: beesdoo_website_shift
#: model:ir.ui.menu,name:beesdoo_website_shift.menu_website_shift_regular
msgid "Regular Shift"
msgstr "Shift régulier"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_regular_next_shift_limit
msgid "Regular next shift limit"
msgstr "Limite pour le prochain shift régulier"
#. module: beesdoo_website_shift
#: model:ir.model.fields,field_description:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_regular_past_shift_limit
msgid "Regular past shift limit"
msgstr "Limite de shifts réguliers passés"
#. module: beesdoo_website_shift
#: model:ir.ui.menu,name:beesdoo_website_shift.menu_website_shift_root
msgid "Shift" msgid "Shift"
msgstr "Shift" msgstr "Shift"
#. module: beesdoo_portal_shift
#: model:website.menu,name:beesdoo_portal_shift.menu_work_irregular
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_irregular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_regular_worker
msgid "Shift in Advance:"
msgstr "Shift en avance :"
#. module: beesdoo_website_shift
#: model:website.menu,name:beesdoo_website_shift.menu_work_irregular
msgid "Shifts Irregular" msgid "Shifts Irregular"
msgstr "Shifts"
msgstr "Shifts volants"
#. module: beesdoo_portal_shift
#: model:website.menu,name:beesdoo_portal_shift.menu_work_regular
#. module: beesdoo_website_shift
#: model:website.menu,name:beesdoo_website_shift.menu_work_regular
msgid "Shifts Regular" msgid "Shifts Regular"
msgstr "Créneaux"
msgstr "Créneaux réguliers"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_past_shifts
msgid "Status"
msgstr "Statut"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_worker_status_common
msgid "Status:"
msgstr "Statut :"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
msgid "Subscribe"
msgstr "S'inscrire"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.task_template
msgid "Super Cooperator"
msgstr "Super-coopérateur"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_irregular_worker
msgid "Subscribe via"
msgstr "Nous avons spécialement besoin d'aide pour les shifts&amp;nbsp; pour lesquels il y a au moins 3 places disponibles. Inscriptions via"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "Subscribe via the member office or via"
msgstr "Si vous ne trouvez pas de créneau qui vous convienne, prenez contact avec le bureau des membres ou via"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
msgid "Subscribed"
msgstr "Inscrit"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "Super Co-operator"
msgstr "Supercoopérateur"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_next_shifts
msgid "Super Cooperator Info"
msgstr "Info supercoopérateur"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.task_template
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "Task Template" msgid "Task Template"
msgstr "Créneau"
msgstr "&amp;nbsp;Créneau"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.shift_template
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.task_template
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_next_shifts
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_past_shifts
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "Time" msgid "Time"
msgstr "Heures" msgstr "Heures"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.shift_template
#. module: beesdoo_website_shift
#: model:ir.model.fields,help:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_hide_rule
msgid "Treshold ((available space)/(max space)) in percentage of available space under wich the shift is hidden"
msgstr "Seuil ((places dispos)/(max places)) en pourcentage de places disponibles en-dessous duquel les shifts seront cachés."
#. module: beesdoo_website_shift
#: model:ir.model.fields,help:beesdoo_website_shift.field_beesdoo_website_shift_config_settings_highlight_rule
msgid "Treshold of available space in a shift that trigger the highlight of the shift"
msgstr "Seuil de places disponibles dans un créneau qui déclenche la mise en avant d'un shift."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_next_shifts
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_past_shifts
msgid "Type of Shift" msgid "Type of Shift"
msgstr "Type de shift"
msgstr "&amp;nbsp;Type de shift"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.task_template
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "Type of Task" msgid "Type of Task"
msgstr "Type de créneau"
msgstr "&amp;nbsp;Type de créneau"
#. module: beesdoo_website_shift
#: model:ir.actions.act_window,name:beesdoo_website_shift.action_website_shift_config_irregular
msgid "Website Shift Settings Irregular Worker"
msgstr "Configuration de shifts pour volant (website)"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.task_template
#. module: beesdoo_website_shift
#: model:ir.actions.act_window,name:beesdoo_website_shift.action_website_shift_config_regular
msgid "Website Shift Settings Regular Worker"
msgstr "Configuration de shifts pour régulier (website)"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "Week" msgid "Week"
msgstr "Semaine" msgstr "Semaine"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.task_template
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_worker_status_title
msgid "Worker status"
msgstr "Statut du travailleur"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_worker_status_common
msgid "Working Mode:"
msgstr "Régime de travail : "
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "Yes" msgid "Yes"
msgstr "Oui" msgstr "Oui"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.task_template
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_worker_status_common
msgid "You are a Super Cooperator"
msgstr "Vous êtes un supercoopérateur"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_exempted_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_non_worker
msgid "You don't have to participate to shift system."
msgstr "Vous ne devez pas participer au système de shift."
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_next_shifts
msgid "Your next shifts"
msgstr "Vos prochains shifts"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_past_shifts
msgid "Your past shifts"
msgstr "Vos shifts passés"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.my_shift_title
msgid "Your shifts"
msgstr "Vos shifts"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
msgid "available space(s)"
msgstr "Place(s) disponible(s)"
#. module: beesdoo_website_shift
#: model:ir.model,name:beesdoo_website_shift.model_beesdoo_website_shift_config_settings
msgid "beesdoo.website.shift.config.settings"
msgstr "beesdoo.website.shift.config.settings"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "full"
msgstr "complet"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "membre@bees-coop.be" msgid "membre@bees-coop.be"
msgstr "membre@bees-coop.be"
msgstr "membre@bees-coop.be<br/>"
#. module: beesdoo_portal_shift
#: model:ir.ui.view,arch_db:beesdoo_portal_shift.shift_template
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.available_shift_irregular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_template_regular_worker
#: model:ir.ui.view,arch_db:beesdoo_website_shift.task_template
msgid "space(s)"
msgstr "place(s)"
#. module: beesdoo_website_shift
#: model:ir.ui.view,arch_db:beesdoo_website_shift.public_shift_irregular_worker
msgid "volant@bees-coop.be" msgid "volant@bees-coop.be"
msgstr "volant@bees-coop.be"
msgstr "membre@bees-coop.be"

202
beesdoo_website_shift/views/my_shift_website_templates.xml

@ -135,17 +135,17 @@
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading clearfix"> <div class="panel-heading clearfix">
<div class="panel-title"> <div class="panel-title">
<t t-esc="'%s %s' % (shift.start_day, shift.start_date)"/>
<span t-esc="shift.start_time"/> -
<span t-esc="shift.end_time"/>
<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> </div>
<div class="panel-body"> <div class="panel-body">
<t t-esc="shift.task_type_name"/>
<t t-esc="shift.task_type_id.name"/>
<button type="button" class="btn btn-default btn-sm pull-right" <button type="button" class="btn btn-default btn-sm pull-right"
t-if="shift.super_coop_name"
t-if="shift.super_coop_id.name"
data-toggle="modal" data-toggle="modal"
t-att-data-target="'#super_coop-shift-%s' % shift.id">
t-att-data-target="'#super_coop-shift-%s' % shift_index">
<span class="fa fa-info" aria-hidden="true"></span> <span class="fa fa-info" aria-hidden="true"></span>
Super Cooperator Info Super Cooperator Info
</button> </button>
@ -167,23 +167,23 @@
<t t-foreach="subscribed_shifts" t-as="shift"> <t t-foreach="subscribed_shifts" t-as="shift">
<tr> <tr>
<td> <td>
<t t-esc="shift.start_day"/>
<t t-esc="time.strftime('%A', time.strptime(shift.start_time, '%Y-%m-%d %H:%M:%S'))"/>
</td> </td>
<td> <td>
<t t-esc="shift.start_date"/>
<t t-esc="time.strftime('%d %B %Y', time.strptime(shift.start_time, '%Y-%m-%d %H:%M:%S'))"/>
</td> </td>
<td> <td>
<span t-esc="shift.start_time"/> -
<span t-esc="shift.end_time"/>
<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>
<td> <td>
<t t-esc="shift.task_type_name"/>
<t t-esc="shift.task_type_id.name"/>
</td> </td>
<td class="text-center"> <td class="text-center">
<button type="button" class="btn btn-default btn-sm" <button type="button" class="btn btn-default btn-sm"
t-if="shift.super_coop_name"
t-if="shift.super_coop_id.name"
data-toggle="modal" data-toggle="modal"
t-att-data-target="'#super_coop-shift-%s' % shift.id">
t-att-data-target="'#super_coop-shift-%s' % shift_index">
<span class="fa fa-info" aria-hidden="true"></span> <span class="fa fa-info" aria-hidden="true"></span>
</button> </button>
</td> </td>
@ -194,23 +194,23 @@
<!-- Super Cooperator info modal --> <!-- Super Cooperator info modal -->
<t t-foreach="subscribed_shifts" t-as="shift"> <t t-foreach="subscribed_shifts" t-as="shift">
<div class="modal fade" t-if="shift.super_coop_name" t-att-id="'super_coop-shift-%s' % shift.id" tabindex="-1" role="dialog"
t-att-aria-labelledby="'super_coop-shift-%s-label' % shift.id">
<div class="modal fade" t-if="shift.super_coop_id.name" t-att-id="'super_coop-shift-%s' % shift_index" tabindex="-1" role="dialog"
t-att-aria-labelledby="'super_coop-shift-%s-label' % shift_index">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"> <button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span> <span aria-hidden="true">×</span>
</button> </button>
<h4 class="modal-title" t-att-id="'super_coop-shift-%s-label' % shift.id">
<t t-esc="shift.super_coop_name"/>
<h4 class="modal-title" t-att-id="'super_coop-shift-%s-label' % shift_index">
<t t-esc="shift.super_coop_id.name"/>
</h4> </h4>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<i class="fa fa-phone" aria-hidden="true"></i> <t t-esc="shift.super_coop_phone"/><br/>
<i class="fa fa-phone" aria-hidden="true"></i> <t t-esc="shift.super_coop_id.phone"/><br/>
<i class="fa fa-envelope" aria-hidden="true"></i> <i class="fa fa-envelope" aria-hidden="true"></i>
<a t-att-href="'mailto:%s' % shift.super_coop_email">
<t t-esc="shift.super_coop_email"/>
<a t-att-href="'mailto:%s' % shift.super_coop_id.email">
<t t-esc="shift.super_coop_id.email"/>
</a> </a>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
@ -458,6 +458,112 @@
</template> </template>
<!-- Help Texts -->
<template
id="help_text_title"
name="Help Text Title">
<div class="oe_structure"/>
<section class="wrap">
<div class="container">
<div class="row">
<div class="col-md-12">
<h2>
Help
</h2>
</div>
</div>
</div>
</section>
<div class="oe_structure"/>
</template>
<template
id="help_text_common"
name="Help Text Common">
<div class="oe_structure alert alert-info">
<strong>Info!</strong> If you do not agree with your status, please contact the members office by mail (membre@bees-coop.be) or during the open hours of the office (Monday 5PM to 7:30PM, Wednesday 5PM to 7:30 PM and Friday 2:30PM to 5 PM).
</div>
<p class="oe_structure">
Explanation of the status:
</p>
<p class="oe_structure">
<strong>Up To Date:</strong>
That's perfect! You are in order. Thanks a lot. You can come and shop, so can your eaters if you have any.
</p>
</template>
<template
id="help_text_regular_worker"
name="Help Text for Regular Worker">
<p class="oe_structure">
<strong>Alert:</strong>
If you are in alert status, that means you didn't do your last shift. You have
until your next scheduled shift to do your compensation shift according to your situation.
Your compensation is either simple or double. If you don't how how many compensation shifts you have to do, please contact your supercooperator.
To do your compensation shift, no need to subscribe in advance : you come at the beginning of the shift that best suits you.
Add your name and the indication "compensation shift" on the attendance list.
No panic, you still can come and shop, so can your eaters if you have any.
</p>
<p class="oe_structure">
<strong>Suspended:</strong>
If you are suspended, that means you didn't come to a shift and you didn't do you compensation shifts in the delay (4 weeks).
You cannot shop (so as your eaters). But no need to panic : a two-weeks delay is activable on demand at the entrance of the supermarket.
You will be able to shop during 2 more weeks and to put your situation in order.
To do your compensation shift, no need to subscribe in advance : you come at the beginning of the shift that best suits you.
Add your name and the indication "compensation shift" on the attendance list.
</p>
<p class="oe_structure">
<strong>Auto-Extension:</strong>
You didn't manage to do your compensation shifts in the delay but you benefit from the auto-extension.
This is two more weeks to do your compensation shifts. You can shop.
If you don't do your compensation shifts, you'll be suspended.
</p>
<p class="oe_structure">
<strong>Unsubscribed:</strong>
You did not attend two consecutive shifts. You are now unsubscribed. You cannot shop (nor can your eaters) nor come to work.
To subscribe again, please contact membre@bees-coop.be or come to the members office during the opening hours.
</p>
</template>
<template
id="help_text_irregular_worker"
name="Help Text for Irregular Worker">
<p class="oe_structure">
<strong>Alert:</strong>
If you are in alert status, that means you didn't anticipate enough shifts.
Your counter is now negative, directly to -2.
You have 4 weeks to do 2 shifts to be up to date.
For the compensation shifts, subscribe like you do for a normal shift.
Be careful, in addition to these 2 shifts, don't forget to do your normal shift in the same delay to prevent to be in the same situation next month.
</p>
<p class="oe_structure">
<strong>Suspended:</strong>
You did not anticipate enough shifts and you did not come back to a normal situation in the delay.
You cannot shop anymore, nor can your eaters.
But no need to panic : a two-weeks delay is activable on demand at the entrance of the supermarket.
You will be able to shop during 2 more weeks and to put your situation in order.
For the compensation shifts, subscribe like you do for a normal shift.
</p>
<p class="oe_structure">
<strong>Auto-Extension:</strong>
You didn't manage to do your compensation shifts in the delay but you benefit from the auto-extension.
This is two more weeks to do your compensation shifts. You can shop.
If you don't do your compensation shifts, you'll be suspended.
</p>
<p class="oe_structure">
<strong>Unsubscribed:</strong>
Your counter is negative and you haven't come to work for more than 8 weeks.
You are unsubscribed. You cannot shop nor can your eaters.
To subscribe again of if it's a mistake, please contact membre@bees-coop.be or come to the members office during the opening hours.
</p>
</template>
<!-- Shift for non-worker --> <!-- Shift for non-worker -->
<template <template
id="my_shift_non_worker" id="my_shift_non_worker"
@ -496,7 +602,7 @@
<section class="wrap"> <section class="wrap">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-xs-12 col-md-4 pull-right">
<div class="col-xs-12 col-md-4 pull-right text-justify">
<t t-call="beesdoo_website_shift.my_shift_worker_status_title"/> <t t-call="beesdoo_website_shift.my_shift_worker_status_title"/>
@ -549,7 +655,7 @@
<section class="wrap"> <section class="wrap">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-xs-12 col-md-4 pull-right">
<div class="col-xs-12 col-md-4 pull-right text-justify">
<t t-call="beesdoo_website_shift.my_shift_worker_status_title"/> <t t-call="beesdoo_website_shift.my_shift_worker_status_title"/>
@ -586,6 +692,18 @@
<t t-call="beesdoo_website_shift.my_shift_past_shifts"/> <t t-call="beesdoo_website_shift.my_shift_past_shifts"/>
</div> <!-- col-md-8 --> </div> <!-- col-md-8 -->
<div class="col-xs-12 col-md-4 text-justify">
<div class="oe_structure"/>
<t t-call="beesdoo_website_shift.help_text_title"/>
<t t-call="beesdoo_website_shift.help_text_common"/>
<t t-call="beesdoo_website_shift.help_text_irregular_worker"/>
<div class="oe_structure"/>
</div> <!-- col-md-4 -->
</div> <!-- row --> </div> <!-- row -->
</div> <!-- container --> </div> <!-- container -->
</section> </section>
@ -607,7 +725,7 @@
<section class="wrap"> <section class="wrap">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-xs-12 col-md-4 pull-right">
<div class="col-xs-12 col-md-4 pull-right text-justify">
<t t-call="beesdoo_website_shift.my_shift_worker_status_title"/> <t t-call="beesdoo_website_shift.my_shift_worker_status_title"/>
@ -618,9 +736,9 @@
<t t-esc="status.sr"/> <t t-esc="status.sr"/>
</p> </p>
<p t-if="future_alert_date">
<p t-if="status.future_alert_date">
<label>Future Date of Alert:</label> <label>Future Date of Alert:</label>
<t t-esc="time.strftime('%A %d %B %Y', time.strptime(future_alert_date, '%Y-%m-%d'))"/>
<t t-esc="time.strftime('%A %d %B %Y', time.strptime(status.future_alert_date, '%Y-%m-%d'))"/>
</p> </p>
<p t-if="status.irregular_absence_date"> <p t-if="status.irregular_absence_date">
@ -639,6 +757,22 @@
<div class="col-xs-12 col-md-8"> <div class="col-xs-12 col-md-8">
<div t-if="back_from_subscription"
role="alert"
t-att-class="'alert alert-%s alert-dismissible' % ('success' if success else 'danger',)">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<t t-if="success">
<strong>Success!</strong> Your subscription has succeded.
</t>
<t t-if="not success">
<strong>Failed!</strong> Your subscription has failed. Someone
subscribed before you or the shift was deleted. Try again in a
moment.
</t>
</div>
<t t-call="beesdoo_website_shift.my_shift_next_shifts"/> <t t-call="beesdoo_website_shift.my_shift_next_shifts"/>
<section class="wrap"> <section class="wrap">
@ -658,9 +792,11 @@
<section class="wrap"> <section class="wrap">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-xs-12 col-sm-6">
<div class="col-xs-12 col-sm-6 text-justify">
<p> <p>
Explanation text
Please, subscribe, in priority, to the highlighted shifts. To sign up to a shift click on the
subscribe button. Notice that you can not unsubscribe online. To unsubscribe to a shift, please,
contact us.
</p> </p>
</div> </div>
</div> </div>
@ -673,6 +809,18 @@
<t t-call="beesdoo_website_shift.my_shift_past_shifts"/> <t t-call="beesdoo_website_shift.my_shift_past_shifts"/>
</div> <!-- col-md-8 --> </div> <!-- col-md-8 -->
<div class="col-xs-12 col-md-4 text-justify">
<div class="oe_structure"/>
<t t-call="beesdoo_website_shift.help_text_title"/>
<t t-call="beesdoo_website_shift.help_text_common"/>
<t t-call="beesdoo_website_shift.help_text_irregular_worker"/>
<div class="oe_structure"/>
</div> <!-- col-md-4 -->
</div> <!-- row --> </div> <!-- row -->
</div> <!-- container --> </div> <!-- container -->
</section> </section>

Loading…
Cancel
Save