[IMP] Sitemap
authorFabien Pinckaers <fp@tinyerp.com>
Sun, 11 May 2014 13:40:37 +0000 (15:40 +0200)
committerFabien Pinckaers <fp@tinyerp.com>
Sun, 11 May 2014 13:40:37 +0000 (15:40 +0200)
bzr revid: fp@tinyerp.com-20140511134037-84vnn1b4zfzk8som

addons/website/models/ir_http.py
addons/website/models/website.py
addons/website_forum/controllers/main.py
addons/website_forum/security/ir.model.access.csv

index d90b40b..358f105 100644 (file)
@@ -193,10 +193,13 @@ class ModelConverter(ir.ir_http.ModelConverter):
             request.cr, _uid, int(m.group(1)), context=request.context)
 
     def generate(self, cr, uid, query=None, args=None, context=None):
-        for record in request.registry[self.model].name_search(
-            cr, uid, name=query or '', args=eval( self.domain, (args or {}).copy()),
-            context=context):
-            yield {'loc': record}
+        obj = request.registry[self.model]
+        domain = eval( self.domain, (args or {}).copy())
+        if query:
+            domain.append((obj._rec_name, 'ilike', '%'+query+'%'))
+        for record in obj.search_read(cr, uid, domain=domain, fields=['write_date',obj._rec_name], context=context):
+            if record.get(obj._rec_name, False):
+                yield {'loc': (record['id'], record[obj._rec_name])}
 
 class PageConverter(werkzeug.routing.PathConverter):
     """ Only point of this converter is to bundle pages enumeration logic """
index 40a296a..5e339a2 100644 (file)
@@ -325,7 +325,11 @@ class website(osv.osv):
 
             converters = rule._converters or {}
             values = [{}]
-            for (name, converter) in converters.items():
+            convitems = converters.items()
+            # converters with a domain are processed after the other ones
+            gd = lambda x: hasattr(x[1], 'domain') and (x[1].domain <> '[]')
+            convitems.sort(lambda x, y: cmp(gd(x), gd(y)))
+            for (name, converter) in convitems:
                 newval = []
                 for val in values:
                     for v in converter.generate(request.cr, uid, query=query_string, args=val, context=context):
index 1464019..2619a8b 100644 (file)
@@ -576,7 +576,7 @@ class WebsiteForum(http.Controller):
         })
         return request.website.render("website_forum.badge", values)
 
-    @http.route(['''/forum/<model("forum.forum"):forum>/badge/<model("gamification.badge", "[('challenge_ids.category', '=', 'forum')]"):badge>'''], type='http', auth="public", website=True, multilang=True)
+    @http.route(['''/forum/<model("forum.forum"):forum>/badge/<model("gamification.badge"):badge>'''], type='http', auth="public", website=True, multilang=True)
     def badge_users(self, forum, badge, **kwargs):
         user_ids = [badge_user.user_id.id for badge_user in badge.owner_ids]
         users = request.registry['res.users'].browse(request.cr, SUPERUSER_ID, user_ids, context=request.context)
index f7a0e66..0d00861 100644 (file)
@@ -1,19 +1,15 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
 access_forum_forum,forum.forum,model_forum_forum,,1,0,0,0
 access_forum_forum_manager,forum.forum.maanger,model_forum_forum,base.group_erp_manager,1,1,1,1
-
 access_forum_post_public,forum.post.public,model_forum_post,base.group_public,1,0,0,0
 access_forum_post_portal,forum.post.portal,model_forum_post,base.group_portal,1,1,1,0
 access_forum_post_user,forum.post.user,model_forum_post,base.group_user,1,1,1,1
-
 access_forum_post_vote_public,forum.post.vote.public,model_forum_post_vote,base.group_public,1,0,0,0
 access_forum_post_vote_portal,orum.post.vote.portal,model_forum_post_vote,base.group_portal,1,1,1,0
 access_forum_post_vote_user,forum.post.vote.user,model_forum_post_vote,base.group_user,1,1,1,1
-
 access_forum_post_reason_public,forum.post.reason.public,model_forum_post_reason,base.group_public,1,0,0,0
 access_forum_post_reason_portal,forum.post.reason.portal,model_forum_post_reason,base.group_portal,1,0,0,0
 access_forum_post_reason_user,forum.post.reason.user,model_forum_post_reason,base.group_user,1,1,1,1
-
 access_forum_tag_public,forum.tag.public,model_forum_tag,base.group_public,1,0,1,0
 access_forum_tag_portal,forum.tag.portal,model_forum_tag,base.group_portal,1,0,1,0
 access_forum_tag_user,forum.tag.user,model_forum_tag,base.group_user,1,1,1,1