mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 00:07:22 +00:00
Veranstaltungssuche findet keine Events, wenn auf einen Tag eingeschränkt #280
This commit is contained in:
parent
3e7b12dd49
commit
c0dd763651
@ -380,7 +380,9 @@ class FindEventForm(FlaskForm):
|
||||
csrf = False
|
||||
|
||||
date_from = CustomDateField(lazy_gettext("From"), validators=[Optional()])
|
||||
date_to = CustomDateField(lazy_gettext("to"), validators=[Optional()])
|
||||
date_to = CustomDateField(
|
||||
lazy_gettext("to"), set_end_of_day=True, validators=[Optional()]
|
||||
)
|
||||
keyword = StringField(lazy_gettext("Keyword"), validators=[Optional()])
|
||||
category_id = SelectField(
|
||||
lazy_gettext("Category"), validators=[Optional()], coerce=int
|
||||
|
||||
@ -13,7 +13,9 @@ class FindEventDateForm(FlaskForm):
|
||||
csrf = False
|
||||
|
||||
date_from = CustomDateField(lazy_gettext("From"), validators=[Optional()])
|
||||
date_to = CustomDateField(lazy_gettext("to"), validators=[Optional()])
|
||||
date_to = CustomDateField(
|
||||
lazy_gettext("to"), set_end_of_day=True, validators=[Optional()]
|
||||
)
|
||||
keyword = StringField(lazy_gettext("Keyword"), validators=[Optional()])
|
||||
category_id = SelectField(
|
||||
lazy_gettext("Category"), validators=[Optional()], coerce=int
|
||||
|
||||
@ -12,7 +12,9 @@ class PlaningForm(FlaskForm):
|
||||
csrf = False
|
||||
|
||||
date_from = CustomDateField(lazy_gettext("From"), validators=[Optional()])
|
||||
date_to = CustomDateField(lazy_gettext("to"), validators=[Optional()])
|
||||
date_to = CustomDateField(
|
||||
lazy_gettext("to"), set_end_of_day=True, validators=[Optional()]
|
||||
)
|
||||
category_id = SelectField(
|
||||
lazy_gettext("Category"), validators=[Optional()], coerce=int
|
||||
)
|
||||
|
||||
@ -7,7 +7,7 @@ from wtforms.fields.core import StringField
|
||||
from wtforms.validators import Length, StopValidation
|
||||
from wtforms.widgets import CheckboxInput, ListWidget, html_params
|
||||
|
||||
from project.dateutils import berlin_tz
|
||||
from project.dateutils import berlin_tz, date_set_end_of_day
|
||||
|
||||
|
||||
class MultiCheckboxField(SelectMultipleField):
|
||||
@ -88,8 +88,20 @@ class CustomDateWidget:
|
||||
|
||||
|
||||
class CustomDateField(DateTimeField):
|
||||
set_end_of_day = False
|
||||
widget = CustomDateWidget()
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
label=None,
|
||||
validators=None,
|
||||
format="%Y-%m-%d %H:%M:%S",
|
||||
set_end_of_day=False,
|
||||
**kwargs
|
||||
):
|
||||
super(CustomDateField, self).__init__(label, validators, format, **kwargs)
|
||||
self.set_end_of_day = set_end_of_day
|
||||
|
||||
def process_formdata(self, valuelist):
|
||||
if valuelist:
|
||||
try:
|
||||
@ -99,7 +111,12 @@ class CustomDateField(DateTimeField):
|
||||
return
|
||||
|
||||
date = datetime.strptime(date_str, "%Y-%m-%d")
|
||||
self.data = berlin_tz.localize(date)
|
||||
localized_date = berlin_tz.localize(date)
|
||||
|
||||
if self.set_end_of_day:
|
||||
localized_date = date_set_end_of_day(localized_date)
|
||||
|
||||
self.data = localized_date
|
||||
except Exception:
|
||||
raise ValueError("Not a valid date value. Looking for YYYY-MM-DD.")
|
||||
|
||||
|
||||
@ -61,7 +61,7 @@ class EventSearchParams(object):
|
||||
@date_to_str.setter
|
||||
def date_to_str(self, value):
|
||||
self._date_to_str = value
|
||||
self._date_to = form_input_to_date(value)
|
||||
self._date_to = form_input_to_date(value, 23, 59, 59)
|
||||
|
||||
@property
|
||||
def coordinate(self):
|
||||
|
||||
@ -61,3 +61,21 @@ def test_search(client, seeder, utils):
|
||||
organizer_id = seeder.upsert_default_event_organizer(admin_unit_id)
|
||||
url = utils.get_url("api_v1_event_date_search", organizer_id=organizer_id)
|
||||
response = utils.get_ok(url)
|
||||
|
||||
|
||||
def test_search_oneDay(client, seeder, utils):
|
||||
from project.dateutils import create_berlin_date
|
||||
|
||||
user_id, admin_unit_id = seeder.setup_base()
|
||||
|
||||
start = create_berlin_date(2020, 10, 3, 10)
|
||||
end = create_berlin_date(2020, 10, 3, 11)
|
||||
name = "Spezialveranstaltung"
|
||||
event_id = seeder.create_event(admin_unit_id, name=name, start=start, end=end)
|
||||
|
||||
url = utils.get_url(
|
||||
"api_v1_event_date_search", date_from="2020-10-03", date_to="2020-10-03"
|
||||
)
|
||||
response = utils.get_ok(url)
|
||||
assert len(response.json["items"]) == 1
|
||||
assert response.json["items"][0]["event"]["id"] == event_id
|
||||
|
||||
@ -190,6 +190,7 @@ class Seeder(object):
|
||||
end=None,
|
||||
draft=False,
|
||||
name="Name",
|
||||
start=None,
|
||||
):
|
||||
from project.models import Event, EventAttendanceMode, PublicStatus
|
||||
from project.services.event import insert_event, upsert_event_category
|
||||
@ -199,8 +200,8 @@ class Seeder(object):
|
||||
event.admin_unit_id = admin_unit_id
|
||||
event.categories = [upsert_event_category("Other")]
|
||||
event.name = name
|
||||
event.description = "Beschreibung"
|
||||
event.start = self.get_now_by_minute()
|
||||
event.description = ("Beschreibung",)
|
||||
event.start = start if start else self.get_now_by_minute()
|
||||
event.end = end
|
||||
event.event_place_id = self.upsert_default_event_place(admin_unit_id)
|
||||
event.organizer_id = self.upsert_default_event_organizer(admin_unit_id)
|
||||
|
||||
@ -43,6 +43,27 @@ def test_event_dates(client, seeder, utils):
|
||||
utils.get_ok(url)
|
||||
|
||||
|
||||
def test_event_dates_oneDay(client, seeder, utils):
|
||||
from project.dateutils import create_berlin_date
|
||||
|
||||
user_id, admin_unit_id = seeder.setup_base()
|
||||
au_short_name = "meinecrew"
|
||||
|
||||
start = create_berlin_date(2020, 10, 3, 10)
|
||||
end = create_berlin_date(2020, 10, 3, 11)
|
||||
name = "Spezialveranstaltung"
|
||||
seeder.create_event(admin_unit_id, name=name, start=start, end=end)
|
||||
|
||||
url = utils.get_url(
|
||||
"widget_event_dates",
|
||||
au_short_name=au_short_name,
|
||||
date_from="2020-10-03",
|
||||
date_to="2020-10-03",
|
||||
)
|
||||
response = utils.get_ok(url)
|
||||
utils.assert_response_contains(response, name)
|
||||
|
||||
|
||||
def test_event_date(client, seeder, utils, app, db):
|
||||
user_id, admin_unit_id = seeder.setup_base(log_in=False)
|
||||
seeder.create_event(admin_unit_id)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user