[ADD] delete menu

bzr revid: fme@openerp.com-20131030105803-yq7r5lt9vtnd21p0
This commit is contained in:
Fabien Meghazi 2013-10-30 11:58:03 +01:00
parent 0dab848b12
commit fcdef0faaf
2 changed files with 23 additions and 3 deletions

View File

@ -419,11 +419,17 @@ class website_menu(osv.osv):
menu['id'] = new_id
if menu['parent_id'] == old_id:
menu['parent_id'] = new_id
to_delete = []
for menu in data:
old_id = menu['id']
if isinstance(old_id, str):
mid = menu['id']
if 'to_delete' in menu:
to_delete.append(mid)
data.remove(menu)
elif isinstance(mid, str):
new_id = self.create(cr, uid, {'name': menu['name']}, context=context)
replace_id(old_id, new_id)
replace_id(mid, new_id)
if to_delete:
self.unlink(cr, uid, to_delete)
for menu in data:
self.write(cr, uid, [menu['id']], menu, context=context)
return True

View File

@ -9,6 +9,7 @@
template: 'website.menu.dialog.edit',
events: _.extend({}, website.editor.Dialog.prototype.events, {
'click button.add-menu': 'add_menu',
'click button.delete-menu': 'delete_menu',
}),
init: function (menu) {
this.menu = menu;
@ -64,6 +65,19 @@
});
dialog.appendTo(document.body);
},
delete_menu: function (ev) {
var self = this;
var $menu = $(ev.currentTarget).parents('[data-menu-id]').first();
$menu.find('[data-menu-id]').add($menu).each(function() {
var mid = $(this).attr('data-menu-id');
if (~mid.indexOf('new-')) {
delete(self.flat[mid]);
} else {
self.flat[mid].to_delete = true;
}
});
$menu.hide();
},
save: function () {
var self = this;
var new_menu = this.$('.oe_menu_editor').nestedSortable('toArray', {startDepthCount: 0});