summaryrefslogtreecommitdiff
path: root/addons/purchase/controllers
diff options
context:
space:
mode:
authoryhu-odoo <yhu@odoo.com>2020-06-09 20:58:08 +0000
committeryhu-odoo <yhu@odoo.com>2020-06-29 13:27:17 +0000
commit0d3d26aca1cccd6b06bca46f0ec8fdaf2fda3d6e (patch)
tree880dae32d11f7e88fd5d9d65f32e0b1bdda2afb5 /addons/purchase/controllers
parent687a845cdbeab38c32c885539a5ee777ba7fd206 (diff)
[IMP] purchase(_stock): portal update scheduled date
1. Show only date not datetime on update portal. When update the scheduled date, set it to be the last minute of that date. 2. Send updated date immediately when user pick a date. 3. If an activity for update the date already exist, update the note instead of creating a new one. Task #2265912 PR 52809
Diffstat (limited to 'addons/purchase/controllers')
-rw-r--r--addons/purchase/controllers/portal.py30
1 files changed, 18 insertions, 12 deletions
diff --git a/addons/purchase/controllers/portal.py b/addons/purchase/controllers/portal.py
index 92136935681..600f7b8f751 100644
--- a/addons/purchase/controllers/portal.py
+++ b/addons/purchase/controllers/portal.py
@@ -3,10 +3,11 @@
import base64
from collections import OrderedDict
+from datetime import datetime
from odoo import http
from odoo.exceptions import AccessError, MissingError
-from odoo.http import request
+from odoo.http import request, Response
from odoo.tools import image_process
from odoo.tools.translate import _
from odoo.addons.portal.controllers.portal import pager as portal_pager, CustomerPortal
@@ -134,17 +135,22 @@ class CustomerPortal(CustomerPortal):
return request.redirect('/my')
updated_dates = []
- try:
- for id_str, date in kw.items():
- line = order_sudo.order_line.filtered(lambda l: l.id == int(id_str))
- if not line:
- return request.redirect(order_sudo.get_portal_url())
- updated_dates.append((line, date))
- except ValueError:
- return request.redirect(order_sudo.get_portal_url())
+ for id_str, date_str in kw.items():
+ try:
+ line_id = int(id_str)
+ except ValueError:
+ return request.redirect(order_sudo.get_portal_url())
+ line = order_sudo.order_line.filtered(lambda l: l.id == line_id)
+ if not line:
+ return request.redirect(order_sudo.get_portal_url())
+
+ try:
+ updated_date = line._convert_to_last_minute_of_day(datetime.strptime(date_str, '%Y-%m-%d'))
+ except ValueError:
+ continue
+
+ updated_dates.append((line, updated_date))
if updated_dates:
order_sudo._update_date_planned_for_lines(updated_dates)
-
- values = self._purchase_order_get_page_view_values(order_sudo, access_token, **kw)
- return request.render("purchase.portal_my_purchase_order", values)
+ return Response(status=204)