summaryrefslogtreecommitdiff
path: root/addons/website_form
diff options
context:
space:
mode:
authorAchraf (abz) <abz@odoo.com>2020-12-03 12:13:33 +0000
committerAchraf (abz) <abz@odoo.com>2020-12-04 11:02:41 +0000
commitb873bda1e560bc49ab707aa238fdc962f23bc1e4 (patch)
treee91a7e1fca81f9c80e4358579987161377ee4167 /addons/website_form
parent82df14554e0e869be25189967f74b0ed13cf749f (diff)
[FIX] survey, web, web_editor, website, website_form: Prevent invalid date stock.picking
What are the steps to reproduce your issue? 1. Install "stock" 2. Go to Inventory/Inventory Overview/Internal Transfer 3. Create new record and set manually a date with year < 1000 like "0008-10-10 18:35:00" 4. Save What is currently happening? An error arises when saving the record, and it is then no longer possible to reopen the records or any view containing it. This also prevents us from correcting the date to no longer have the error Why is this happening? The root cause is an inconsistency in `strftime` for years < 1000 [1, 2]. To take it into account, a zero-padding is needed in the DateTime parser. How to fix the bug? The missing padding is added. However, such dates lead to problematic behaviors in Python: ``` DT_FORMAT = "%Y-%m-%d %H:%M:%S" new_date = "0008-02-05 18:10:10" datetime.strptime( datetime.strptime( new_date, DT_FORMAT ).strftime(DT_FORMAT), DT_FORMAT ) ``` This raises: ``` ValueError: time data '8-02-05 18:10:10' does not match format '%Y-%m-%d %H:%M:%S' ``` As of today there was no reported business cases where dates with year < 1000 would be necessary. Therefore, we limit the range to years >= 1000. [1] https://bugs.python.org/issue13305 [2] https://docs.python.org/dev/library/datetime.html#strftime-strptime-behavior opw-2408260 closes odoo/odoo#62818 Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Diffstat (limited to 'addons/website_form')
-rw-r--r--addons/website_form/static/src/snippets/s_website_form/000.js2
1 files changed, 1 insertions, 1 deletions
diff --git a/addons/website_form/static/src/snippets/s_website_form/000.js b/addons/website_form/static/src/snippets/s_website_form/000.js
index fa0c920a53d..3cb891a3069 100644
--- a/addons/website_form/static/src/snippets/s_website_form/000.js
+++ b/addons/website_form/static/src/snippets/s_website_form/000.js
@@ -37,7 +37,7 @@ odoo.define('website_form.s_website_form', function (require) {
// Initialize datetimepickers
var datepickers_options = {
- minDate: moment({ y: 1 }),
+ minDate: moment({ y: 1000 }),
maxDate: moment({y: 9999, M: 11, d: 31}),
calendarWeeks: true,
icons: {