Skip to Content

Contributors

Re: Group based editable tree vs form pop up edition?

Hello,

Thank you Holger, overriding _get_view and using user_has_group absolutely still works in v16!
I tried something like this for instance:
                   if self.user_has_groups('base.group_system'):
                    for sub_form_node in arch.xpath("//field[@name='invoice_line_ids']/tree"):
                        sub_form_node.attrib["editable"] = ""
I initially assumed the result of the method might be cached but fortunately that is not where the cache happens
(I could test with different users). So the change is pretty easy to deal with.

On Wed, Mar 27, 2024 at 3:17 PM Holger Brunn <notifications@odoo-community.org> wrote:
*Do you have an alternative solution to suggest for v16?*

override get_view for your model, and do group specific things there.
Or probably better, override _get_view_cache [1], and also override 
_get_view_cache_key to add 
self.env.user.has_group('the_group.youre_looking_for') or similar to the cache 
key.

I mourned the loss of group-specific view inheritance quite a bit, because you 
can do very nifty things with it. So I'm still of a mind to eventually write 
an addon that brings it back for models with some mixin applied.

[1] https://github.com/OCA/OCB/blob/16.0/odoo/addons/base/models/
ir_ui_view.py#L2635



-- 
Your partner for the hard Odoo problems
https://hunki-enterprises.com

_______________________________________________
Mailing-List: https://odoo-community.org/groups/contributors-15
Post to: mailto:contributors@odoo-community.org
Unsubscribe: https://odoo-community.org/groups?unsubscribe



--
Raphaël Valyi
Founder and consultant


by "Raphaël Valyi" <rvalyi@akretion.com> - 03:15 - 29 Mar 2024

Reference

  • Group based editable tree vs form pop up edition?
    Dear Odoo experts,

    CONTEXT:
    More and more we are being contacted by companies who already use Odoo in some countries and would like to use it in Brazil too using the multi-companies approach. For service companies it's nearly possible (and a no go for industries because still too many side effects to deal with).

    As we isolated most of the fiscal craziness in the l10n_br_fiscal module with its own tables and UI, we can inject the Brazilian localization pretty smoothly in other modules (specially through our l10n_br_account module mediation).

    PROBLEM:
    What is still a problem is about half of the users in a Brazilian company need to check or even edit many fiscal parameters in orders lines or invoice lines (see screenshots).

    So we used to force the popup form based edition for these lines, that is we inherit the tree element and remove the editable="bottom" attribute. 

    This however is very invasive for the non Brazilian users (because it is slower, because they might have customized the tree view). It also causes friction with some other modules that expect the default inline tree edition.

    To fix this I recently made a POC where we would have advanced Brazilian fiscal groups where users would see use these popup forms while many users would use the default inline tree edition.

    The problem is that it was using the groups_id in ir.ui.view to enable or not the group based view selection. But this feature has been removed in Odoo v16 to make the view caching easier:

    Do you have an alternative solution to suggest for v16? As views will be cached without group consideration I imagine the selection between editable tree and form will need to happen on the client side... 
    I tried to add a groups=... on the attribute tag that overrides the editable property but it is not effective...

    Do you know a simple Javascript approach?
    Alternatively would could have a button in the tree that would open the form popup. Ideally that would be a Javascript action that doesn't require saving the form (a server side action would also have trouble finding a proper non inline form view to inherit). Such a Javascript button to switch the view could even be a generic OCA module. Any pointers on how to do it?

    Thank you.


    --
    Raphaël Valyi
    Founder and consultant


    by "Raphaël Valyi" <rvalyi@akretion.com> - 05:16 - 27 Mar 2024