30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
# Copyright 2020 Lokavaluto ()
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
from odoo.http import request, route
|
|
|
|
from odoo.addons.portal.controllers.portal import CustomerPortal
|
|
|
|
|
|
class CustomCustomerPortal(CustomerPortal):
|
|
@route(["/my/account"], type="http", auth="user", website=True)
|
|
def account(self, redirect=None, **post):
|
|
self.OPTIONAL_BILLING_FIELDS.append(
|
|
"average_acceptable_time"
|
|
) # unecessary save in res partner, but necessary to avoid error on form post
|
|
|
|
response = super().account(redirect, **post)
|
|
|
|
if post and request.httprequest.method == "POST":
|
|
error, error_message = self.details_form_validate(post)
|
|
if not error:
|
|
# sudo: a portal user has no write access at all on
|
|
# project.project, and no read access on its default project
|
|
# 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"
|
|
]
|
|
|
|
return response
|