From b013e1524b274e3347c597ee55155303cc84b059 Mon Sep 17 00:00:00 2001 From: Elouan Le Bars Date: Mon, 27 Jan 2020 11:36:09 +0100 Subject: [PATCH] [MIG] b_shift : change settings to fit 12.0 requirements --- beesdoo_shift/__manifest__.py | 2 +- beesdoo_shift/data/system_parameter.xml | 4 +- beesdoo_shift/models/__init__.py | 2 +- beesdoo_shift/models/attendance_sheet.py | 12 +- beesdoo_shift/models/cooperative_status.py | 10 +- beesdoo_shift/models/planning.py | 2 +- .../{res_config.py => res_config_settings.py} | 55 +++---- beesdoo_shift/models/task.py | 2 +- beesdoo_shift/tests/test_beesdoo_shift.py | 22 +-- .../views/res_config_settings_view.xml | 134 ++++++++++++++++++ beesdoo_shift/views/res_config_view.xml | 91 ------------ 11 files changed, 183 insertions(+), 153 deletions(-) rename beesdoo_shift/models/{res_config.py => res_config_settings.py} (55%) create mode 100644 beesdoo_shift/views/res_config_settings_view.xml delete mode 100644 beesdoo_shift/views/res_config_view.xml diff --git a/beesdoo_shift/__manifest__.py b/beesdoo_shift/__manifest__.py index f9fb6e8..c627ef6 100644 --- a/beesdoo_shift/__manifest__.py +++ b/beesdoo_shift/__manifest__.py @@ -23,7 +23,7 @@ "security/group.xml", "security/ir.model.access.csv", "views/task_template.xml", - "views/res_config_view.xml", + "views/res_config_settings_view.xml", "views/task.xml", "views/planning.xml", "views/cooperative_status.xml", diff --git a/beesdoo_shift/data/system_parameter.xml b/beesdoo_shift/data/system_parameter.xml index 0a4a676..0c413de 100644 --- a/beesdoo_shift/data/system_parameter.xml +++ b/beesdoo_shift/data/system_parameter.xml @@ -39,8 +39,8 @@ beesdoo_shift.attendance_sheet_generation_interval 15 - - beesdoo_shift.default_task_type_id + + beesdoo_shift.task_type_default_id 1 diff --git a/beesdoo_shift/models/__init__.py b/beesdoo_shift/models/__init__.py index f2e9ee2..4bb8e67 100644 --- a/beesdoo_shift/models/__init__.py +++ b/beesdoo_shift/models/__init__.py @@ -1,5 +1,5 @@ from . import attendance_sheet from . import planning -from . import res_config +from . import res_config_settings from . import task from . import cooperative_status diff --git a/beesdoo_shift/models/attendance_sheet.py b/beesdoo_shift/models/attendance_sheet.py index 613df8c..2f2c441 100644 --- a/beesdoo_shift/models/attendance_sheet.py +++ b/beesdoo_shift/models/attendance_sheet.py @@ -15,9 +15,9 @@ class AttendanceSheetShift(models.AbstractModel): _order = "task_type_id, worker_name" @api.model - def default_task_type_id(self): - parameters = self.env["ir.config_parameter"] - id = int(parameters.get_param("beesdoo_shift.default_task_type_id", default=1)) + def task_type_default_id(self): + parameters = self.env["ir.config_parameter"].sudo() + id = int(parameters.get_param("beesdoo_shift.task_type_default_id", default=1)) task_types = self.env["beesdoo.shift.type"] return task_types.browse(id) @@ -46,7 +46,7 @@ class AttendanceSheetShift(models.AbstractModel): ) worker_name = fields.Char(related="worker_id.name", store=True) task_type_id = fields.Many2one( - "beesdoo.shift.type", string="Task Type", default=default_task_type_id + "beesdoo.shift.type", string="Task Type", default=task_type_default_id ) working_mode = fields.Selection( related="worker_id.working_mode", string="Working Mode" @@ -374,7 +374,7 @@ class AttendanceSheet(models.Model): # Added shift creation self.added_shift_ids |= self.added_shift_ids.new( { - "task_type_id": self.added_shift_ids.default_task_type_id(), + "task_type_id": self.added_shift_ids.task_type_default_id(), "state": "done", "attendance_sheet_id": self._origin.id, "worker_id": worker.id, @@ -591,7 +591,7 @@ class AttendanceSheet(models.Model): sheets = self.env["beesdoo.shift.sheet"] current_time = datetime.now() generation_interval_setting = int( - self.env["ir.config_parameter"].get_param( + self.env["ir.config_parameter"].sudo().get_param( "beesdoo_shift.attendance_sheet_generation_interval" ) ) diff --git a/beesdoo_shift/models/cooperative_status.py b/beesdoo_shift/models/cooperative_status.py index dbfafc1..e551a4a 100644 --- a/beesdoo_shift/models/cooperative_status.py +++ b/beesdoo_shift/models/cooperative_status.py @@ -100,9 +100,9 @@ class CooperativeStatus(models.Model): 'irregular_absence_counter', 'temporary_exempt_start_date', 'temporary_exempt_end_date', 'resigning', 'cooperator_id.subscribed_shift_ids') def _compute_status(self): - alert_delay = int(self.env['ir.config_parameter'].get_param('alert_delay', 28)) - grace_delay = int(self.env['ir.config_parameter'].get_param('default_grace_delay', 10)) - update = int(self.env['ir.config_parameter'].get_param('always_update', False)) + alert_delay = int(self.env['ir.config_parameter'].sudo().get_param('alert_delay', 28)) + grace_delay = int(self.env['ir.config_parameter'].sudo().get_param('default_grace_delay', 10)) + update = int(self.env['ir.config_parameter'].sudo().get_param('always_update', False)) for rec in self: if update or not rec.today: rec.status = 'ok' @@ -228,7 +228,7 @@ class CooperativeStatus(models.Model): def _set_regular_status(self, grace_delay, alert_delay): self.ensure_one() - counter_unsubscribe = int(self.env['ir.config_parameter'].get_param('regular_counter_to_unsubscribe', -4)) + counter_unsubscribe = int(self.env['ir.config_parameter'].sudo().get_param('regular_counter_to_unsubscribe', -4)) ok = self.sr >= 0 and self.sc >= 0 grace_delay = grace_delay + self.time_extension @@ -270,7 +270,7 @@ class CooperativeStatus(models.Model): self.can_shop = True def _set_irregular_status(self, grace_delay, alert_delay): - counter_unsubscribe = int(self.env['ir.config_parameter'].get_param('irregular_counter_to_unsubscribe', -3)) + counter_unsubscribe = int(self.env['ir.config_parameter'].sudo().get_param('irregular_counter_to_unsubscribe', -3)) self.ensure_one() ok = self.sr >= 0 grace_delay = grace_delay + self.time_extension diff --git a/beesdoo_shift/models/planning.py b/beesdoo_shift/models/planning.py index ad39e29..03d9084 100644 --- a/beesdoo_shift/models/planning.py +++ b/beesdoo_shift/models/planning.py @@ -59,7 +59,7 @@ class Planning(models.Model): @api.model def _generate_next_planning(self): - config = self.env['ir.config_parameter'] + config = self.env['ir.config_parameter'].sudo() last_seq = int(config.get_param('last_planning_seq', 0)) date = config.get_param('next_planning_date', 0) diff --git a/beesdoo_shift/models/res_config.py b/beesdoo_shift/models/res_config_settings.py similarity index 55% rename from beesdoo_shift/models/res_config.py rename to beesdoo_shift/models/res_config_settings.py index b62975d..9e6090e 100644 --- a/beesdoo_shift/models/res_config.py +++ b/beesdoo_shift/models/res_config_settings.py @@ -1,4 +1,3 @@ - # Copyright 2019-2020 Elouan Le Bars # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). @@ -7,36 +6,37 @@ import ast from odoo import fields, models, api -class ShiftConfigSettings(models.TransientModel): - _name = "beesdoo.shift.config.settings" +class ResConfigSettings(models.TransientModel): _inherit = "res.config.settings" card_support = fields.Boolean( string="Scan cooperators cards instead of login for sheets validation", - default=False, + config_parameter="beesdoo_shift.card_support", ) - default_task_type_id = fields.Many2one( + task_type_default_id = fields.Many2one( "beesdoo.shift.type", string="Default Task Type", help="Default task type for attendance sheet pre-filling", required=True, + default=False, ) attendance_sheet_generation_interval = fields.Integer( string="Time interval for attendance sheet generation", help="Time interval expressed in minutes", required=True, + config_parameter="beesdoo_shift.attendance_sheet_generation_interval", ) @api.multi - def set_params(self): - self.ensure_one() - parameters = self.env["ir.config_parameter"] + def set_values(self): + super(ResConfigSettings, self).set_values() + parameters = self.env["ir.config_parameter"].sudo() parameters.set_param( "beesdoo_shift.card_support", str(self.card_support), ) parameters.set_param( - "beesdoo_shift.default_task_type_id", - str(self.default_task_type_id.id), + "beesdoo_shift.task_type_default_id", + str(self.task_type_default_id.id), ) parameters.set_param( "beesdoo_shift.attendance_sheet_generation_interval", @@ -44,31 +44,18 @@ class ShiftConfigSettings(models.TransientModel): ) @api.multi - def get_default_card_support(self): - return { - "card_support": ast.literal_eval( + def get_values(self): + res = super(ResConfigSettings, self).get_values() + res.update( + card_support=ast.literal_eval( self.env["ir.config_parameter"].get_param( "beesdoo_shift.card_support" - ) - ) - } - - @api.multi - def get_default_task_type_id(self): - return { - "default_task_type_id": int( + ), + ), + task_type_default_id=int( self.env["ir.config_parameter"].get_param( - "beesdoo_shift.default_task_type_id" + "beesdoo_shift.task_type_default_id" ) - ) - } - - @api.multi - def get_default_attendance_sheet_generation_interval(self): - return { - "attendance_sheet_generation_interval": int( - self.env["ir.config_parameter"].get_param( - "beesdoo_shift.attendance_sheet_generation_interval" - ) - ) - } + ), + ) + return res diff --git a/beesdoo_shift/models/task.py b/beesdoo_shift/models/task.py index 176e730..9d278ba 100644 --- a/beesdoo_shift/models/task.py +++ b/beesdoo_shift/models/task.py @@ -213,7 +213,7 @@ class Task(models.Model): def _update_state(self, new_state): self.ensure_one() self._revert() - update = int(self.env['ir.config_parameter'].get_param('always_update', False)) + update = int(self.env['ir.config_parameter'].sudo().get_param('always_update', False)) data = {} diff --git a/beesdoo_shift/tests/test_beesdoo_shift.py b/beesdoo_shift/tests/test_beesdoo_shift.py index 3dcfad4..84a7fbc 100644 --- a/beesdoo_shift/tests/test_beesdoo_shift.py +++ b/beesdoo_shift/tests/test_beesdoo_shift.py @@ -20,8 +20,8 @@ class TestBeesdooShift(TransactionCase): ] self.shift_expected_model = self.env["beesdoo.shift.sheet.expected"] self.shift_added_model = self.env["beesdoo.shift.sheet.added"] - self.default_task_type_id = self.env["ir.config_parameter"].get_param( - "beesdoo_shift.default_task_type_id" + self.task_type_default_id = self.env["ir.config_parameter"].sudo().get_param( + "beesdoo_shift.task_type_default_id" ) self.current_time = datetime.now() @@ -155,9 +155,9 @@ class TestBeesdooShift(TransactionCase): def search_sheets(self, start_time, end_time): if (type(start_time) and type(end_time)) == datetime: - return self.attendance_sheet_model.search( - [("start_time", "=", start_time), ("end_time", "=", end_time)] - ) + return self.attendance_sheet_model.search( + [("start_time", "=", start_time), ("end_time", "=", end_time)] + ) def test_default_task_type_setting(self): "Test default task type setting" @@ -165,16 +165,16 @@ class TestBeesdooShift(TransactionCase): for task_type in (self.task_type_1, self.task_type_2): # Setting default value setting_wizard_1 = self.setting_wizard.create( - {"default_task_type_id": task_type.id} + {"task_type_default_id": task_type.id} ) setting_wizard_1.execute() - param_id = self.env["ir.config_parameter"].get_param( - "beesdoo_shift.default_task_type_id" + param_id = self.env["ir.config_parameter"].sudo().get_param( + "beesdoo_shift.task_type_default_id" ) self.assertEqual(int(param_id), task_type.id) # Check propagation on attendance sheet shifts self.assertEqual( - self.attendance_sheet_shift_model.default_task_type_id(), + self.attendance_sheet_shift_model.task_type_default_id(), task_type, ) @@ -184,7 +184,7 @@ class TestBeesdooShift(TransactionCase): # Set generation interval setting setting_wizard_1 = self.setting_wizard.create( { - "default_task_type_id": self.task_type_1.id, + "task_type_default_id": self.task_type_1.id, "attendance_sheet_generation_interval": 15, } ) @@ -300,7 +300,7 @@ class TestBeesdooShift(TransactionCase): self.assertEqual(shift.state, "done") self.assertEqual( shift.task_type_id, - self.attendance_sheet_shift_model.default_task_type_id(), + self.attendance_sheet_shift_model.task_type_default_id(), ) if shift.working_mode == "regular": self.assertTrue(shift.is_compensation) diff --git a/beesdoo_shift/views/res_config_settings_view.xml b/beesdoo_shift/views/res_config_settings_view.xml new file mode 100644 index 0000000..3711cb0 --- /dev/null +++ b/beesdoo_shift/views/res_config_settings_view.xml @@ -0,0 +1,134 @@ + + + + + + Day Number List + beesdoo.shift.daynumber + + + + + + + + + + + Shift Type List + beesdoo.shift.type + + + + + + + + + + + res.config.settings.view.form.inherit.beesdoo.shift + res.config.settings + + + + +
+ +

Attendance Sheets

+
+
+
+ +
+
+
+
+
+
+
+
+ Attendance Sheets Generation Interval +
+ Generate attendance sheets before shifts start. +
+
+
+
+
+
+
+
+
+
+
+ Default Task Type +
+ For attendance sheets automatic pre-filling. +
+
+
+
+
+
+
+
+
+
+
+
+ + + + + Day Number + beesdoo.shift.daynumber + tree + + + + + + Shift Type + beesdoo.shift.type + tree,form + + + + + + Settings + ir.actions.act_window + res.config.settings + form + inline + {'module' : 'beesdoo_shift'} + + + + +
+
diff --git a/beesdoo_shift/views/res_config_view.xml b/beesdoo_shift/views/res_config_view.xml deleted file mode 100644 index 68b6dac..0000000 --- a/beesdoo_shift/views/res_config_view.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - Day Number List - beesdoo.shift.daynumber - - - - - - - - - - - Shift Type List - beesdoo.shift.type - - - - - - - - - - - Shifts Configuration Form - beesdoo.shift.config.settings - -
-
-
- - - - - - - -
-
- - - - - Day Number - beesdoo.shift.daynumber - tree - - - - - - Shift Type - beesdoo.shift.type - tree,form - - - - - - Settings - beesdoo.shift.config.settings - form - inline - - - - -
-