466f015d467316cb992f6295c4169643397d7fbd
[odoo/odoo.git] / addons / website_forum_doc / controllers / main.py
1 # -*- coding: utf-8 -*-
2
3
4 from openerp.addons.web import http
5 from openerp.addons.web.http import request
6 from openerp.addons.website.models.website import slug
7
8
9 class WebsiteDoc(http.Controller):
10     @http.route(['/forum/how-to', '/forum/how-to/<model("forum.documentation.toc"):toc>'], type='http', auth="public", website=True, multilang=True)
11     def toc(self, toc=None, **kwargs):
12         cr, uid, context, toc_id = request.cr, request.uid, request.context, False
13         if toc:
14             sections = toc.child_ids
15             forum = toc.forum_id
16         else:
17             toc_obj = request.registry['forum.documentation.toc']
18             obj_ids = toc_obj.search(cr, uid, [('parent_id', '=', False)], context=context)
19             sections = toc_obj.browse(cr, uid, obj_ids, context=context)
20             forum = sections and sections[0].forum_id or False
21         value = {
22             'toc': toc,
23             'main_object': toc or forum,
24             'forum': forum,
25             'sections': sections,
26         }
27         return request.website.render("website_forum_doc.documentation", value)
28
29     @http.route(['/forum/how-to/<model("forum.documentation.toc"):toc>/<model("forum.post"):post>'], type='http', auth="public", website=True, multilang=True)
30     def post(self, toc, post, **kwargs):
31         # TODO: implement a redirect instead of crash
32         assert post.documentation_toc_id.id == toc.id, "Wrong post!"
33         value = {
34             'toc': toc,
35             'post': post,
36             'main_object': post,
37             'forum': post.forum_id
38         }
39         return request.website.render("website_forum_doc.documentation_post", value)
40
41
42 #---------------------
43 # Forum Posts
44 # --------------------
45
46 # class WebsiteForum(WebsiteForum):
47
48 #     def prepare_question_values(self, forum, **kwargs):
49 #         cr, uid, context = request.cr, request.uid, request.context
50 #         TOC = request.registry['documentation.toc']
51 #         obj_ids = TOC.search(cr, uid, [('child_ids', '=', False)], context=context)
52 #         toc = TOC.browse(cr, uid, obj_ids, context=context)
53 #         values = super(WebsiteForum, self).prepare_question_values(forum=forum, kwargs=kwargs)
54 #         values.update({'documentaion_toc': toc})
55 #         return values
56
57 #     @http.route('/forum/<model("forum.forum"):forum>/question/<model("forum.post"):post>/toc', type='http', auth="user", multilang=True, website=True)
58 #     def post_toc(self, forum, post, **kwargs):
59 #         toc_id = int(kwargs.get('content')) if kwargs.get('content') else False
60 #         request.registry['forum.post'].write(request.cr, request.uid, [post.id], {'toc_id': toc_id}, context=request.context)
61 #         return werkzeug.utils.redirect("/forum/%s/question/%s" % (slug(forum), slug(post)))