From 81f13d32cbb6ab79633cb89f85d8b91b6feb6419 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Hennecart=20=28jeh=29?= Date: Wed, 17 Aug 2022 08:17:25 +0000 Subject: [PATCH] [FIX] website_event: avoid multi tooltips on date edition Avoid having multiple tooltips. We keep only one "t-field" in the template. The other are replaced by a "t-out". We also add a specific message when the datetime format is not respected. task-2942617 X-original-commit: a99d684507782cd0d9ff700dc7a12f7a46442403 Part-of: odoo/odoo#102545 --- addons/web_editor/models/ir_qweb_fields.py | 12 ++++++------ .../views/event_templates_page_registration.xml | 15 ++++++--------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/addons/web_editor/models/ir_qweb_fields.py b/addons/web_editor/models/ir_qweb_fields.py index d3272ccb715..79bef048a11 100644 --- a/addons/web_editor/models/ir_qweb_fields.py +++ b/addons/web_editor/models/ir_qweb_fields.py @@ -11,13 +11,10 @@ Also, adds methods to convert values back to Odoo models. import babel import base64 import io -import itertools import json import logging import os import re -import hashlib -from datetime import datetime import pytz import requests @@ -29,11 +26,10 @@ from werkzeug import urls import odoo.modules from odoo import _, api, models, fields -from odoo.exceptions import UserError +from odoo.exceptions import UserError, ValidationError from odoo.tools import ustr, posix_to_ldml, pycompat from odoo.tools import html_escape as escape from odoo.tools.misc import get_lang, babel_locale_parse -from odoo.addons.base.models import ir_qweb REMOTE_CONNECTION_TIMEOUT = 2.5 @@ -324,7 +320,11 @@ class DateTime(models.AbstractModel): # parse from string to datetime lg = self.env['res.lang']._lang_get(self.env.user.lang) or get_lang(self.env) - dt = datetime.strptime(value, '%s %s' % (lg.date_format, lg.time_format)) + try: + datetime_format = f'{lg.date_format} {lg.time_format}' + dt = datetime.strptime(value, datetime_format) + except ValueError: + raise ValidationError(_("The datetime %s does not match the format %s", value, datetime_format)) # convert back from user's timezone to UTC tz_name = element.attrib.get('data-oe-original-tz') or self.env.context.get('tz') or self.env.user.tz diff --git a/addons/website_event/views/event_templates_page_registration.xml b/addons/website_event/views/event_templates_page_registration.xml index 66144b9f3b9..e933b0cfb97 100644 --- a/addons/website_event/views/event_templates_page_registration.xml +++ b/addons/website_event/views/event_templates_page_registration.xml @@ -42,27 +42,24 @@
Date & Time
-
-
+
Start - - + - - () ()
-
-
+
End - - - ()
+ + + ()