Question

Hello Openerp Developers. I have created a custom module today, It's working fine when accessing by Admin, But module menu is not appear on top menu bar when access by other users. I created the access rights in security folder, I think I done some thing wrong in security.xml or csv files, can somebody help me get out of this problem.

I listed my module files and code below. Check it Let me What I did wrong or What I missed out.

forum_view.xml,
forum.py, 
__init__.py,
__openerp__.py
security/forum_nyros_security.xml
security/ir.model.access.csv

_init_.py

# -*- coding: utf-8 -*-
import forum

_openerp_.py

# -*- coding: utf-8 -*-

{
   'name' : "Nyros Discussion Forum",
   'category' : "Test",
   'version' : "1.0",
   'depends' : ['base','mail'],
   'author' : "Me",
   'description' : """\
     Open Academy modsule for managing trainings:
      - training courses
       - training sessions
     - attendees registration""",
   'data' : ['forum_view.xml',
             'security/forum_nyros_security.xml',
             'security/ir.model.access.csv'

             ],
}

forum.py

import datetime
import time
import openerp
from openerp.osv import osv, fields


class Course(osv.osv):
    _name = "forum.course"
    _inherit = ['mail.thread', 'ir.needaction_mixin']

    _columns = {
              'name' : fields.char(string="Question Title", size=256, required=True),
              'description' : fields.text(string="Question Description", required=True),
              'date_of_q_created': fields.datetime('Date of Created'),
              'category_question': fields.many2one('forum.categ', 'Question Category'),
              'create_uid': fields.many2one('res.users', 'Question Created By', readonly=True),
                 }

Course()
class question_categ(osv.osv):
    _name='forum.categ'
    _description='category of Question'
    _columns={
       'name':fields.char('Create a Category type',size=100)
    }
question_categ()

forum_view.xml

<openerp>
    <data>

        <!--  search view -->

        <record id="forum_search" model="ir.ui.view">
            <field name="name">forum.search</field>
            <field name="model">forum.course</field>
            <field name="type">search</field>
            <field name="arch" type="xml">
                <search string="Question Answer Discussion Forum">
                       <field name="name"/>
                       <field name="description"/>
                       <field name="date_of_q_created"/>
                </search>
            </field>
        </record>

        <!--  Tree View -->

        <record model="ir.ui.view" id="course_tree_view">
            <field name="name">forum.course.tree</field>
            <field name="model">forum.course</field>
            <field name="arch" type="xml">
                <tree string="Questions">
                    <field name="name"/>
                   <!-- <field name="description"/>-->
                    <field name="date_of_q_created" />
                    <field name="category_question"/>
                    <field name="create_uid"/>
                </tree>
            </field>
        </record>

        <!--  Form View -->

        <record model="ir.ui.view" id="course_form_view">
            <field name="name">forum.course.form</field>
            <field name="model">forum.course</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <form string="Question and Answer" version = "v7">
                    <sheet>
                    <group string="Question">
                    <field name="name"/>
                    <field name="description"/>
                    <field name="date_of_q_created" />
                    <field name="category_question"/>
                    <field name="create_uid"/>
                    </group>
                    <group string="Answers and Comments">
                    <div class="oe_chatter">
                        <field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
                        <field name="message_ids" widget="mail_thread"/>
                    </div>
                    </group>
                    </sheet>
                </form>
            </field>
        </record>

        <!--  Action View -->


    <record model="ir.actions.act_window" id="course_list_action">
        <field name="name">Questions form</field>
        <field name="res_model">forum.course</field>
                <field name="target">current</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
    </record>

        <!-- Menu Items -->

        <menuitem id="main_forum_menu" name="Manage forum" />
        <menuitem id="forum_menu" name="Discussion Forum" parent="main_forum_menu" />
        <menuitem id="courses_menu" name="Questions sidemenu" parent="forum_menu" action="course_list_action" />


    </data>
</openerp>

security/forum_nyros_security.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
    <record id="group_forum_manager" model="res.groups">
        <field name="name">Forum Management/ Manager</field>
    </record>
    <record id="group_forum_user" model="res.groups">
        <field name="name">Forum Management / User</field>
    </record>
</data>
</openerp>

security/ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_forum_course,forum.course,model_forum_course,forum_nyros.group_forum_user,1,1,1,1
access_forum_categ,forum.categ,model_forum_categ,forum_nyros.group_forum_user,1,1,1,1
Was it helpful?

Solution

try below line in your _openerp_.py file

'installable': True,
'auto_install': False,

Your security/forum_nyros_security.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="0">
    <record model="ir.module.category" id="module_category_forum">
        <field name="name">Forum Management</field>
        <field name="sequence">7</field>
    </record>

    <record id="group_forum_user" model="res.groups">
        <field name="name">User</field>
        <field name="category_id" ref="module_category_forum"/>
        <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
    </record>

    <record id="group_forum_manager" model="res.groups">
        <field name="name">Manager</field>
        <field name="category_id" ref="module_category_forum"/>
        <field name="implied_ids" eval="[(4, ref('group_forum_user'))]"/>
        <field name="users" eval="[(4, ref('base.user_root'))]"/>
    </record>
</data>
</openerp>

And your security/ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_forum_course,forum.course,model_forum_course,group_forum_user,1,1,1,1
access_forum_categ,forum.categ,model_forum_categ,group_forum_user,1,1,1,1

Now do following steps.

  • Setting => Users => Click on Demo User
  • Now move to Access Rights => you will see Forum Management
  • Select User and save it.
  • Now Login with demo user you will see your Module.

NOTE: As Admin, You can give rights to the User. If the User don't have any access right to the Forum Management (remain empty) than User will not show Module.

After this will you can show your module.

OTHER TIPS

The code seems pretty ok to me.

What about your non-admin user. Is it in the new group? If not, please put it in there :-)

In your openerp client,go to Settings/technical/Security/ access rights. Check whether your access created access right is there or not.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top