[FIX] website_forum: fix error 500 when editing an answer
authorJeremy Kersten <jke@odoo.com>
Mon, 1 Dec 2014 14:20:40 +0000 (15:20 +0100)
committerOlivier Dony <odo@openerp.com>
Mon, 1 Dec 2014 19:02:06 +0000 (20:02 +0100)
Was caused by missing tags.
Also fix also backwards-compatibility for textext selection method.

addons/website_forum/controllers/main.py

index 9a88eac..1e1553f 100644 (file)
@@ -223,6 +223,7 @@ class WebsiteForum(http.Controller):
                         question_tag_ids.append((4, tag_ids[0]))
                     else:
                         question_tag_ids.append((0, 0, {'name': tag, 'forum_id': forum.id}))
+                question_tag_ids = {forum.id: question_tag_ids}
         elif tag_version == "select2":
             question_tag_ids = Forum._tag_to_write_vals(cr, uid, [forum.id], post.get('question_tags', ''), context)
 
@@ -403,6 +404,11 @@ class WebsiteForum(http.Controller):
         Tag = request.registry['forum.tag']
         Forum = request.registry['forum.forum']
         tag_version = kwargs.get('tag_type', 'texttext')
+        
+        vals = {
+            'name': kwargs.get('question_name'),
+            'content': kwargs.get('content'),
+        }
         if tag_version == "texttext":  # old version - retro v8 - #TODO Remove in master
             if kwargs.get('question_tag') and kwargs.get('question_tag').strip('[]'):
                 tags = kwargs.get('question_tag').strip('[]').replace('"', '').split(",")
@@ -413,15 +419,10 @@ class WebsiteForum(http.Controller):
                     else:
                         new_tag = Tag.create(cr, uid, {'name': tag, 'forum_id': forum.id}, context=context)
                         question_tags.append(new_tag)
-            tags_val = [(6, 0, question_tags)]
+                vals['tag_ids'] = [(6, 0, question_tags)]
         elif tag_version == "select2":  # new version
-            tags_val = Forum._tag_to_write_vals(cr, uid, [forum.id], kwargs.get('question_tag', ''), context)
+            vals['tag_ids'] = Forum._tag_to_write_vals(cr, uid, [forum.id], kwargs.get('question_tag', ''), context)[forum.id]
 
-        vals = {
-            'tag_ids': tags_val[forum.id],
-            'name': kwargs.get('question_name'),
-            'content': kwargs.get('content'),
-        }
         request.registry['forum.post'].write(cr, uid, [post.id], vals, context=context)
         question = post.parent_id if post.parent_id else post
         return werkzeug.utils.redirect("/forum/%s/question/%s" % (slug(forum), slug(question)))