Ir al contenido
Menú
Se marcó esta pregunta
2 Respuestas
6952 Vistas

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
Descartar
Autor Mejor respuesta

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
Descartar
Mejor respuesta

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

field name="your_field" class="oe_read_only"/>
Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
1
nov 24
3357
1
oct 17
15722
2
dic 16
11733
1
may 16
5601
4
feb 25
2303