Skip to content

Commit dc466e4

Browse files
committed
TEST: Add test datetime fields
1 parent 3dde667 commit dc466e4

File tree

2 files changed

+23
-6
lines changed

2 files changed

+23
-6
lines changed

indico/modules/announcement/controllers.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,27 @@
55
# modify it under the terms of the MIT License; see the
66
# LICENSE file for more details.
77

8+
from datetime import datetime
9+
810
from flask import flash, redirect
911

1012
from indico.modules.admin import RHAdminBase
1113
from indico.modules.announcement import announcement_settings
1214
from indico.modules.announcement.forms import AnnouncementForm
1315
from indico.modules.announcement.views import WPAnnouncement
14-
from indico.util.i18n import _
16+
from indico.util.date_time import server_to_utc
17+
# from indico.util.i18n import _
1518
from indico.web.flask.util import url_for
1619
from indico.web.forms.base import FormDefaults
1720

1821

1922
class RHAnnouncement(RHAdminBase):
2023
def _process(self):
21-
form = AnnouncementForm(obj=FormDefaults(**announcement_settings.get_all()))
24+
form = AnnouncementForm(obj=FormDefaults(**announcement_settings.get_all(),
25+
test_start_dt=server_to_utc(datetime(2025, 4, 8, 13, 37))))
2226
if form.validate_on_submit():
23-
announcement_settings.set_multi(form.data)
24-
flash(_('Settings have been saved'), 'success')
27+
# announcement_settings.set_multi(form.data)
28+
# flash(_('Settings have been saved'), 'success')
29+
flash(f'{form.test_start_dt.data} - {form.test_end_dt.data}', 'info')
2530
return redirect(url_for('announcement.manage'))
2631
return WPAnnouncement.render_template('settings.html', 'announcement', form=form)

indico/modules/announcement/forms.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,28 @@
55
# modify it under the terms of the MIT License; see the
66
# LICENSE file for more details.
77

8+
from datetime import datetime
9+
810
from wtforms.fields import BooleanField, TextAreaField
9-
from wtforms.validators import DataRequired
11+
from wtforms.validators import DataRequired, Optional
1012

13+
from indico.util.date_time import server_to_utc
1114
from indico.util.i18n import _
1215
from indico.web.forms.base import IndicoForm
13-
from indico.web.forms.validators import UsedIf
16+
from indico.web.forms.fields.datetime import IndicoDateTimeField
17+
from indico.web.forms.validators import DateTimeRange, LinkedDateTime, UsedIf
1418
from indico.web.forms.widgets import SwitchWidget
1519

1620

1721
class AnnouncementForm(IndicoForm):
1822
enabled = BooleanField(_('Enabled'), widget=SwitchWidget())
1923
message = TextAreaField(_('Message'), [UsedIf(lambda form, _: form.enabled.data), DataRequired()],
2024
description=_('You may use Markdown and basic HTML elements for formatting.'))
25+
26+
test_start_dt = IndicoDateTimeField('Start', [DataRequired(),
27+
DateTimeRange(earliest=server_to_utc(datetime(2025, 4, 5)),
28+
latest=server_to_utc(datetime(2025, 5, 20)))])
29+
test_end_dt = IndicoDateTimeField('End', [Optional(), LinkedDateTime('test_start_dt'),
30+
DateTimeRange(earliest=None,
31+
latest=server_to_utc(datetime(2025, 6, 20, 15)))],
32+
allow_clear=True)

0 commit comments

Comments
 (0)