[IMP] website, website_*: improvement of 7dd70438e1
* website_blog, website_event_track, website_forum, website_mail_channel
7dd70438e1 was introduced in stable as a fix, which obviously had some stable
policy preventing some changes.
This commit improves that commit in master.
task-2119086
closes odoo/odoo#45622
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
This commit is contained in:
@@ -383,5 +383,7 @@ class ModelConverter(ModelConverter):
|
||||
domain = safe_eval(self.domain, (args or {}).copy())
|
||||
if dom:
|
||||
domain += dom
|
||||
for record in Model.search_read(domain, ['display_name']):
|
||||
yield {'loc': (record['id'], record['display_name'])}
|
||||
for record in Model.search(domain):
|
||||
# return record so URL will be the real endpoint URL as the record will go through `slug()`
|
||||
# the same way as endpoint URL is retrieved during dispatch (301 redirect), see `to_url()` from ModelConverter
|
||||
yield record
|
||||
|
||||
@@ -780,11 +780,9 @@ class Website(models.Model):
|
||||
if query == FALSE_DOMAIN:
|
||||
continue
|
||||
|
||||
for value_dict in converter.generate(uid=self.env.uid, dom=query, args=val):
|
||||
for rec in converter.generate(uid=self.env.uid, dom=query, args=val):
|
||||
newval.append(val.copy())
|
||||
value_dict[name] = value_dict['loc']
|
||||
del value_dict['loc']
|
||||
newval[-1].update(value_dict)
|
||||
newval[-1].update({name: rec})
|
||||
values = newval
|
||||
|
||||
for value in values:
|
||||
|
||||
@@ -182,7 +182,7 @@ class WebsiteBlog(http.Controller):
|
||||
return r
|
||||
|
||||
@http.route([
|
||||
'''/blog/<model("blog.blog"):blog>/post/<model("blog.post", "[('blog_id','=',blog[0])]"):blog_post>''',
|
||||
'''/blog/<model("blog.blog"):blog>/post/<model("blog.post", "[('blog_id','=',blog.id)]"):blog_post>''',
|
||||
], type='http', auth="public", website=True, sitemap=True)
|
||||
def blog_post(self, blog, blog_post, tag_id=None, page=1, enable_editor=None, **post):
|
||||
""" Prepare all values to display the blog.
|
||||
|
||||
@@ -16,7 +16,7 @@ from odoo.tools import plaintext2html, html2plaintext
|
||||
|
||||
class WebsiteEventTrackController(http.Controller):
|
||||
|
||||
@http.route(['''/event/<model("event.event"):event>/track/<model("event.track", "[('event_id','=',event[0])]"):track>'''], type='http', auth="public", website=True, sitemap=True)
|
||||
@http.route(['''/event/<model("event.event"):event>/track/<model("event.track", "[('event_id','=',event.id)]"):track>'''], type='http', auth="public", website=True, sitemap=True)
|
||||
def event_track_view(self, event, track, **post):
|
||||
if not event.can_access_from_current_website():
|
||||
raise NotFound()
|
||||
|
||||
@@ -201,7 +201,7 @@ class WebsiteForum(WebsiteProfile):
|
||||
except IOError:
|
||||
return False
|
||||
|
||||
@http.route(['''/forum/<model("forum.forum"):forum>/question/<model("forum.post", "[('forum_id','=',forum[0]),('parent_id','=',False),('can_view', '=', True)]"):question>'''],
|
||||
@http.route(['''/forum/<model("forum.forum"):forum>/question/<model("forum.post", "[('forum_id','=',forum.id),('parent_id','=',False),('can_view', '=', True)]"):question>'''],
|
||||
type='http', auth="public", website=True, sitemap=True)
|
||||
def question(self, forum, question, **post):
|
||||
if not forum.active:
|
||||
|
||||
@@ -156,7 +156,7 @@ class MailGroup(http.Controller):
|
||||
return request.render('website_mail_channel.group_messages', values)
|
||||
|
||||
@http.route([
|
||||
'''/groups/<model('mail.channel', "[('channel_type', '=', 'channel')]"):group>/<model('mail.message', "[('model','=','mail.channel'), ('res_id','=',group[0])]"):message>''',
|
||||
'''/groups/<model('mail.channel', "[('channel_type', '=', 'channel')]"):group>/<model('mail.message', "[('model','=','mail.channel'), ('res_id','=',group.id)]"):message>''',
|
||||
], type='http', auth="public", website=True, sitemap=True)
|
||||
def thread_discussion(self, group, message, mode='thread', date_begin=None, date_end=None, **post):
|
||||
if group.channel_type != 'channel':
|
||||
@@ -183,7 +183,7 @@ class MailGroup(http.Controller):
|
||||
return request.render('website_mail_channel.group_message', values)
|
||||
|
||||
@http.route(
|
||||
'''/groups/<model('mail.channel', "[('channel_type', '=', 'channel')]"):group>/<model('mail.message', "[('model','=','mail.channel'), ('res_id','=',group[0])]"):message>/get_replies''',
|
||||
'''/groups/<model('mail.channel', "[('channel_type', '=', 'channel')]"):group>/<model('mail.message', "[('model','=','mail.channel'), ('res_id','=',group.id)]"):message>/get_replies''',
|
||||
type='json', auth="public", methods=['POST'], website=True)
|
||||
def render_messages(self, group, message, **post):
|
||||
if group.channel_type != 'channel':
|
||||
|
||||
Reference in New Issue
Block a user