To configure a custom user type for your subcontractor field techs in Odoo with access to the Tasks module but restricted from viewing billing information, you can achieve this through access rights, record rules, and view customization. Here's a step-by-step guide:
1. Create a Custom User Group
You’ll need to create a new user group specifically for subcontractor field techs.
-
Navigate to Groups Configuration:
- Go to Settings > Users & Companies > Groups.
-
Create a New Group:
- Click Create and name the group, e.g., Subcontractor Field Tech.
- Set Implied Groups to include only the minimum permissions they need (e.g., "Portal" or "User: Tasks").
-
Assign the Group to the Subcontractor Users:
- Go to Settings > Users & Companies > Users.
- Assign the new group to the subcontractor users.
2. Restrict Access to Sensitive Fields
Billing-related fields in the Tasks module (e.g., planned_amount, total_cost) can be hidden for the subcontractors.
Option A: Using Security Rules
-
Go to Technical Settings:
- Activate developer mode: Settings > Activate Developer Mode.
- Navigate to Settings > Technical > Security > Record Rules.
-
Create a New Record Rule:
- Model: project.task.
- Name: Hide Billing Information for Subcontractors.
- Domain: [] (applies globally to all records).
- Rule:
['|', ('user_id', '=', user.id), ('create_uid', '=', user.id)]
This ensures the subcontractor can only see tasks they are assigned to or created.
-
Assign the Rule to the Subcontractor Group:
- Set Groups to Subcontractor Field Tech.
Option B: Hide Billing Fields in Views
To hide billing-related fields in task forms and kanban views:
-
Navigate to Task Form View:
- Go to Settings > Technical > User Interface > Views.
- Search for project.task.form or the specific view you want to modify.
-
Modify the XML:
Add the groups attribute to hide the billing fields for the subcontractor group:
<field name="planned_amount" groups="base.group_user"/>
<field name="total_cost" groups="base.group_user"/>
The base.group_user ensures that only internal users (not subcontractors) see these fields.
3. Limit Task Visibility
If you want subcontractors to see only their assigned tasks:
-
Create a Record Rule:
- Model: project.task.
- Name: Limit Tasks to Assigned Subcontractors.
- Domain:
['|', ('user_id', '=', user.id), ('create_uid', '=', user.id)]
- Assign this rule to the Subcontractor Field Tech group.
-
Test the Rule:
- Assign tasks to a subcontractor and ensure they can see only those tasks.
4. Simplify Their View
Subcontractors may not need access to all the details in the task form. Simplify their interface:
-
Duplicate the Task Form View:
- Go to Settings > Technical > User Interface > Views.
- Duplicate the project.task.form view.
-
Customize the View for Subcontractors:
- Add groups="subcontractor_field_tech" to fields and sections you want them to see.
-
Remove Billing-Related Fields:
- Remove fields like planned_amount, total_cost, etc., from the subcontractor's form view.
5. Set Subcontractor User as Portal
If subcontractors don’t need full Odoo access but only a limited portal interface:
-
Enable Portal Access:
- Go to Contacts and find the subcontractor contact.
- Click Grant Portal Access.
- Assign them the Subcontractor Field Tech group.
-
Restrict Portal Task View:
- Go to Settings > Technical > Security > Access Control List.
- Ensure Subcontractor Field Tech has limited access to the project.task model (e.g., read and write but no create/delete).
6. Test and Validate
-
Log in as a subcontractor user to confirm:
- Tasks are visible but billing fields are hidden.
- Only assigned tasks are accessible.
- They can update task details without seeing sensitive information.
-
Adjust any access rules or views based on feedback.
7. Optional: Automate User Assignment
If you frequently add subcontractors, automate their group assignment:
- Create a server action triggered on user creation to assign the Subcontractor Field Tech group.
Summary
By combining custom user groups, record rules, and view customizations, you can tailor the Odoo interface to meet your subcontractor field techs' needs. They’ll have access to their tasks while sensitive billing details remain hidden.
Let me know if you need detailed guidance on any step!