[FIX] website: Select some text > Click on the link button > Select Page textfield...
authorChristophe Matthieu <chm@openerp.com>
Wed, 19 Feb 2014 10:55:02 +0000 (11:55 +0100)
committerOlivier Dony <odo@openerp.com>
Wed, 19 Feb 2014 10:55:02 +0000 (11:55 +0100)
bzr revid: odo@openerp.com-20140219105502-jg8f2i1gpz5vdarf

addons/website/models/website.py
addons/website/static/src/js/website.editor.js

index 3dcb028..99187fc 100644 (file)
@@ -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
index 8b27c97..dc82c0c 100644 (file)
         },
         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)