diff --git a/beesdoo_website_shift/controllers/main.py b/beesdoo_website_shift/controllers/main.py index 23204a9..627d1ba 100644 --- a/beesdoo_website_shift/controllers/main.py +++ b/beesdoo_website_shift/controllers/main.py @@ -1,4 +1,5 @@ # -*- coding: utf8 -*- +from ast import literal_eval from datetime import datetime from itertools import groupby from openerp import http @@ -6,6 +7,7 @@ from openerp.http import request from openerp.addons.beesdoo_shift.models.planning import float_to_time + class WebsiteShiftController(http.Controller): @http.route('/shift', auth='user', website=True) @@ -30,7 +32,12 @@ class WebsiteShiftController(http.Controller): def subscribe_to_shift(self, shift=None, **kwargs): # Get current user cur_user = request.env['res.users'].browse(request.uid) - if (cur_user.partner_id.working_mode == 'irregular' + # Get config + irregular_enable_sign_up = literal_eval(request.env['ir.config_parameter'].get_param( + 'beesdoo_website_shift.irregular_enable_sign_up')) + + if (irregular_enable_sign_up + and cur_user.partner_id.working_mode == 'irregular' and shift and not shift.worker_id): shift.worker_id = cur_user.partner_id @@ -62,6 +69,8 @@ class WebsiteShiftController(http.Controller): 'beesdoo_website_shift.highlight_rule')) hide_rule = int(request.env['ir.config_parameter'].get_param( 'beesdoo_website_shift.hide_rule')) / 100.0 + irregular_enable_sign_up = literal_eval(request.env['ir.config_parameter'].get_param( + 'beesdoo_website_shift.irregular_enable_sign_up')) # Grouby task_template_id, if no task_template_id is specified # then group by start_time @@ -69,7 +78,7 @@ class WebsiteShiftController(http.Controller): groupby_iter = groupby(shifts, groupby_func) shifts_count_subscribed = [] - nb_displayed_shift = 0 # Number of shift displayed + nb_displayed_shift = 0 # Number of shift displayed for (keys, grouped_shifts) in groupby_iter: (task_template, start_time, task_type) = keys nb_displayed_shift = nb_displayed_shift + 1 @@ -97,6 +106,7 @@ class WebsiteShiftController(http.Controller): 'highlight_rule': highlight_rule, 'nexturl': '/shift', 'subscribed_shifts': subscribed_shifts, + 'irregular_enable_sign_up': irregular_enable_sign_up, } ) diff --git a/beesdoo_website_shift/data/res_config_data.xml b/beesdoo_website_shift/data/res_config_data.xml index f8857b5..7765da1 100644 --- a/beesdoo_website_shift/data/res_config_data.xml +++ b/beesdoo_website_shift/data/res_config_data.xml @@ -13,5 +13,9 @@ beesdoo_website_shift.hide_rule 20 + + beesdoo_website_shift.irregular_enable_sign_up + True + diff --git a/beesdoo_website_shift/models/res_config.py b/beesdoo_website_shift/models/res_config.py index d722307..23f9add 100644 --- a/beesdoo_website_shift/models/res_config.py +++ b/beesdoo_website_shift/models/res_config.py @@ -1,13 +1,16 @@ # -*- coding: utf-8 -*- +from ast import literal_eval from openerp import fields, models, api PARAMS = [ ('irregular_shift_limit', 'beesdoo_website_shift.irregular_shift_limit'), ('highlight_rule', 'beesdoo_website_shift.highlight_rule'), ('hide_rule', 'beesdoo_website_shift.hide_rule'), + ('irregular_enable_sign_up', 'beesdoo_website_shift.irregular_enable_sign_up'), ] + class WebsiteShiftConfigSettings(models.TransientModel): _name = 'beesdoo.website.shift.config.settings' @@ -22,6 +25,9 @@ class WebsiteShiftConfigSettings(models.TransientModel): hide_rule = fields.Integer( help="Treshold ((available space)/(max space)) in percentage of available space under wich the shift is hidden" ) + irregular_enable_sign_up = fields.Boolean( + help="Enable shift sign up for irregular worker" + ) @api.multi def set_params(self): @@ -49,3 +55,10 @@ class WebsiteShiftConfigSettings(models.TransientModel): return { 'hide_rule': int(self.env['ir.config_parameter'].get_param('beesdoo_website_shift.hide_rule')) } + + @api.multi + def get_default_irregular_shift_sign_up(self): + return { + 'irregular_enable_sign_up': literal_eval(self.env['ir.config_parameter'].get_param( + 'beesdoo_website_shift.irregular_enable_sign_up')) + } diff --git a/beesdoo_website_shift/views/res_config_views.xml b/beesdoo_website_shift/views/res_config_views.xml index a17a17f..352e0cd 100644 --- a/beesdoo_website_shift/views/res_config_views.xml +++ b/beesdoo_website_shift/views/res_config_views.xml @@ -23,6 +23,10 @@