Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
2 Odpovědi
6948 Zobrazení

I try to add a custom Boolean field to model res.users and put it on the User Preferences Form. The problem is that normal users have no rights to change this field on saving. Any idea howto deal with this?


Sorry, you are not allowed to modify this document. Only users with the following access level are currently allowed to do that:
- Administration/Access Rights
(Document model: res.users) 


from odoo import models, fields
class ResUsers(models.Model):
    _inherit = 'res.users'
    sidebar_visible = fields.Boolean("Show App Sidebar", default=True)


<?xml version="1.0" encoding="utf-8" ?>
<odoo>
    <record id="res_users_preferences" model="ir.ui.view">
        <field name="name">res.users.preferences</field>
        <field name="model">res.users</field>
        <field name="inherit_id" ref="base.view_users_form_simple_modif" />
        <field name="arch" type="xml">
            <xpath expr="//group[last()]" position="after">
                <group name="App Sidebar">
                    <field name="sidebar_visible" readonly="0"/>
                </group>
            </xpath>
        </field>
    </record>
</odoo>
Avatar
Zrušit
Autor Nejlepší odpověď

Working solution:

def __init__(self, pool, cr):
        """ Override of __init__ to add access rights on notification_email_send
            and alias fields. Access rights are disabled by default, but allowed
            on some specific fields defined in self.SELF_{READ/WRITE}ABLE_FIELDS.
        """
        init_res = super(ResUsers, self).__init__(pool, cr)
        # duplicate list to avoid modifying the original reference
        type(self).SELF_WRITEABLE_FIELDS = list(self.SELF_WRITEABLE_FIELDS)
        type(self).SELF_WRITEABLE_FIELDS.extend(['sidebar_visible'])
        # duplicate list to avoid modifying the original reference
        type(self).SELF_READABLE_FIELDS = list(self.SELF_READABLE_FIELDS)
        type(self).SELF_READABLE_FIELDS.extend(['sidebar_visible'])
        return init_res
Avatar
Zrušit
Nejlepší odpověď

Try to add class 'oe_read_only' in your field.
 Example:

field name="your_field" class="oe_read_only"/>
Avatar
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
1
lis 24
3357
1
říj 17
15720
2
pro 16
11733
1
kvě 16
5599
4
úno 25
2301