Remove support of Many2Many field in record XML
issue1994 review35005
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
* Remove support of Many2Many field in record XML
|
||||
* Change Pool into a Singleton
|
||||
* Remove support of zipped modules
|
||||
|
||||
|
||||
@@ -84,10 +84,10 @@ CREATE TABLE res_group (
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE `res_user-res_group` (
|
||||
uid BIGINT NOT NULL,
|
||||
gid BIGINT NOT NULL,
|
||||
CONSTRAINT `res_user-res_group_uid_fkey` FOREIGN KEY (uid) REFERENCES res_user (id) ON DELETE CASCADE,
|
||||
CONSTRAINT `res_user-res_group_gid_fkey` FOREIGN KEY (gid) REFERENCES res_group (id) ON DELETE CASCADE
|
||||
`user` BIGINT NOT NULL,
|
||||
`group` BIGINT NOT NULL,
|
||||
CONSTRAINT `res_user-res_group_user_fkey` FOREIGN KEY (`user`) REFERENCES res_user (id) ON DELETE CASCADE,
|
||||
CONSTRAINT `res_user-res_group_group_fkey` FOREIGN KEY (`group`) REFERENCES res_group (id) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE wkf (
|
||||
|
||||
@@ -102,10 +102,10 @@ CREATE SEQUENCE "res_user-res_group_id_seq";
|
||||
|
||||
CREATE TABLE "res_user-res_group" (
|
||||
id INTEGER DEFAULT NEXTVAL('res_user-res_group_id_seq') NOT NULL,
|
||||
uid INTEGER NOT NULL,
|
||||
gid INTEGER NOT NULL,
|
||||
FOREIGN KEY (uid) REFERENCES res_user (id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (gid) REFERENCES res_group (id) ON DELETE CASCADE,
|
||||
"user" INTEGER NOT NULL,
|
||||
"group" INTEGER NOT NULL,
|
||||
FOREIGN KEY ("user") REFERENCES res_user (id) ON DELETE CASCADE,
|
||||
FOREIGN KEY ("group") REFERENCES res_group (id) ON DELETE CASCADE,
|
||||
PRIMARY KEY(id)
|
||||
);
|
||||
|
||||
|
||||
@@ -73,8 +73,8 @@ CREATE TABLE res_group (
|
||||
|
||||
CREATE TABLE "res_user-res_group" (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
uid INTEGER,
|
||||
gid INTEGER
|
||||
"user" INTEGER,
|
||||
"group" INTEGER
|
||||
);
|
||||
|
||||
CREATE TABLE wkf (
|
||||
|
||||
+7
-39
@@ -110,16 +110,7 @@ class MenuitemTagHandler:
|
||||
values['icon'] = 'tryton-new'
|
||||
|
||||
if values.get('groups'):
|
||||
g_names = values['groups'].split(',')
|
||||
groups_value = []
|
||||
for group in g_names:
|
||||
if group.startswith('-'):
|
||||
group_id = self.mh.get_id(group[1:])
|
||||
groups_value.append(('remove', group_id))
|
||||
else:
|
||||
group_id = self.mh.get_id(group)
|
||||
groups_value.append(('add', group_id))
|
||||
values['groups'] = groups_value
|
||||
raise Exception("Please use separate records for groups")
|
||||
|
||||
if not values.get('name'):
|
||||
if not action_name:
|
||||
@@ -205,17 +196,8 @@ class RecordTagHandler:
|
||||
search_model = self.model._columns[field_name].model_name
|
||||
f_obj = self.mh.pool.get(search_model)
|
||||
with Transaction().set_context(active_test=False):
|
||||
answer = f_obj.browse(f_obj.search(safe_eval(search_attr)))
|
||||
|
||||
if not answer: return
|
||||
|
||||
if self.model._columns[field_name]._type == 'many2many':
|
||||
self.values[field_name] = [
|
||||
('set', [x['id'] for x in answer]),
|
||||
]
|
||||
|
||||
elif self.model._columns[field_name]._type == 'many2one':
|
||||
self.values[field_name] = answer[0]['id']
|
||||
self.values[field_name], = \
|
||||
f_obj.search(safe_eval(search_attr))
|
||||
|
||||
elif ref_attr:
|
||||
self.values[field_name] = self.mh.get_id(ref_attr)
|
||||
@@ -527,7 +509,7 @@ class TrytondXmlHandler(sax.handler.ContentHandler):
|
||||
ref_id = ref_id[0]
|
||||
return ref_mode + ',' + str(ref_id)
|
||||
elif field_type in ['one2many', 'many2many']:
|
||||
raise Unhandled_field()
|
||||
raise Unhandled_field("Unhandled field %s" % key)
|
||||
else:
|
||||
return browse_record[key]
|
||||
|
||||
@@ -695,13 +677,7 @@ class TrytondXmlHandler(sax.handler.ContentHandler):
|
||||
to_update = {}
|
||||
for key in values:
|
||||
|
||||
try:
|
||||
db_field = self._clean_value(key, db_val, object_ref)
|
||||
except Unhandled_field:
|
||||
logging.getLogger("convert").info(
|
||||
'Field %s on %s : integrity not tested.'%(key, model))
|
||||
to_update[key] = values[key]
|
||||
continue
|
||||
db_field = self._clean_value(key, db_val, object_ref)
|
||||
|
||||
# if the fs value is the same has in the db, whe ignore it
|
||||
val = values[key]
|
||||
@@ -813,11 +789,7 @@ class TrytondXmlHandler(sax.handler.ContentHandler):
|
||||
if not db_val:
|
||||
db_val = object_ref.browse(db_id)
|
||||
for key in to_update:
|
||||
try:
|
||||
values[key] = self._clean_value(
|
||||
key, db_val, object_ref)
|
||||
except Unhandled_field:
|
||||
continue
|
||||
values[key] = self._clean_value( key, db_val, object_ref)
|
||||
|
||||
if module != self.module:
|
||||
temp_values = old_values.copy()
|
||||
@@ -904,11 +876,7 @@ class TrytondXmlHandler(sax.handler.ContentHandler):
|
||||
# in the model_data table:
|
||||
db_val = object_ref.browse(db_id)
|
||||
for key in values:
|
||||
try:
|
||||
values[key] = self._clean_value(key, db_val,
|
||||
object_ref)
|
||||
except Unhandled_field:
|
||||
continue
|
||||
values[key] = self._clean_value(key, db_val, object_ref)
|
||||
|
||||
for table in inherit_db_ids.keys():
|
||||
self.modeldata_obj.create({
|
||||
|
||||
@@ -21,7 +21,7 @@ class Action(ModelSQL, ModelView):
|
||||
usage = fields.Char('Usage')
|
||||
keywords = fields.One2Many('ir.action.keyword', 'action',
|
||||
'Keywords')
|
||||
groups = fields.Many2Many('ir.action-res.group', 'action_id', 'gid',
|
||||
groups = fields.Many2Many('ir.action-res.group', 'action', 'group',
|
||||
'Groups')
|
||||
icon = fields.Many2One('ir.ui.icon', 'Icon')
|
||||
active = fields.Boolean('Active', select=2)
|
||||
|
||||
+4
-4
@@ -264,8 +264,8 @@ class ModelAccess(ModelSQL, ModelView):
|
||||
'JOIN "%s" AS m '
|
||||
'ON (a.model = m.id) '
|
||||
'LEFT JOIN "%s" AS gu '
|
||||
'ON (gu.gid = a."group") '
|
||||
'WHERE m.model = %%s AND (gu.uid = %%s OR a."group" IS NULL)'
|
||||
'ON (gu."group" = a."group") '
|
||||
'WHERE m.model = %%s AND (gu."user" = %%s OR a."group" IS NULL)'
|
||||
% (mode, self._table, ir_model_obj._table,
|
||||
user_group_obj._table),
|
||||
(model_name, Transaction().user))
|
||||
@@ -383,8 +383,8 @@ class ModelFieldAccess(ModelSQL, ModelView):
|
||||
'JOIN "%s" AS m '
|
||||
'ON (f.model = m.id) '
|
||||
'LEFT JOIN "%s" AS gu '
|
||||
'ON (gu.gid = a."group") '
|
||||
'WHERE m.model = %%s AND (gu.uid = %%s OR a."group" IS NULL) '
|
||||
'ON (gu."group" = a."group") '
|
||||
'WHERE m.model = %%s AND (gu."user" = %%s OR a."group" IS NULL) '
|
||||
'GROUP BY f.name'
|
||||
% (mode, self._table, ir_model_field_obj._table,
|
||||
ir_model_obj._table, user_group_obj._table),
|
||||
|
||||
+12
-12
@@ -27,9 +27,9 @@ class RuleGroup(ModelSQL, ModelView):
|
||||
rules = fields.One2Many('ir.rule', 'rule_group', 'Tests',
|
||||
help="The rule is satisfied if at least one test is True")
|
||||
groups = fields.Many2Many('ir.rule.group-res.group',
|
||||
'rule_group_id', 'group_id', 'Groups')
|
||||
'rule_group', 'group', 'Groups')
|
||||
users = fields.Many2Many('ir.rule.group-res.user',
|
||||
'rule_group_id', 'user_id', 'Users')
|
||||
'rule_group', 'user', 'Users')
|
||||
perm_read = fields.Boolean('Read Access')
|
||||
perm_write = fields.Boolean('Write Access')
|
||||
perm_create = fields.Boolean('Create Access')
|
||||
@@ -175,14 +175,14 @@ class Rule(ModelSQL, ModelView):
|
||||
"WHERE m.model = %s "
|
||||
"AND g.perm_" + mode + " "
|
||||
"AND (g.id IN (" \
|
||||
'SELECT rule_group_id ' \
|
||||
'SELECT rule_group ' \
|
||||
'FROM "' + rule_group_user_obj._table + '" ' \
|
||||
"WHERE user_id = %s " \
|
||||
"UNION SELECT rule_group_id " \
|
||||
'WHERE "user" = %s ' \
|
||||
"UNION SELECT rule_group " \
|
||||
'FROM "' + rule_group_group_obj._table + '" g_rel ' \
|
||||
'JOIN "' + user_group_obj._table + '" u_rel ' \
|
||||
"ON (g_rel.group_id = u_rel.gid) " \
|
||||
"WHERE u_rel.uid = %s) " \
|
||||
'ON (g_rel."group" = u_rel."group") ' \
|
||||
'WHERE u_rel."user" = %s) ' \
|
||||
"OR default_p " \
|
||||
"OR g.global_p)",
|
||||
(model_name, Transaction().user, Transaction().user))
|
||||
@@ -224,14 +224,14 @@ class Rule(ModelSQL, ModelView):
|
||||
'WHERE m.model = %s ' \
|
||||
'AND (g.id NOT IN (SELECT rule_group ' \
|
||||
'FROM "' + self._table + '")) ' \
|
||||
'AND (g.id IN (SELECT rule_group_id ' \
|
||||
'AND (g.id IN (SELECT rule_group ' \
|
||||
'FROM "' + rule_group_user_obj._table + '" ' \
|
||||
'WHERE user_id = %s ' \
|
||||
'UNION SELECT rule_group_id ' \
|
||||
'WHERE "user" = %s ' \
|
||||
'UNION SELECT rule_group ' \
|
||||
'FROM "' + rule_group_group_obj._table + '" g_rel ' \
|
||||
'JOIN "' + user_group_obj._table + '" u_rel ' \
|
||||
'ON g_rel.group_id = u_rel.gid ' \
|
||||
'WHERE u_rel.uid = %s))',
|
||||
'ON g_rel."group" = u_rel."group" ' \
|
||||
'WHERE u_rel."user" = %s))',
|
||||
(model_name, user_id, user_id))
|
||||
fetchone = cursor.fetchone()
|
||||
if fetchone:
|
||||
|
||||
@@ -72,7 +72,7 @@ class UIMenu(ModelSQL, ModelView):
|
||||
parent = fields.Many2One('ir.ui.menu', 'Parent Menu', select=1,
|
||||
ondelete='CASCADE')
|
||||
groups = fields.Many2Many('ir.ui.menu-res.group',
|
||||
'menu_id', 'gid', 'Groups')
|
||||
'menu', 'group', 'Groups')
|
||||
complete_name = fields.Function(fields.Char('Complete Name',
|
||||
order_field='name'), 'get_rec_name', searcher='search_rec_name')
|
||||
icon = fields.Selection('list_icons', 'Icon')
|
||||
|
||||
@@ -37,10 +37,10 @@ class Group(ModelSQL, ModelView):
|
||||
field_access = fields.One2Many('ir.model.field.access', 'group',
|
||||
'Access Field')
|
||||
rule_groups = fields.Many2Many('ir.rule.group-res.group',
|
||||
'group_id', 'rule_group_id', 'Rules',
|
||||
'group', 'rule_group', 'Rules',
|
||||
domain=[('global_p', '!=', True), ('default_p', '!=', True)])
|
||||
menu_access = MenuMany2Many('ir.ui.menu-res.group',
|
||||
'gid', 'menu_id', 'Access Menu')
|
||||
'group', 'menu', 'Access Menu')
|
||||
|
||||
def __init__(self):
|
||||
super(Group, self).__init__()
|
||||
|
||||
@@ -57,8 +57,13 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="view" ref="group_view_form"/>
|
||||
<field name="act_window" ref="act_group_form"/>
|
||||
</record>
|
||||
<menuitem parent="res.menu_res" groups="group_admin"
|
||||
<menuitem parent="res.menu_res"
|
||||
action="act_group_form" id="menu_group_form"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_group_form_admin">
|
||||
<field name="menu" ref="menu_group_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.access" id="access_group">
|
||||
<field name="model" search="[('model', '=', 'res.group')]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
|
||||
+34
-8
@@ -10,9 +10,9 @@ class UIMenuGroup(ModelSQL):
|
||||
"UI Menu - Group"
|
||||
_name = 'ir.ui.menu-res.group'
|
||||
_description = __doc__
|
||||
menu_id = fields.Many2One('ir.ui.menu', 'Menu', ondelete='CASCADE',
|
||||
menu = fields.Many2One('ir.ui.menu', 'Menu', ondelete='CASCADE',
|
||||
select=1, required=True)
|
||||
gid = fields.Many2One('res.group', 'Group', ondelete='CASCADE',
|
||||
group = fields.Many2One('res.group', 'Group', ondelete='CASCADE',
|
||||
select=1, required=True)
|
||||
|
||||
def init(self, module_name):
|
||||
@@ -21,6 +21,10 @@ class UIMenuGroup(ModelSQL):
|
||||
TableHandler.table_rename(cursor, 'ir_ui_menu_group_rel', self._table)
|
||||
TableHandler.sequence_rename(cursor, 'ir_ui_menu_group_rel_id_seq',
|
||||
self._table + '_id_seq')
|
||||
# Migration from 2.0 menu_id and gid renamed into menu group
|
||||
table = TableHandler(cursor, self, module_name)
|
||||
table.column_rename('menu_id', 'menu')
|
||||
table.column_rename('gid', 'group')
|
||||
super(UIMenuGroup, self).init(module_name)
|
||||
|
||||
def create(self, vals):
|
||||
@@ -48,9 +52,9 @@ class ActionGroup(ModelSQL):
|
||||
"Action - Group"
|
||||
_name = 'ir.action-res.group'
|
||||
_description = __doc__
|
||||
action_id = fields.Many2One('ir.action', 'Action', ondelete='CASCADE',
|
||||
action = fields.Many2One('ir.action', 'Action', ondelete='CASCADE',
|
||||
select=1, required=True)
|
||||
gid = fields.Many2One('res.group', 'Group', ondelete='CASCADE',
|
||||
group = fields.Many2One('res.group', 'Group', ondelete='CASCADE',
|
||||
select=1, required=True)
|
||||
|
||||
def init(self, module_name):
|
||||
@@ -59,15 +63,27 @@ class ActionGroup(ModelSQL):
|
||||
TableHandler.table_rename(cursor, 'ir_action_group_rel', self._table)
|
||||
TableHandler.sequence_rename(cursor, 'ir_action_group_rel_id_seq',
|
||||
self._table + '_id_seq')
|
||||
# Migration from 2.0 action_id and gid renamed into action and group
|
||||
table = TableHandler(cursor, self, module_name)
|
||||
table.column_rename('action_id', 'action')
|
||||
table.column_rename('gid', 'group')
|
||||
super(ActionGroup, self).init(module_name)
|
||||
|
||||
def create(self, vals):
|
||||
action_obj = Pool().get('ir.action')
|
||||
if vals.get('action'):
|
||||
vals = vals.copy()
|
||||
vals['action'] = action_obj.get_action_id(vals['action'])
|
||||
res = super(ActionGroup, self).create(vals)
|
||||
# Restart the cache on the domain_get method
|
||||
Pool().get('ir.rule').domain_get.reset()
|
||||
return res
|
||||
|
||||
def write(self, ids, vals):
|
||||
action_obj = Pool().get('ir.action')
|
||||
if vals.get('action'):
|
||||
vals = vals.copy()
|
||||
vals['action'] = action_obj.get_action_id(vals['action'])
|
||||
res = super(ActionGroup, self).write(ids, vals)
|
||||
# Restart the cache on the domain_get method
|
||||
Pool().get('ir.rule').domain_get.reset()
|
||||
@@ -106,9 +122,9 @@ class RuleGroupGroup(ModelSQL):
|
||||
"Rule Group - Group"
|
||||
_name = 'ir.rule.group-res.group'
|
||||
_description = __doc__
|
||||
rule_group_id = fields.Many2One('ir.rule.group', 'Rule Group',
|
||||
rule_group = fields.Many2One('ir.rule.group', 'Rule Group',
|
||||
ondelete='CASCADE', select=1, required=True)
|
||||
group_id = fields.Many2One('res.group', 'Group', ondelete='CASCADE',
|
||||
group = fields.Many2One('res.group', 'Group', ondelete='CASCADE',
|
||||
select=1, required=True)
|
||||
|
||||
def init(self, module_name):
|
||||
@@ -117,6 +133,11 @@ class RuleGroupGroup(ModelSQL):
|
||||
TableHandler.table_rename(cursor, 'group_rule_group_rel', self._table)
|
||||
TableHandler.sequence_rename(cursor, 'group_rule_group_rel_id_seq',
|
||||
self._table + '_id_seq')
|
||||
# Migration from 2.0 rule_group_id and group_id renamed into rule_group
|
||||
# and group
|
||||
table = TableHandler(cursor, self, module_name)
|
||||
table.column_rename('rule_group_id', 'rule_group')
|
||||
table.column_rename('group_id', 'group')
|
||||
super(RuleGroupGroup, self).init(module_name)
|
||||
|
||||
RuleGroupGroup()
|
||||
@@ -126,9 +147,9 @@ class RuleGroupUser(ModelSQL):
|
||||
"Rule Group - User"
|
||||
_name = 'ir.rule.group-res.user'
|
||||
_description = __doc__
|
||||
rule_group_id = fields.Many2One('ir.rule.group', 'Rule Group',
|
||||
rule_group = fields.Many2One('ir.rule.group', 'Rule Group',
|
||||
ondelete='CASCADE', select=1, required=True)
|
||||
user_id = fields.Many2One('res.user', 'User', ondelete='CASCADE',
|
||||
user = fields.Many2One('res.user', 'User', ondelete='CASCADE',
|
||||
select=1, required=True)
|
||||
|
||||
def init(self, module_name):
|
||||
@@ -137,6 +158,11 @@ class RuleGroupUser(ModelSQL):
|
||||
TableHandler.table_rename(cursor, 'user_rule_group_rel', self._table)
|
||||
TableHandler.sequence_rename(cursor, 'user_rule_group_rel_id_seq',
|
||||
self._table + '_id_seq')
|
||||
# Migration from 2.0 rule_group_id and user_id renamed into rule_group
|
||||
# and user
|
||||
table = TableHandler(cursor, self, module_name)
|
||||
table.column_rename('rule_group_id', 'rule_group')
|
||||
table.column_rename('user_id', 'user')
|
||||
super(RuleGroupUser, self).init(module_name)
|
||||
|
||||
RuleGroupUser()
|
||||
|
||||
+139
-91
@@ -425,141 +425,186 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="operand">False</field>
|
||||
<field name="rule_group" ref="rule_group_action"/>
|
||||
</record>
|
||||
<record model="ir.action.wizard" id="ir.act_module_install_upgrade">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.action-res.group" id="act_module_install_upgrade_group_admin">
|
||||
<field name="action" ref="ir.act_module_install_upgrade"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.action.wizard" id="ir.act_translation_update">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.action-res.group" id="act_translation_update_group_admin">
|
||||
<field name="action" ref="ir.act_translation_update"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.action.wizard" id="ir.act_translation_export">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.action-res.group" id="act_translation_export_group_admin">
|
||||
<field name="action" ref="ir.act_translation_export"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.menu" id="ir.menu_administration">
|
||||
<field name="groups" eval="[('add', ref('group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_administration_group_admin">
|
||||
<field name="menu" ref="ir.menu_administration"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_ui">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_ui_group_admin">
|
||||
<field name="menu" ref="ir.menu_ui"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_icon_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_icon_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_icon_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_menu_list">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_menu_tree_group_admin">
|
||||
<field name="menu" ref="ir.menu_menu_list"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_view">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_view_group_admin">
|
||||
<field name="menu" ref="ir.menu_view"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_view_sc">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_view_sc_group_admin">
|
||||
<field name="menu" ref="ir.menu_view_sc"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_view_tree_width">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_view_tree_width_group_admin">
|
||||
<field name="menu" ref="ir.menu_view_tree_width"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_action">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_action_group_admin">
|
||||
<field name="menu" ref="ir.menu_action"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_act_action">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_act_action_group_admin">
|
||||
<field name="menu" ref="ir.menu_act_action"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_action_report_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_action_report_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_action_report_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_action_act_window">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_action_act_window_group_admin">
|
||||
<field name="menu" ref="ir.menu_action_act_window"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_action_wizard">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_action_wizard_group_admin">
|
||||
<field name="menu" ref="ir.menu_action_wizard"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_action_wizard_size">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_action_wizard_size_group_admin">
|
||||
<field name="menu" ref="ir.menu_action_wizard_size"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_action_url">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_action_url_group_admin">
|
||||
<field name="menu" ref="ir.menu_action_url"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_models">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_models_group_admin">
|
||||
<field name="menu" ref="ir.menu_models"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_model_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_model_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_model_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.model_model_fields_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="model_model_fields_form_group_admin">
|
||||
<field name="menu" ref="ir.model_model_fields_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_model_access_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_model_access_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_model_access_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_model_field_access_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_model_field_access_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_model_field_access_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_sequences">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_sequences_group_admin">
|
||||
<field name="menu" ref="ir.menu_sequences"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_sequence_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_sequence_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_sequence_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_sequence_strict_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_sequence_strict_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_sequence_strict_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_ir_sequence_type">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_ir_sequence_type_group_admin">
|
||||
<field name="menu" ref="ir.menu_ir_sequence_type"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_attachment_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_attachment_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_attachment_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_scheduler">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_scheduler_group_admin">
|
||||
<field name="menu" ref="ir.menu_scheduler"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_cron_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_cron_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_cron_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_localization">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_localization_group_admin">
|
||||
<field name="menu" ref="ir.menu_localization"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_lang_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_lang_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_lang_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_translation_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_translation_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_translation_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_translation_set_report">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_translation_set_report_group_admin">
|
||||
<field name="menu" ref="ir.menu_translation_set_report"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_translation_clean">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_translation_clean_group_admin">
|
||||
<field name="menu" ref="ir.menu_translation_clean"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_translation_update">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_translation_update_group_admin">
|
||||
<field name="menu" ref="ir.menu_translation_update"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_translation_export">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_translation_export_group_admin">
|
||||
<field name="menu" ref="ir.menu_translation_export"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_export_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_export_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_export_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_rule_group_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_rule_group_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_rule_group_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_property_form_default">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_property_form_default_group_admin">
|
||||
<field name="menu" ref="ir.menu_property_form_default"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_property_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_property_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_property_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_modules">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_modules_group_admin">
|
||||
<field name="menu" ref="ir.menu_modules"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_module_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_module_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_module_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_config_wizard_item_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_config_wizard_item_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_config_wizard_item_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_module_install_upgrade">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_module_install_upgrade_group_admin">
|
||||
<field name="menu" ref="ir.menu_module_install_upgrade"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.menu" id="ir.menu_trigger_form">
|
||||
<field name="groups" eval="[('add', ref('res.group_admin'))]"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_trigger_form_group_admin">
|
||||
<field name="menu" ref="ir.menu_trigger_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="module_view_form">
|
||||
<field name="model">ir.module.module</field>
|
||||
@@ -661,9 +706,12 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<record model="res.user" id="user_trigger">
|
||||
<field name="login">user_cron_trigger</field>
|
||||
<field name="name">Cron Trigger</field>
|
||||
<field name="groups" eval="[('add', ref('group_admin'))]"/>
|
||||
<field name="active" eval="False"/>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_trigger_group_admin">
|
||||
<field name="user" ref="user_trigger"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.cron" id="cron_trigger_time">
|
||||
<field name="name">Run On Time Triggers</field>
|
||||
|
||||
+11
-2
@@ -90,8 +90,13 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="view" ref="request_view_form"/>
|
||||
<field name="act_window" ref="act_request_form"/>
|
||||
</record>
|
||||
<menuitem parent="res.menu_res" groups="group_admin"
|
||||
<menuitem parent="res.menu_res"
|
||||
action="act_request_form" id="menu_request_form"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_request_form_group_admin">
|
||||
<field name="menu" ref="menu_request_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="request_link_view_form">
|
||||
<field name="model">res.request.link</field>
|
||||
<field name="type">form</field>
|
||||
@@ -136,8 +141,12 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="view" ref="request_link_view_form"/>
|
||||
<field name="act_window" ref="act_request_link_form"/>
|
||||
</record>
|
||||
<menuitem parent="res.menu_res" groups="group_admin"
|
||||
<menuitem parent="res.menu_res"
|
||||
action="act_request_link_form" id="menu_request_link_form"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_request_link_form_group_admin">
|
||||
<field name="menu" ref="menu_request_link_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="request_history_view_tree">
|
||||
<field name="model">res.request.history</field>
|
||||
|
||||
+9
-5
@@ -37,9 +37,9 @@ class User(ModelSQL, ModelView):
|
||||
menu = fields.Many2One('ir.action', 'Menu Action',
|
||||
domain=[('usage','=','menu')], required=True)
|
||||
groups = fields.Many2Many('res.user-res.group',
|
||||
'uid', 'gid', 'Groups')
|
||||
'user', 'group', 'Groups')
|
||||
rule_groups = fields.Many2Many('ir.rule.group-res.user',
|
||||
'user_id', 'rule_group_id', 'Rules',
|
||||
'user', 'rule_group', 'Rules',
|
||||
domain=[('global_p', '!=', True), ('default_p', '!=', True)])
|
||||
language = fields.Many2One('ir.lang', 'Language',
|
||||
domain=['OR', ('translatable', '=', True), ('code', '=', 'en_US')])
|
||||
@@ -403,9 +403,9 @@ class UserGroup(ModelSQL):
|
||||
'User - Group'
|
||||
_name = 'res.user-res.group'
|
||||
_description = __doc__
|
||||
uid = fields.Many2One('res.user', 'User', ondelete='CASCADE', select=1,
|
||||
user = fields.Many2One('res.user', 'User', ondelete='CASCADE', select=1,
|
||||
required=True)
|
||||
gid = fields.Many2One('res.group', 'Group', ondelete='CASCADE', select=1,
|
||||
group = fields.Many2One('res.group', 'Group', ondelete='CASCADE', select=1,
|
||||
required=True)
|
||||
|
||||
def init(self, module_name):
|
||||
@@ -414,6 +414,10 @@ class UserGroup(ModelSQL):
|
||||
TableHandler.table_rename(cursor, 'res_group_user_rel', self._table)
|
||||
TableHandler.sequence_rename(cursor, 'res_group_user_rel_id_seq',
|
||||
self._table + '_id_seq')
|
||||
# Migration from 2.0 uid and gid rename into user and group
|
||||
table = TableHandler(cursor, self, module_name)
|
||||
table.column_rename('uid', 'user')
|
||||
table.column_rename('gid', 'group')
|
||||
super(UserGroup, self).init(module_name)
|
||||
|
||||
UserGroup()
|
||||
@@ -422,7 +426,7 @@ UserGroup()
|
||||
class Group(ModelSQL, ModelView):
|
||||
"Group"
|
||||
_name = "res.group"
|
||||
users = fields.Many2Many('res.user-res.group', 'gid', 'uid', 'Users')
|
||||
users = fields.Many2Many('res.user-res.group', 'group', 'user', 'Users')
|
||||
|
||||
Group()
|
||||
|
||||
|
||||
@@ -9,7 +9,10 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="signature">Administrator</field>
|
||||
<field name="action" ref="ir.act_module_config_wizard"/>
|
||||
<field name="menu" ref="ir.act_menu_tree"/>
|
||||
<field name="groups" eval="[('add', ref('group_admin'))]"/>
|
||||
</record>
|
||||
<record model="res.user-res.group" id="user_admin_group_admin">
|
||||
<field name="user" ref="user_admin"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="user_view_form">
|
||||
<field name="model">res.user</field>
|
||||
@@ -119,8 +122,12 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="view" ref="user_view_form"/>
|
||||
<field name="act_window" ref="act_user_form"/>
|
||||
</record>
|
||||
<menuitem parent="res.menu_res" groups="group_admin"
|
||||
<menuitem parent="res.menu_res"
|
||||
action="act_user_form" id="menu_user_form"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_user_form_group_admin">
|
||||
<field name="menu" ref="menu_user_form"/>
|
||||
<field name="group" ref="group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.access" id="access_user">
|
||||
<field name="model" search="[('model', '=', 'res.user')]"/>
|
||||
|
||||
@@ -3,8 +3,13 @@
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<menuitem name="WebDAV" id="menu_webdav" groups="res.group_admin"
|
||||
<menuitem name="WebDAV" id="menu_webdav"
|
||||
parent="ir.menu_administration"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_webdav_group_admin">
|
||||
<field name="menu" ref="menu_webdav"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="collection_view_tree">
|
||||
<field name="model">webdav.collection</field>
|
||||
<field name="type">tree</field>
|
||||
@@ -57,8 +62,12 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="view" ref="collection_view_form"/>
|
||||
<field name="act_window" ref="act_collection_tree"/>
|
||||
</record>
|
||||
<menuitem parent="menu_webdav" groups="res.group_admin"
|
||||
<menuitem parent="menu_webdav"
|
||||
action="act_collection_tree" id="menu_collection_tree"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_collection_tree_group_admin">
|
||||
<field name="menu" ref="menu_collection_tree"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.act_window" id="act_collection_form">
|
||||
<field name="name">Collections</field>
|
||||
@@ -77,7 +86,10 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="act_window" ref="act_collection_form"/>
|
||||
</record>
|
||||
<menuitem name="New Collection" parent="menu_collection_tree"
|
||||
action="act_collection_form" id="menu_collection_form"
|
||||
groups="res.group_admin"/>
|
||||
action="act_collection_form" id="menu_collection_form"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_collection_form_group_admin">
|
||||
<field name="menu" ref="menu_collection_form"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
|
||||
@@ -4,7 +4,12 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<menuitem name="Workflow" id="menu_workflow"
|
||||
parent="ir.menu_administration" groups="res.group_admin"/>
|
||||
parent="ir.menu_administration"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_workflow_group_admin">
|
||||
<field name="menu" ref="menu_workflow"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="workflow_view_form">
|
||||
<field name="model">workflow</field>
|
||||
<field name="type">form</field>
|
||||
@@ -51,8 +56,13 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="view" ref="workflow_view_form"/>
|
||||
<field name="act_window" ref="act_workflow_form"/>
|
||||
</record>
|
||||
<menuitem parent="menu_workflow" groups="res.group_admin"
|
||||
<menuitem parent="menu_workflow"
|
||||
action="act_workflow_form" id="menu_workflow_form"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_workflow_form_group_admin">
|
||||
<field name="menu" ref="menu_workflow"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.access" id="access_workflow">
|
||||
<field name="model" search="[('model', '=', 'workflow')]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
@@ -180,8 +190,13 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="view" ref="activity_view_form"/>
|
||||
<field name="act_window" ref="act_activity_form"/>
|
||||
</record>
|
||||
<menuitem parent="menu_workflow" groups="res.group_admin"
|
||||
<menuitem parent="menu_workflow"
|
||||
action="act_activity_form" id="menu_activity_form"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_activity_form_group_admin">
|
||||
<field name="menu" ref="menu_activity_form"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.access" id="access_workflow_activity">
|
||||
<field name="model" search="[('model', '=', 'workflow.activity')]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
@@ -254,8 +269,13 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="view" ref="transition_view_form"/>
|
||||
<field name="act_window" ref="act_transition_form"/>
|
||||
</record>
|
||||
<menuitem parent="menu_workflow" groups="res.group_admin"
|
||||
<menuitem parent="menu_workflow"
|
||||
action="act_transition_form" id="menu_transition_form"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_transition_form_group_admin">
|
||||
<field name="menu" ref="menu_transition_form"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.access" id="access_workflow_transition">
|
||||
<field name="model" search="[('model', '=', 'workflow.transition')]"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
@@ -322,8 +342,12 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="view" ref="instance_view_form"/>
|
||||
<field name="act_window" ref="act_instance_form"/>
|
||||
</record>
|
||||
<menuitem parent="menu_workflow" groups="res.group_admin"
|
||||
<menuitem parent="menu_workflow"
|
||||
action="act_instance_form" id="menu_instance_form"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_instance_form_group_admin">
|
||||
<field name="menu" ref="menu_instance_form"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="workitem_view_form">
|
||||
<field name="model">workflow.workitem</field>
|
||||
@@ -373,7 +397,11 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="view" ref="workitem_view_form"/>
|
||||
<field name="act_window" ref="act_workitem_form"/>
|
||||
</record>
|
||||
<menuitem parent="menu_workflow" groups="res.group_admin"
|
||||
<menuitem parent="menu_workflow"
|
||||
action="act_workitem_form" id="menu_workitem_form"/>
|
||||
<record model="ir.ui.menu-res.group" id="menu_workitem_form_group_admin">
|
||||
<field name="menu" ref="menu_workitem_form"/>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
|
||||
Reference in New Issue
Block a user