diff options
| author | Romain Derie <rde@odoo.com> | 2020-02-13 13:45:15 +0000 |
|---|---|---|
| committer | Romain Derie <rde@odoo.com> | 2020-02-18 16:04:11 +0000 |
| commit | b997684b062bb1010c52f4af49f72f2be570e392 (patch) | |
| tree | c4815311940cc68c6ac569156862d45143f88c6e /addons | |
| parent | 601795ba4e0255765a029ae38583a8dfcb648475 (diff) | |
[IMP] website, website_*: improvement of 7dd70438e1
* website_blog, website_event_track, website_forum, website_mail_channel
7dd70438e1ec 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>
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/website/models/ir_http.py | 6 | ||||
| -rw-r--r-- | addons/website/models/website.py | 6 | ||||
| -rw-r--r-- | addons/website_blog/controllers/main.py | 2 | ||||
| -rw-r--r-- | addons/website_event_track/controllers/main.py | 2 | ||||
| -rw-r--r-- | addons/website_forum/controllers/main.py | 2 | ||||
| -rw-r--r-- | addons/website_mail_channel/controllers/main.py | 4 |
6 files changed, 11 insertions, 11 deletions
diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py index b67bacf8da9..ca734f1afe7 100644 --- a/addons/website/models/ir_http.py +++ b/addons/website/models/ir_http.py @@ -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 diff --git a/addons/website/models/website.py b/addons/website/models/website.py index 789b43708d4..54e4c8f6214 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -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: diff --git a/addons/website_blog/controllers/main.py b/addons/website_blog/controllers/main.py index ee6b17ba303..ec804c255c2 100644 --- a/addons/website_blog/controllers/main.py +++ b/addons/website_blog/controllers/main.py @@ -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. diff --git a/addons/website_event_track/controllers/main.py b/addons/website_event_track/controllers/main.py index 95c7a909959..deb4630bd73 100644 --- a/addons/website_event_track/controllers/main.py +++ b/addons/website_event_track/controllers/main.py @@ -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() diff --git a/addons/website_forum/controllers/main.py b/addons/website_forum/controllers/main.py index 31606e41a9a..412a711730f 100644 --- a/addons/website_forum/controllers/main.py +++ b/addons/website_forum/controllers/main.py @@ -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: diff --git a/addons/website_mail_channel/controllers/main.py b/addons/website_mail_channel/controllers/main.py index 4e561f33c0c..4e2747bbeff 100644 --- a/addons/website_mail_channel/controllers/main.py +++ b/addons/website_mail_channel/controllers/main.py @@ -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': |
