[IMP]project_average_acceptable_time:fix page crash when the portal user is follower of any project

This commit is contained in:
2026-08-10 16:07:28 +02:00
parent 055003c159
commit 11d82988d1
3 changed files with 20 additions and 9 deletions

View File

@@ -3,7 +3,7 @@
{ {
"name": "project_average_acceptable_time", "name": "project_average_acceptable_time",
"version": "18.0.1.0.0", "version": "18.0.1.1.0",
"author": "Elabore", "author": "Elabore",
"website": "https://git.elabore.coop/elabore/project-tools", "website": "https://git.elabore.coop/elabore/project-tools",
"maintainer": "Clément Thomas", "maintainer": "Clément Thomas",

View File

@@ -17,9 +17,12 @@ class CustomCustomerPortal(CustomerPortal):
if post and request.httprequest.method == "POST": if post and request.httprequest.method == "POST":
error, error_message = self.details_form_validate(post) error, error_message = self.details_form_validate(post)
if not error: if not error:
user = request.env.user # sudo: a portal user has no write access at all on
if user.default_project_id and post["average_acceptable_time"]: # project.project, and no read access on its default project
user.default_project_id.average_acceptable_time = post[ # unless it follows it
project_sudo = request.env.user.sudo().default_project_id
if project_sudo and post.get("average_acceptable_time"):
project_sudo.average_acceptable_time = post[
"average_acceptable_time" "average_acceptable_time"
] ]

View File

@@ -8,11 +8,19 @@
priority="40" priority="40"
> >
<xpath expr="//div[@class='o_portal_my_details']" position="inside"> <xpath expr="//div[@class='o_portal_my_details']" position="inside">
<hr class="mt-1 mb-0" /> <!-- sudo: a portal user cannot read its own default project
<b>Average acceptable time</b>: <t unless it follows it (project.project_project_rule_portal) -->
t-esc="user_id.default_project_id.average_acceptable_time" <t
t-options="{'widget': 'float_time'}" t-set="default_project_sudo"
t-value="user_id.sudo().default_project_id"
/> />
<t t-if="default_project_sudo">
<hr class="mt-1 mb-0" />
<b>Average acceptable time</b>: <t
t-esc="default_project_sudo.average_acceptable_time"
t-options="{'widget': 'float_time'}"
/>
</t>
</xpath> </xpath>
</template> </template>
@@ -34,7 +42,7 @@
type="text" type="text"
name="average_acceptable_time" name="average_acceptable_time"
t-attf-class="form-control #{error.get('average_acceptable_time') and 'is-invalid' or ''}" t-attf-class="form-control #{error.get('average_acceptable_time') and 'is-invalid' or ''}"
t-att-value="average_acceptable_time or user_id.default_project_id.average_acceptable_time" t-att-value="average_acceptable_time or user_id.sudo().default_project_id.average_acceptable_time"
t-options="{'widget': 'float_time'}" t-options="{'widget': 'float_time'}"
/> />
</div> </div>