diff options
Diffstat (limited to 'indoteknik_custom/models/base_import_import.py')
| -rw-r--r-- | indoteknik_custom/models/base_import_import.py | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/indoteknik_custom/models/base_import_import.py b/indoteknik_custom/models/base_import_import.py index 9cffa6e6..6a100cb8 100644 --- a/indoteknik_custom/models/base_import_import.py +++ b/indoteknik_custom/models/base_import_import.py @@ -1,45 +1,52 @@ +from datetime import datetime + from odoo import models from odoo.exceptions import UserError -from datetime import datetime +from pytz import timezone + class Import(models.TransientModel): _inherit = 'base_import.import' + + def _get_config(self, key, default = ''): + return self.env['ir.config_parameter'].sudo().get_param('base_import.import.' + key, default) def _get_config_enable_import(self): - return self.env['ir.config_parameter'].sudo().get_param('base_import.import.enable_import', '') + return self._get_config('enable_import') + + def _get_config_allowed_model(self): + return self._get_config('allowed_model') - def _get_config_restrict_model(self): - return self.env['ir.config_parameter'].sudo().get_param('base_import.import.restrict_model', '') + def _get_config_always_allowed_model(self): + return self._get_config('always_allowed_model') def _check_time_range(self, config_string): - current_time = datetime.now().time() + current_time = datetime.now(tz=timezone('Asia/Jakarta')).time() ranges = config_string.split(' / ') for time_range in ranges: start_str, end_str = time_range.split(' - ') start_time = datetime.strptime(start_str, '%H:%M:%S').time() end_time = datetime.strptime(end_str, '%H:%M:%S').time() - - if start_time <= current_time and current_time <= end_time: + + # If current time in range of start and end time + if current_time >= start_time and current_time <= end_time: return True return False def _check_enable_import(self): enable_import = self._get_config_enable_import() - restrict_model = self._get_config_restrict_model() - - if self.res_model not in restrict_model: - return True + allowed_model = self._get_config_allowed_model() + always_allowed_model = self._get_config_always_allowed_model() - if enable_import.lower() == 'true': + if self.res_model in always_allowed_model or always_allowed_model == 'ALL': return True - elif enable_import.lower() == 'false': - return False - elif '-' in enable_import: + + if self.res_model in allowed_model or allowed_model == 'ALL': return self._check_time_range(enable_import) - return True + return False def _unable_import_notif(self): enable_import_config = self._get_config_enable_import() |
