Merge lp:~jfb-tempo-consulting/unifield-server/US-8367 into lp:unifield-server

Proposed by jftempo
Status: Merged
Merged at revision: 6103
Proposed branch: lp:~jfb-tempo-consulting/unifield-server/US-8367
Merge into: lp:unifield-server
Diff against target: 84 lines (+21/-4)
3 files modified
bin/addons/base/ir/ir_model.py (+16/-1)
bin/addons/msf_doc_import/msf_import_export.py (+3/-1)
bin/addons/msf_doc_import/msf_import_export_conf.py (+2/-2)
To merge this branch: bzr merge lp:~jfb-tempo-consulting/unifield-server/US-8367
Reviewer Review Type Date Requested Status
UniField Reviewer Team Pending
Review via email: mp+411254@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'bin/addons/base/ir/ir_model.py'
2--- bin/addons/base/ir/ir_model.py 2020-09-23 08:29:29 +0000
3+++ bin/addons/base/ir/ir_model.py 2021-11-03 13:34:01 +0000
4@@ -126,6 +126,21 @@
5 res[obj['id']] = rel_obj._order
6 return res
7
8+ def _get_exists(self, cr, uid, ids, field_name, arg, context=None):
9+ res = {}
10+ list_pool = self.pool.obj_list()
11+ for model in self.read(cr, uid, ids, ['model'], context=context):
12+ res[model['id']] = model['model'] in list_pool
13+ return res
14+
15+ def _search_exists(self, cr, uid, model, name, domain, context=None):
16+ if not domain:
17+ return []
18+ field, operator, value = domain[0]
19+ if operator not in ['=']:
20+ raise osv.except_osv(_('Invalid search'), _('The exists field can only be compared with = operator.'))
21+ return [('model', bool(value) and 'in' or 'not in', self.pool.obj_list())]
22+
23 _columns = {
24 'name': fields.char('Object Name', size=64, translate=True, required=True),
25 'model': fields.char('Object', size=64, required=True, select=1),
26@@ -139,6 +154,7 @@
27 'modules': fields.function(_in_modules, method=True, type='char', size=128, string='In modules', help='List of modules in which the object is defined or inherited'),
28 'view_ids': fields.function(_view_ids, method=True, type='one2many', obj='ir.ui.view', string='Views'),
29 'default_order': fields.function(_get_default_order, method=True, string="Default Order", type="char"),
30+ 'exists': fields.function(_get_exists, method=True, string='Model in-use', type='boolean', fnct_search=_search_exists),
31 }
32
33 _defaults = {
34@@ -216,7 +232,6 @@
35 def get_unique_xml_name(self, cr, uid, uuid, table_name, res_id):
36 model = self.browse(cr, uid, res_id, fields_to_fetch=['model'])
37 a = 'ir_model_%s' % model.model.replace('.', '')
38- print a
39 return a
40
41 ir_model()
42
43=== modified file 'bin/addons/msf_doc_import/msf_import_export.py'
44--- bin/addons/msf_doc_import/msf_import_export.py 2021-07-02 10:31:57 +0000
45+++ bin/addons/msf_doc_import/msf_import_export.py 2021-11-03 13:34:01 +0000
46@@ -22,7 +22,7 @@
47 import base64
48 import time
49 import logging
50-
51+import release
52 import tools
53
54 from osv import fields
55@@ -99,6 +99,8 @@
56 file_name = file_name.replace(' ', '_')
57 if template_only:
58 file_name = _('%s_Import_Template') % file_name
59+ elif selection in ('user_groups', 'user_access', 'record_rules', 'access_control_list', 'access_control_list_empty', 'field_access_rules', 'field_access_rule_lines', 'button_access_rules', 'window_actions'):
60+ file_name = _('%s_Export_%s_%s') % (file_name, release.version.split('-')[0], time.strftime('%Y%m%d'))
61 else:
62 file_name = _('%s_Export_%s') % (file_name, time.strftime('%Y%m%d'))
63 return file_name
64
65=== modified file 'bin/addons/msf_doc_import/msf_import_export_conf.py'
66--- bin/addons/msf_doc_import/msf_import_export_conf.py 2021-03-17 17:32:47 +0000
67+++ bin/addons/msf_doc_import/msf_import_export_conf.py 2021-11-03 13:34:01 +0000
68@@ -175,14 +175,14 @@
69 'domain_type': 'non_functionnal',
70 'model': 'ir.model.access',
71 'lang': 'en_MF',
72- 'domain': [('from_system', '=', False)],
73+ 'domain': [('from_system', '=', False), ('model_id.exists', '=', True)],
74 },
75 'access_control_list_empty': {
76 'name': 'Objects without ACL',
77 'domain_type': 'non_functionnal',
78 'model': 'ir.model.access.empty',
79 'lang': 'en_MF',
80- 'domain': [('model_id.osv_memory', '=', False)],
81+ 'domain': [('model_id.osv_memory', '=', False), ('model_id.exists','=', True)],
82 },
83 'field_access_rules': {
84 'name': 'Field Access Rules',

Subscribers

People subscribed via source and target branches