[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
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -42,27 +42,24 @@
|
||||
<div class="o_wevent_sidebar_block">
|
||||
<h6 class="o_wevent_sidebar_title">Date & Time</h6>
|
||||
<div class="d-flex">
|
||||
<h5 t-field="event.date_begin" class="my-1 me-1 oe_hide_on_date_edit" t-options="{'tz_name': event.date_tz, 'date_only': 'true', 'format': 'EEEE'}"/>
|
||||
<h5 class="my-1 oe_hide_on_date_edit" t-field="event.date_begin" t-options="{'tz_name': event.date_tz, 'date_only': 'true', 'format': 'long'}" itemprop="startDate" t-att-datetime="event.date_begin"/>
|
||||
<h5 t-field="event.date_begin" class="my-1" t-options="{'tz_name': event.date_tz, 'format': 'EEEE MMMM dd, YYYY'}" t-att-datetime="event.date_begin"/>
|
||||
</div>
|
||||
<t t-if="not event.is_one_day">Start -</t>
|
||||
<span t-field="event.date_begin" t-options="{'tz_name': event.date_tz, 'time_only': 'true', 'format': 'short'}"/>
|
||||
<span t-out="event.date_begin" t-options="{'widget': 'datetime', 'tz_name': event.date_tz, 'time_only': 'true', 'format': 'short'}"/>
|
||||
<t t-if="event.is_one_day">
|
||||
<i class="fa fa-long-arrow-right mx-1"/>
|
||||
<span t-field="event.date_end" t-options="{'tz_name': event.date_tz, 'time_only': 'true', 'format': 'short'}"/>
|
||||
(<span t-out="event.date_tz"/>)
|
||||
</t>
|
||||
<t t-else="">
|
||||
(<span t-out="event.date_tz"/>)
|
||||
<i class="fa fa-long-arrow-down d-block text-muted mx-3 my-2" style="font-size: 1.5rem"/>
|
||||
<div class="d-flex">
|
||||
<h5 t-field="event.date_end" class="my-1 me-1 oe_hide_on_date_edit" t-options="{'tz_name': event.date_tz, 'date_only': 'true', 'format': 'EEEE'}"/>
|
||||
<h5 class="my-1 oe_hide_on_date_edit" t-field="event.date_end" t-options="{'tz_name': event.date_tz, 'date_only': 'true', 'format': 'long'}"/>
|
||||
<h5 t-field="event.date_end" class="my-1" t-options="{'tz_name': event.date_tz, 'format': 'EEEE MMMM dd, YYYY'}"/>
|
||||
</div>
|
||||
<t t-if="not event.is_one_day">End -</t>
|
||||
<span t-field="event.date_end" t-options="{'tz_name': event.date_tz, 'time_only': 'true', 'format': 'short'}"/>
|
||||
(<span t-out="event.date_tz"/>)
|
||||
</t>
|
||||
<span t-if="not event.is_one_day" t-out="event.date_end" t-options="{'widget': 'datetime', 'tz_name': event.date_tz, 'time_only': 'true', 'format': 'short'}"/>
|
||||
<span t-else="" t-field="event.date_end" t-options="{'tz_name': event.date_tz, 'time_only': 'true', 'format': 'short'}" t-att-datetime="event.date_end"/>
|
||||
(<span t-out="event.date_tz"/>)
|
||||
|
||||
<div class="dropdown">
|
||||
<i class="fa fa-calendar me-1"/>
|
||||
|
||||
Reference in New Issue
Block a user