summaryrefslogtreecommitdiff
path: root/addons/website
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@openerp.com>2014-02-19 11:55:02 +0100
committerOlivier Dony <odo@openerp.com>2014-02-19 11:55:02 +0100
commita09b0db51dcfb80cb28a54eace0c0d90fbf5fc1b (patch)
tree4bf3b7ae52c6cf83187deba8ff2e43d9cae37531 /addons/website
parent78c0fcd060a8ffed43cbc7195de25c9d7221ff2d (diff)
[FIX] website: Select some text > Click on the link button > Select Page textfield and start typing (e.g. comm) > There is a lot of noise here; Dsiplaying create page for existing page
bzr revid: odo@openerp.com-20140219105502-jg8f2i1gpz5vdarf
Diffstat (limited to 'addons/website')
-rw-r--r--addons/website/models/website.py9
-rw-r--r--addons/website/static/src/js/website.editor.js3
2 files changed, 8 insertions, 4 deletions
diff --git a/addons/website/models/website.py b/addons/website/models/website.py
index 3dcb028fed2..99187fc7bad 100644
--- a/addons/website/models/website.py
+++ b/addons/website/models/website.py
@@ -175,10 +175,8 @@ class website(osv.osv):
return '%s.%s' % (module, slugify(name, max_length=50))
def page_exists(self, cr, uid, ids, name, module='website', context=None):
- page = self.page_for_name(cr, uid, ids, name, module=module, context=context)
-
try:
- self.pool["ir.model.data"].get_object_reference(cr, uid, module, name)
+ return self.pool["ir.model.data"].get_object_reference(cr, uid, module, name)
except:
return False
@@ -348,6 +346,7 @@ class website(osv.osv):
router = request.httprequest.app.get_db_router(request.db)
# Force enumeration to be performed as public user
uid = self.get_public_user(cr, uid, context=context)
+ url_list = []
for rule in router.iter_rules():
if not self.rule_is_enumerable(rule):
continue
@@ -369,7 +368,9 @@ class website(osv.osv):
for values in generated:
domain_part, url = rule.build(values, append_unknown=False)
page = {'name': url, 'url': url}
-
+ if url in url_list:
+ continue
+ url_list.append(url)
if not filtered and query_string and not self.page_matches(cr, uid, page, query_string, context=context):
continue
yield page
diff --git a/addons/website/static/src/js/website.editor.js b/addons/website/static/src/js/website.editor.js
index 8b27c97acb3..dc82c0c17b9 100644
--- a/addons/website/static/src/js/website.editor.js
+++ b/addons/website/static/src/js/website.editor.js
@@ -1034,10 +1034,13 @@
},
start: function () {
var self = this;
+ var last;
this.$('#link-page').select2({
minimumInputLength: 1,
placeholder: _t("New or existing page"),
query: function (q) {
+ if (q.term == last) return;
+ last = q.term;
$.when(
self.page_exists(q.term),
self.fetch_pages(q.term)