This question has been flagged
2 Replies
10671 Views

I've set up a simple tree view, which was pretty easy, but now I want to restrict the items in that tree view based on something like a domain. More specifically, I've created a page so users can view past timesheets (from hr_timesheet_sheet), but I only want them to be able to see their own past timesheets in the tree view. The basic tree view is like this:

    <record id="past_timesheet_tree" model="ir.ui.view">

        <field name="name">hr_timesheet_sheet.sheet.tree</field>
        <field name="model">hr_timesheet_sheet.sheet</field>
        <field name="arch" type="xml">
            <tree string="Past Timesheets" create="false" edit="false" delete="false">
                <field ... />
                <field ... />
            </tree>
        </field>
    </record>

 

Unfortunately it looks like I can't add a domain attribute to the <tree> tag. Also, I don't want to just create a default filter, because then users would be able to remove that filter and see all the timesheets. I need this view to completely restrict users to only view items that belong to them. I can't think of any examples of where this happens in the system, so I'm hoping someone here will have an idea.

 

(On an unrelated meta note, I indented my code block with 4 or more spaces, but I'm not getting code formatting. Is there something else I can do to put it in a code block?)

Avatar
Discard
Best Answer

A better solution is to add an Access Right rule to the 'Employee' group for the model.

[('user_id', '=', user.id)]

This prevents users from seeing other users timesheets, unless they are "Officers" or "Managers".

  • Navigate to Settings -> Users -> Groups
  • Open the Employee Group
  • Navigate to the Rules tab and Click Add
  • Click Create
  • Fill out the rule like this (Timesheet here is hr_timesheet_sheet.sheet)
  • Add the Employee group to this rule:
  • Click Save and Close.
  • Click Save.

 

 

 

Avatar
Discard
Author

Brilliant, thanks Ray! You're right, that's much more like what I was looking for. I knew there had to be a fairly straightforward way to do it, I was just going the wrong direction. Your answers on here are always extremely helpful.

Best Answer

Hi

The domain must be limited in the "action window related to the menu". But perhups, the right way would be to add a domain restriccion in "acces rules".

Regards,

Juan José - Ing ADHOC

Avatar
Discard