[IMP] website_forum: make forum;forum inherit from mail.thread. This way we
author--global <tde@openerp.com>
Thu, 22 May 2014 11:49:41 +0000 (13:49 +0200)
committer--global <tde@openerp.com>
Thu, 22 May 2014 11:49:41 +0000 (13:49 +0200)
add the possibility to users to follow a forum and be automatically followers of new
questions, using some new subtypes on the forum.forum model that do the auto subscription.

Also added a profile link on the forum, when logged.

Also added a subscribe button on the forum.

addons/website_forum/data/forum_data.xml
addons/website_forum/models/forum.py
addons/website_forum/views/forum.xml
addons/website_forum/views/website_forum.xml

index 2db9947..a3c9b47 100644 (file)
             <field name="default" eval="False"/>
             <field name="description">Question Edited</field>
         </record>
+        <!-- Forum subtypes, to follow all answers or questions -->
+        <record id="mt_forum_answer_new" model="mail.message.subtype">
+            <field name="name">New Answer</field>
+            <field name="res_model">forum.forum</field>
+            <field name="default" eval="False"/>
+            <field name="hidden" eval="False"/>
+            <field name="parent_id" eval="ref('mt_answer_new')"/>
+            <field name="relation_field">forum_id</field>
+        </record>
+        <record id="mt_forum_question_new" model="mail.message.subtype">
+            <field name="name">New Question</field>
+            <field name="res_model">forum.forum</field>
+            <field name="default" eval="True"/>
+            <field name="hidden" eval="False"/>
+            <field name="parent_id" eval="ref('mt_question_new')"/>
+            <field name="relation_field">forum_id</field>
+        </record>
 
     </data>
     <data noupdate="1">
index 8d56d41..1a7f68e 100644 (file)
@@ -1,7 +1,5 @@
 # -*- coding: utf-8 -*-
 
-from urlparse import urljoin
-
 import openerp
 from openerp import SUPERUSER_ID
 from openerp.addons.website.models.website import slug
@@ -13,7 +11,7 @@ class Forum(osv.Model):
     """TDE TODO: set karma values for actions dynamic for a given forum"""
     _name = 'forum.forum'
     _description = 'Forums'
-    _inherit = ['website.seo.metadata']
+    _inherit = ['mail.thread', 'website.seo.metadata']
     # karma values
     _karma_upvote = 5  # done
     _karma_downvote = 50  # done
index 233aeae..3d10ad4 100644 (file)
                             <field name="description"/>
                         </group>
                     </sheet>
+                    <div class="oe_chatter">
+                        <field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
+                        <field name="message_ids" widget="mail_thread" options='{"thread_level": 1}' placeholder="Send a message to the group"/>
+                    </div>
                 </form>
             </field>
         </record>
index 3f5ec33..4a96899 100644 (file)
@@ -71,6 +71,9 @@
                         <li t-att-class="searches.get('badges') and 'active' or '' ">
                             <a t-attf-href="/forum/#{ slug(forum) }/badge">Badges</a>
                         </li>
+                        <li t-if="not is_public_user" t-att-class="searches.get('my_profile') and 'active' or '' ">
+                            <a t-attf-href="/forum/#{ slug(forum) }/user/#{user.id}">My Profile</a>
+                        </li>
                     </ul>
                     <form class="navbar-form navbar-right" role="search" t-attf-action="/forum/#{ slug(forum) }" method="get">
                         <div class="form-group">
                 </div>
                 <div class="col-sm-3" id="right-column">
                     <a t-if="not header.get('ask_hide')" class="btn btn-primary btn-lg btn-block mb16" t-attf-href="/forum/#{slug(forum)}/ask">Ask a Question</a>
+                    <div class="panel panel-default">
+                        <div class="panel-heading">
+                            <h3 class="panel-title">Keep Informed</h3>
+                        </div>
+                        <div class="panel-body">
+                            <t t-call="website_mail.follow">
+                                <t t-set="email" t-value="user.email"/>
+                                <t t-set="object" t-value="forum"/>
+                            </t>
+                        </div>
+                    </div>
                     <div class="panel panel-default" id="about_forum">
                         <div class="panel-heading">
                             <h3 class="panel-title">About This Forum</h3>
                         </div>
                         <div class="panel-body">
-                            <t t-raw="forum.description"/><br/>
+                            <t t-raw="forum.description"/>
                             <a t-if="not header.get('is_guidelines')" t-attf-href="/forum/#{slug(forum)}/faq" class="fa fa-arrow-right"> Read Guidelines</a>
                             <a t-if="header.get('is_guidelines')" t-attf-href="/forum/#{slug(forum)}" class="fa fa-arrow-right"> Back to <span t-field="forum.name"/></a>
                         </div>