Odoo Help


How to hide Edit button for specific user in form issue?It's Urgent..Somebody Help me?

on 7/18/13, 12:39 AM 5,090 views

I want to hide edit button in form issue for specific user. In this case , I want user only can create issue but can't edit any recorded issue. Only admin and project manager that able to Edit recorded issue. I have tried change in access control list and record rules but it's not working. I also have tried change access rights in models project.issue and unchecked write access for user. Then , user can't edit but also can't create. Any one can help me for this case?thank you.

Note : Sorry for asking same question, because this problem isn't solved yet since 4 days ago..

Nishant Kashyap
On 7/23/13, 7:09 AM

You can make your record in two states :-1.)State="OPEN",2.)State="Submitted". Once you submitted the record then the creator of the record cannot edit it , then only Project Manager or the Admin can edit the record. Make a new Group "Can_Edit_Group" in the settings-->Users-->Groups.And add the project manager into it.

You need to add state and edit_group field in your _columns in your .py file.

     'state':fields.selection([('open', 'Open'), ('submitted','Submitted'),],'Status', readonly=True),
     'edit_group':fields.many2one('res.groups', string='HR Manager Group'),

def _get_edit_group(self, cr, uid, context=None):
        edit_group = all_groups.browse(cr, uid, all_groups.search(cr,uid,[('name','=','Can_Edit_Group')])[0]).id
        return edit_group

_defaults = {
    'edit_group':lambda self, cr, uid, context:self._get_edit_group( cr, uid, context=None)

def change_state(self, cr, uid, ids, context=None):
        self.write(cr, uid, ids, { 'state' : 'submitted' })
        return True

In XML add a button to change the record state on click. Put the button inside the header tag. If you are inheriting the View then do it using the Xpath else, put the header tag after you open the form tag.

<group attrs="{'invisible':[('state','=','submitted' )]}">
       <button name="change_state" string="Submit" type="object" states="open" class="oe_highlight"/>
      <field name="state" widget="statusbar" statusbar_visible="open,submitted"/>

In the record rule you can enter this rule: This will check if the state="submitted" and edit_group i.e the id of the group of whom users can edit the record are "in" the logged in user group.If this condition satisfy then the logged in user can edit the record else not.

['&',('state','=','submitted'),('edit_group','in',[g.id for g in user.groups_id])]

Give them all the access i.e check the boolean field read,write,create,delete and add the group into it i.e. add the Can_Edit_Group And don forget to add the your object and give record a name. And check the Active field.

I hope this is what you were looking for.

Grover Menacho
On 7/18/13, 1:39 AM

I've seen this question for a few days I though that you already have a solution.

I don't have so much time but this is going to help you. I hope that you know how to code.

def write(self, cr, uid, ids, datas = {}, context = {} ):
          if uid not in self.pool.get('res.users').search(cr, uid, [('login','in',['admin','grover'])]):
             return super(class_name, self).write(cr, uid, ids, datas, context)
             raise osv.except_osv('Error','You are not allowed to make changes!')

Right now admin and grover can't make changes. You can have 1 or more users on that list ['username1','username2','username3']

It's the easiest way. there are other ways to check groups but as I told you I don't have so much time right now.

Oh. this you have to do it inside your module, or if it's a native module inside the inherited module.

GH Mediacloud, Grover Menacho
on 7/18/13, 1:42 AM

By the way sorry for I asked this question in this 4 days , because it's true..I'm not solve this problem yet.. I am a beginner in openerp..If you don't mind to help me again,. can you tell me how to code in function "if uid .....#check if user belongs to a certain group" above..in this case project user can't edit form issue..thank you for helping me

on 7/18/13, 1:56 AM

I hope that can help you.

GH Mediacloud, Grover Menacho
on 7/18/13, 2:51 PM

Big thanks Mr.Grover..hmm I copy your code and follow your instruction above..but it become can't connect to open erp..it's written "No Handler Found"..sorry for distrub you again..if you don't mind would you help me again?which file that I have to code?I already do in file project_issue.py Thank you very much mr Grover

on 7/19/13, 12:29 AM

Hai Mr.Grover..sorry for disturbing you again..hmmm if you don't mind to help me again..please response my comment above...because this project deadline in next tuesday so that I really need your help..thank you sir

on 7/19/13, 1:20 PM

No Handler found happens when you can't connect to the server. Maybe you modified something that you shouldn't modify. The code above only can produce errors but in the server if has something wrong.

GH Mediacloud, Grover Menacho
on 7/19/13, 2:03 PM

hmmm okei, but when the code above is removed my server is working again..hahaha..btw , thank you for helping me..:)

on 7/20/13, 1:45 AM

Can you help me where should i post that code? Is it in project_issue.py ?

on 7/22/13, 1:17 AM

Yes, inside that file, inside the class that you want to modify

GH Mediacloud, Grover Menacho
on 7/22/13, 12:02 PM
On 7/22/13, 1:18 AM

any1 can help me?

Hey, If you want , you can make your edit button disable for some group of users, without hiding them .Will that will work for you ..?

Nishant Kashyap
on 7/22/13, 2:17 PM

yes, its ok.. can you help me?

on 7/23/13, 1:28 AM

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

0 follower(s)


Asked: 7/18/13, 12:39 AM
Seen: 5090 times
Last updated: 5/20/15, 6:07 AM