[IMP] Sitemap

bzr revid: fp@tinyerp.com-20140511134037-84vnn1b4zfzk8som
This commit is contained in:
Fabien Pinckaers 2014-05-11 15:40:37 +02:00
parent 54d30d5194
commit 105618443f
4 changed files with 13 additions and 10 deletions

View 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 """

View 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):

View 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)

View 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

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_forum_forum forum.forum model_forum_forum 1 0 0 0
3 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
4 access_forum_post_portal access_forum_post_public forum.post.portal forum.post.public model_forum_post base.group_portal base.group_public 1 1 0 1 0 0
5 access_forum_post_user access_forum_post_portal forum.post.user forum.post.portal model_forum_post base.group_user base.group_portal 1 1 1 1 0
6 access_forum_post_vote_public access_forum_post_user forum.post.vote.public forum.post.user model_forum_post_vote model_forum_post base.group_public base.group_user 1 0 1 0 1 0 1
access_forum_post_vote_portal orum.post.vote.portal model_forum_post_vote base.group_portal 1 1 1 0
7 access_forum_post_vote_user access_forum_post_vote_public forum.post.vote.user forum.post.vote.public model_forum_post_vote base.group_user base.group_public 1 1 0 1 0 1 0
8 access_forum_post_reason_public access_forum_post_vote_portal forum.post.reason.public orum.post.vote.portal model_forum_post_reason model_forum_post_vote base.group_public base.group_portal 1 0 1 0 1 0
9 access_forum_post_reason_portal access_forum_post_vote_user forum.post.reason.portal forum.post.vote.user model_forum_post_reason model_forum_post_vote base.group_portal base.group_user 1 0 1 0 1 0 1
access_forum_post_reason_user forum.post.reason.user model_forum_post_reason base.group_user 1 1 1 1
10 access_forum_tag_public access_forum_post_reason_public forum.tag.public forum.post.reason.public model_forum_tag model_forum_post_reason base.group_public 1 0 1 0 0
11 access_forum_tag_portal access_forum_post_reason_portal forum.tag.portal forum.post.reason.portal model_forum_tag model_forum_post_reason base.group_portal 1 0 1 0 0
12 access_forum_tag_user access_forum_post_reason_user forum.tag.user forum.post.reason.user model_forum_tag model_forum_post_reason base.group_user 1 1 1 1
13 access_forum_tag_public forum.tag.public model_forum_tag base.group_public 1 0 1 0
14 access_forum_tag_portal forum.tag.portal model_forum_tag base.group_portal 1 0 1 0
15 access_forum_tag_user forum.tag.user model_forum_tag base.group_user 1 1 1 1