1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
from odoo import models
from odoo.exceptions import UserError
from datetime import datetime
class Import(models.TransientModel):
_inherit = 'base_import.import'
def _get_config_enable_import(self):
return self.env['ir.config_parameter'].sudo().get_param('base_import.import.enable_import', '')
def _get_config_restrict_model(self):
return self.env['ir.config_parameter'].sudo().get_param('base_import.import.restrict_model', '')
def _check_time_range(self, config_string):
current_time = datetime.now().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:
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
if enable_import.lower() == 'true':
return True
elif enable_import.lower() == 'false':
return False
elif '-' in enable_import:
return self._check_time_range(enable_import)
return True
def _unable_import_notif(self):
enable_import_config = self._get_config_enable_import()
message = 'Import tidak dapat dilakukan saat ini. Hubungi Tim IT.'
if '-' in enable_import_config:
message = f'Import tidak dapat dilakukan saat ini. Anda bisa melakukannya di rentang waktu berikut: {enable_import_config}.'
raise UserError(message)
def do(self, fields, columns, options, dryrun=False):
enable_import = self._check_enable_import()
if not enable_import:
self._unable_import_notif()
return super(Import, self).do(fields, columns, options, dryrun)
|