From d4244bec3e6df28614eb93eb5d6f936f8fbac4f4 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 13 Feb 2014 16:27:28 +0100 Subject: [PATCH 1/2] [IMP] website: add a checkbox on new page dialog to add page in menu. Fix: The new page is confusing: one user created a new page and then she don't figure out how to find it bzr revid: chm@openerp.com-20140213152728-jj6j1hxae8ia5w4k --- addons/website/controllers/main.py | 9 +++++++- .../static/src/js/website.editor.newpage.js | 23 ++++++++++++++++--- addons/website/static/src/js/website.js | 3 ++- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index a6d8f2982f9..94a2e6fd01c 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -95,8 +95,15 @@ class Website(openerp.addons.web.controllers.main.Home): # Edit #------------------------------------------------------ @http.route('/website/add/', type='http', auth="user", website=True) - def pagenew(self, path, noredirect=False): + def pagenew(self, path, noredirect=False, add_menu=None): xml_id = request.registry['website'].new_page(request.cr, request.uid, path, context=request.context) + if add_menu: + model, id = request.registry["ir.model.data"].get_object_reference(request.cr, request.uid, 'website', 'main_menu') + request.registry['website.menu'].create(request.cr, request.uid, { + 'name': path, + 'url': path, + 'parent_id': id, + }, context=request.context) url = "/page/" + xml_id if noredirect: return werkzeug.wrappers.Response(url, mimetype='text/plain') diff --git a/addons/website/static/src/js/website.editor.newpage.js b/addons/website/static/src/js/website.editor.newpage.js index 8d3b3e9b6b5..dc990b316fc 100644 --- a/addons/website/static/src/js/website.editor.newpage.js +++ b/addons/website/static/src/js/website.editor.newpage.js @@ -19,10 +19,27 @@ website.prompt({ id: "editor_new_page", window_title: _t("New Page"), - input: "Page Title", - }).then(function (val) { + input: _t("Page Title"), + init: function () { + var $group = this.$dialog.find("div.form-group"); + $group.find("label").removeClass("col-sm-3").addClass("col-sm-4"); + $group.find("div").removeClass("col-sm-9").addClass("col-sm-8"); + $group.removeClass("mb0"); + + var $add = $( + '
'+ + ''+ + '
'+ + ' '+ + '
'+ + '
'); + $add.find('label').text(_t("Add page in menu")); + $group.after($add); + } + }).then(function (val, field, $dialog) { if (val) { - document.location = '/website/add/' + encodeURI(val); + console.log('/website/add/' + encodeURI(val) + "?add_menu=" + $dialog.find('input[type="checkbox"]').is(':checked')); + document.location = '/website/add/' + encodeURI(val) + "?add_menu=" + $dialog.find('input[type="checkbox"]').is(':checked'); } }); } diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js index 6fde9495d36..b249fb7136f 100644 --- a/addons/website/static/src/js/website.js +++ b/addons/website/static/src/js/website.js @@ -206,6 +206,7 @@ var def = $.Deferred(); var dialog = $(openerp.qweb.render('website.prompt', options)).appendTo("body"); + options.$dialog = dialog; var field = dialog.find(options.field_type).first(); field.val(options.default); field.fillWith = function (data) { @@ -226,7 +227,7 @@ dialog.modal('show'); field.focus(); dialog.on('click', '.btn-primary', function () { - def.resolve(field.val(), field); + def.resolve(field.val(), field, dialog); dialog.remove(); }); }); From 386b2fe70f76ec01ef428b8efbb9d1c613253c25 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 14 Feb 2014 11:37:44 +0100 Subject: [PATCH 2/2] [IMP] website: add page: change default sequence and layout bzr revid: chm@openerp.com-20140214103744-dptrytkfbcwti6t8 --- addons/website/controllers/main.py | 2 +- addons/website/models/website.py | 7 ++++++- .../website/static/src/js/website.editor.newpage.js | 11 ++++------- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index 94a2e6fd01c..605315050c6 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -101,7 +101,7 @@ class Website(openerp.addons.web.controllers.main.Home): model, id = request.registry["ir.model.data"].get_object_reference(request.cr, request.uid, 'website', 'main_menu') request.registry['website.menu'].create(request.cr, request.uid, { 'name': path, - 'url': path, + 'url': "/page/" + xml_id, 'parent_id': id, }, context=request.context) url = "/page/" + xml_id diff --git a/addons/website/models/website.py b/addons/website/models/website.py index ea095c04fe3..3dcb028fed2 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -494,9 +494,14 @@ class website_menu(osv.osv): 'parent_left': fields.integer('Parent Left', select=True), 'parent_right': fields.integer('Parent Right', select=True), } + + def __defaults_sequence(self, cr, uid, context): + menu = self.search_read(cr, uid, [(1,"=",1)], ["sequence"], limit=1, order="sequence DESC", context=context) + return menu and menu[0]["sequence"] or 0 + _defaults = { 'url': '', - 'sequence': 0, + 'sequence': __defaults_sequence, 'new_window': False, } _parent_store = True diff --git a/addons/website/static/src/js/website.editor.newpage.js b/addons/website/static/src/js/website.editor.newpage.js index dc990b316fc..19cf8060897 100644 --- a/addons/website/static/src/js/website.editor.newpage.js +++ b/addons/website/static/src/js/website.editor.newpage.js @@ -22,18 +22,15 @@ input: _t("Page Title"), init: function () { var $group = this.$dialog.find("div.form-group"); - $group.find("label").removeClass("col-sm-3").addClass("col-sm-4"); - $group.find("div").removeClass("col-sm-9").addClass("col-sm-8"); $group.removeClass("mb0"); var $add = $( '
'+ - ''+ - '
'+ - ' '+ - '
'+ + ''+ '
'); - $add.find('label').text(_t("Add page in menu")); + $add.find('label').append(_t("Add page in menu")); $group.after($add); } }).then(function (val, field, $dialog) {