],
'data': [
'data/doc_data.xml',
+ 'data/cron.xml',
'views/doc.xml',
'views/website_doc.xml',
'security/ir.model.access.csv',
+ 'security/doc_security.xml',
],
'qweb': [
'static/src/xml/*.xml'
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+ <data>
+ <record forcecreate="True" id="ir_cron_check_challenge" model="ir.cron">
+ <field name="name">Run Moderator Checker</field>
+ <field name="interval_number">1</field>
+ <field name="interval_type">days</field>
+ <field name="numbercall">-1</field>
+ <field name="doall" eval="False" />
+ <field name="model">res.users</field>
+ <field name="function">_cron_moderator_access_update</field>
+ <field name="args">()</field>
+ </record>
+ </data>
+</openerp>
\ No newline at end of file
# -*- coding: utf-8 -*-
import doc
+import res_users
--- /dev/null
+# -*- coding: utf-8 -*-
+
+from openerp.osv import osv, fields
+
+
+class Users(osv.Model):
+ _inherit = 'res.users'
+
+ def _cron_moderator_access_update(self, cr, uid, context=None, ids=False):
+ """Daily cron check.
+
+ - apply Moderation group for users who have more than 1000 karma.
+ """
+ modrator_group = self.pool['ir.model.data'].get_object(cr, uid, "website_doc", "group_documentaion_moderator", context=context)
+ applicable_user_ids = self.search(cr, uid, [ ('karma', '>=', 1000), ('groups_id', '!=', modrator_group.id)], context=context)
+ users = [(4, user) for user in applicable_user_ids]
+ self.pool['res.groups'].write(cr, uid, [modrator_group.id], {'users': users}, context=context)
+ return True
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+<data noupdate="1">
+
+ <record id="group_documentaion_moderator" model="res.groups">
+ <field name="name">Documentaion Moderator</field>
+ <field name="category_id" ref="base.module_category_website"/>
+ <field name="comment">the user will have access to add Table of content on questions to manage documentation.</field>
+ <field name="users" eval="[(4, ref('base.user_root'))]"/>
+ </record>
+
+ <record id="base.group_website_publisher" model="res.groups">
+ <field name="implied_ids" eval="[(4, ref('group_documentaion_moderator'))]"/>
+ </record>
+
+</data>
+</openerp>
<field name="view_mode">tree,form</field>
</record>
- <menuitem id="menu_documentation" parent="website_forum.menu_website_forum" name="Documentation" action="action_documentation_toc" sequence="20"/>
+ <menuitem id="menu_documentation" parent="website_forum.menu_website_forum" groups="website_doc.group_documentaion_moderator" name="Documentation" action="action_documentation_toc" sequence="20"/>
<record id="action_documentation_toc_hierarchy" model="ir.actions.act_window">
<field name="name">Documentation Hierarchy</field>
<field name="view_id" ref="view_documentation_toc_hierarchy"/>
</record>
- <menuitem id="menu_documentation_hierarchy" parent="website_forum.menu_website_forum" name="Documentation Hierarchy" action="action_documentation_toc_hierarchy" sequence="25"/>
+ <menuitem id="menu_documentation_hierarchy" parent="website_forum.menu_website_forum" groups="website_doc.group_documentaion_moderator" name="Documentation Hierarchy" action="action_documentation_toc_hierarchy" sequence="25"/>
</data>
</openerp>
<script type="text/javascript" src="/website_doc/static/src/js/website_doc.js"/>
</xpath>
<xpath expr="//div[@id='about_forum']" position="before">
- <div t-if="header.get('question_data')">
+ <div t-if="header.get('question_data')" groups="website_doc.group_documentaion_moderator">
<div class="panel panel-default">
<div class="panel-heading" id="about_forum">
<h3 class="panel-title">Documentation</h3>