[IMP]project_average_acceptable_time:fix page crash when the portal user is follower of any project #33
@@ -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",
|
||||||
|
|||||||
@@ -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"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -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">
|
||||||
|
<!-- sudo: a portal user cannot read its own default project
|
||||||
|
unless it follows it (project.project_project_rule_portal) -->
|
||||||
|
<t
|
||||||
|
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" />
|
<hr class="mt-1 mb-0" />
|
||||||
<b>Average acceptable time</b>: <t
|
<b>Average acceptable time</b>: <t
|
||||||
t-esc="user_id.default_project_id.average_acceptable_time"
|
t-esc="default_project_sudo.average_acceptable_time"
|
||||||
t-options="{'widget': 'float_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>
|
||||||
|
|||||||
Reference in New Issue
Block a user