mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 00:07:22 +00:00
Location filter in manage event search #426
This commit is contained in:
parent
f36a1984a3
commit
12cf0ed655
@ -71,6 +71,8 @@ def get_next_full_hour():
|
|||||||
|
|
||||||
|
|
||||||
def form_input_to_date(date_str, hour=0, minute=0, second=0):
|
def form_input_to_date(date_str, hour=0, minute=0, second=0):
|
||||||
|
if not date_str: # pragma: no cover
|
||||||
|
return None
|
||||||
date = datetime.strptime(date_str, "%Y-%m-%d")
|
date = datetime.strptime(date_str, "%Y-%m-%d")
|
||||||
date_time = date_add_time(date, hour=hour, minute=minute, second=second)
|
date_time = date_add_time(date, hour=hour, minute=minute, second=second)
|
||||||
return berlin_tz.localize(date_time)
|
return berlin_tz.localize(date_time)
|
||||||
|
|||||||
@ -5,6 +5,7 @@ from flask_wtf import FlaskForm
|
|||||||
from wtforms import (
|
from wtforms import (
|
||||||
BooleanField,
|
BooleanField,
|
||||||
FormField,
|
FormField,
|
||||||
|
HiddenField,
|
||||||
IntegerField,
|
IntegerField,
|
||||||
RadioField,
|
RadioField,
|
||||||
SelectField,
|
SelectField,
|
||||||
@ -17,7 +18,7 @@ from wtforms.fields.core import FieldList
|
|||||||
from wtforms.fields.html5 import EmailField, URLField
|
from wtforms.fields.html5 import EmailField, URLField
|
||||||
from wtforms.validators import DataRequired, Length, Optional
|
from wtforms.validators import DataRequired, Length, Optional
|
||||||
|
|
||||||
from project.forms.common import Base64ImageForm, event_rating_choices
|
from project.forms.common import Base64ImageForm, distance_choices, event_rating_choices
|
||||||
from project.forms.event_place import EventPlaceLocationForm
|
from project.forms.event_place import EventPlaceLocationForm
|
||||||
from project.forms.widgets import CustomDateField, CustomDateTimeField, HTML5StringField
|
from project.forms.widgets import CustomDateField, CustomDateTimeField, HTML5StringField
|
||||||
from project.models import (
|
from project.models import (
|
||||||
@ -441,6 +442,15 @@ class FindEventForm(FlaskForm):
|
|||||||
event_place_id = SelectField(
|
event_place_id = SelectField(
|
||||||
lazy_gettext("Place"), validators=[Optional()], coerce=int
|
lazy_gettext("Place"), validators=[Optional()], coerce=int
|
||||||
)
|
)
|
||||||
|
coordinate = HiddenField(validators=[Optional()])
|
||||||
|
location_name = HiddenField(validators=[Optional()])
|
||||||
|
location = SelectField(lazy_gettext("Location"), validators=[Optional()])
|
||||||
|
distance = SelectField(
|
||||||
|
lazy_gettext("Distance"),
|
||||||
|
validators=[Optional()],
|
||||||
|
coerce=int,
|
||||||
|
choices=distance_choices,
|
||||||
|
)
|
||||||
|
|
||||||
submit = SubmitField(lazy_gettext("Find events"))
|
submit = SubmitField(lazy_gettext("Find events"))
|
||||||
|
|
||||||
|
|||||||
@ -466,6 +466,7 @@ $(function () {
|
|||||||
|
|
||||||
$("#clear_location_btn").click(function () {
|
$("#clear_location_btn").click(function () {
|
||||||
$("#coordinate").val("");
|
$("#coordinate").val("");
|
||||||
|
$("#location_name").val("");
|
||||||
$("#location").val("").trigger('change');
|
$("#location").val("").trigger('change');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -856,11 +856,11 @@
|
|||||||
var data = select2GetData(e);
|
var data = select2GetData(e);
|
||||||
|
|
||||||
if ("gmaps_id" in data) {
|
if ("gmaps_id" in data) {
|
||||||
get_gmaps_place_details(data.gmaps_id);
|
get_gmaps_place_details(data.gmaps_id, data.text);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function get_gmaps_place_details(place_id) {
|
function get_gmaps_place_details(place_id, place_name) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "{{ url_for('js_autocomplete_gmaps_place') }}",
|
url: "{{ url_for('js_autocomplete_gmaps_place') }}",
|
||||||
type: "get",
|
type: "get",
|
||||||
@ -868,6 +868,7 @@
|
|||||||
data: "gmaps_id=" + place_id,
|
data: "gmaps_id=" + place_id,
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
$('#coordinate').val('' + data.geometry.location.lat + ',' + data.geometry.location.lng);
|
$('#coordinate').val('' + data.geometry.location.lat + ',' + data.geometry.location.lng);
|
||||||
|
$('#location_name').val(place_name);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{% extends "layout_vue.html" %}
|
{% extends "layout_vue.html" %}
|
||||||
{% set active_id = "events" %}
|
{% set active_id = "events" %}
|
||||||
{% from "_macros.html" import render_field, render_event_dates_date_field, render_event_in_list, render_manage_form_styles, render_manage_form_scripts, render_event_dates_filter_form, render_event_warning_pills, render_pagination, render_event_date, render_field_with_errors, render_event_organizer %}
|
{% from "_macros.html" import render_jquery_steps_header, render_google_filter_autocomplete_header, render_event_dates_location_field, render_field, render_event_dates_date_field, render_event_in_list, render_manage_form_styles, render_manage_form_scripts, render_event_dates_filter_form, render_event_warning_pills, render_pagination, render_event_date, render_field_with_errors, render_event_organizer %}
|
||||||
|
|
||||||
{%- block title -%}
|
{%- block title -%}
|
||||||
{{ _('Events') }}
|
{{ _('Events') }}
|
||||||
@ -15,6 +15,11 @@
|
|||||||
{{ render_manage_form_scripts() }}
|
{{ render_manage_form_scripts() }}
|
||||||
{%- endblock -%}
|
{%- endblock -%}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
{{ render_jquery_steps_header() }}
|
||||||
|
{{ render_google_filter_autocomplete_header() }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block component_scripts %}
|
{% block component_scripts %}
|
||||||
<script src="{{ url_for('static', filename='vue/event-lists/add-event.vue.js')}}"></script>
|
<script src="{{ url_for('static', filename='vue/event-lists/add-event.vue.js')}}"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@ -54,7 +59,7 @@ var vue_app_data = { eventId: 0 };
|
|||||||
{{ render_field_with_errors(form.keyword, formrow="1") }}
|
{{ render_field_with_errors(form.keyword, formrow="1") }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% set form_collapsed = not form.category_id.data and not form.organizer_id.data and not form.event_place_id.data %}
|
{% set form_collapsed = not form.category_id.data and not form.organizer_id.data and not form.event_place_id.data and not form.coordinate.data %}
|
||||||
<div id="extended_search_form" class="{% if form_collapsed %}collapse{% else %}show{% endif %}">
|
<div id="extended_search_form" class="{% if form_collapsed %}collapse{% else %}show{% endif %}">
|
||||||
|
|
||||||
{% if form.category_id %}
|
{% if form.category_id %}
|
||||||
@ -69,6 +74,8 @@ var vue_app_data = { eventId: 0 };
|
|||||||
{{ render_field_with_errors(form.event_place_id, formrow="1") }}
|
{{ render_field_with_errors(form.event_place_id, formrow="1") }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{{ render_event_dates_location_field(form.location, form.distance) }}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@ -174,6 +174,9 @@ def manage_admin_unit_events(id):
|
|||||||
form.event_place_id.choices = [(p.id, get_place_str(p)) for p in event_places]
|
form.event_place_id.choices = [(p.id, get_place_str(p)) for p in event_places]
|
||||||
form.event_place_id.choices.insert(0, (0, ""))
|
form.event_place_id.choices.insert(0, (0, ""))
|
||||||
|
|
||||||
|
if form.location.data: # pragma: no cover
|
||||||
|
form.location.choices = [(form.location.data, form.location_name.data)]
|
||||||
|
|
||||||
if form.validate():
|
if form.validate():
|
||||||
form.populate_obj(params)
|
form.populate_obj(params)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user