diff options
| author | yhu-odoo <yhu@odoo.com> | 2020-06-09 20:58:08 +0000 |
|---|---|---|
| committer | yhu-odoo <yhu@odoo.com> | 2020-06-29 13:27:17 +0000 |
| commit | 0d3d26aca1cccd6b06bca46f0ec8fdaf2fda3d6e (patch) | |
| tree | 880dae32d11f7e88fd5d9d65f32e0b1bdda2afb5 /addons/purchase/controllers | |
| parent | 687a845cdbeab38c32c885539a5ee777ba7fd206 (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.py | 30 |
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) |
