Merge pull request #138 from DanielGrams/issue/137-date-utils

Improve date utils #137
This commit is contained in:
Daniel Grams 2021-03-07 13:52:06 +01:00 committed by GitHub
commit a604e161c9
7 changed files with 24 additions and 11 deletions

View File

@ -9,7 +9,7 @@ from flask.cli import AppGroup, with_appcontext
from sqlalchemy.orm import load_only
from project import app, cache_path, robots_txt_path, sitemap_path
from project.dateutils import today
from project.dateutils import get_today
from project.models import Event, EventDate
from project.utils import make_dir
@ -27,6 +27,7 @@ def generate_sitemap(pinggoogle):
buf.write('<?xml version="1.0" encoding="UTF-8"?>')
buf.write('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">')
today = get_today()
events = (
Event.query.options(load_only(Event.id, Event.updated_at))
.filter(Event.dates.any(EventDate.start >= today))

View File

@ -5,8 +5,15 @@ from dateutil.relativedelta import relativedelta
from dateutil.rrule import rrulestr
berlin_tz = pytz.timezone("Europe/Berlin")
now = datetime.now(tz=berlin_tz)
today = datetime(now.year, now.month, now.day, tzinfo=now.tzinfo)
def get_now():
return datetime.now(tz=berlin_tz)
def get_today():
now = get_now()
return datetime(now.year, now.month, now.day, tzinfo=now.tzinfo)
def create_berlin_date(year, month, day, hour, minute=0):

View File

@ -6,7 +6,7 @@ from sqlalchemy.orm import contains_eager, defaultload, joinedload, lazyload
from sqlalchemy.sql import extract
from project import db
from project.dateutils import date_add_time, dates_from_recurrence_rule, today
from project.dateutils import date_add_time, dates_from_recurrence_rule, get_today
from project.models import (
AdminUnit,
Event,
@ -287,6 +287,7 @@ def update_event(event):
def get_upcoming_event_dates(event_id):
today = get_today()
return (
EventDate.query.options(lazyload(EventDate.event))
.filter(and_(EventDate.event_id == event_id, EventDate.start >= today))

View File

@ -5,7 +5,7 @@ from project.dateutils import (
date_set_end_of_day,
form_input_from_date,
form_input_to_date,
today,
get_today,
)
@ -75,10 +75,12 @@ class EventSearchParams(object):
self.longitude = None
def set_default_date_range(self):
today = get_today()
self.date_from = today
self.date_to = date_set_end_of_day(today + relativedelta(months=12))
def set_planing_date_range(self):
today = get_today()
self.date_from = today
self.date_to = date_set_end_of_day(today + relativedelta(months=3))

View File

@ -1,7 +1,7 @@
from flask import jsonify
from project import app
from project.dateutils import today
from project.dateutils import get_today
from project.jsonld import get_sd_for_event_date
from project.models import Event, EventDate
from project.services.event import get_event_dates_query
@ -10,6 +10,7 @@ from project.services.event_search import EventSearchParams
@app.route("/api/events")
def api_events():
today = today = get_today()
dates = (
EventDate.query.join(Event)
.filter(EventDate.start >= today)

View File

@ -4,7 +4,7 @@ from sqlalchemy.exc import SQLAlchemyError
from project import app, db
from project.access import access_or_401, has_access, has_admin_unit_member_permission
from project.dateutils import today
from project.dateutils import get_today
from project.forms.reference_request import ReferenceRequestReviewForm
from project.models import (
AdminUnitMember,
@ -65,6 +65,7 @@ def event_reference_request_review(id):
else:
flash_errors(form)
today = get_today()
dates = (
EventDate.query.with_parent(request.event)
.filter(EventDate.start >= today)

View File

@ -176,7 +176,7 @@ class Seeder(object):
return category.id
def create_event(self, admin_unit_id, recurrence_rule=None):
from project.dateutils import now
from project.dateutils import get_now
from project.models import Event
from project.services.event import insert_event, upsert_event_category
@ -186,7 +186,7 @@ class Seeder(object):
event.categories = [upsert_event_category("Other")]
event.name = "Name"
event.description = "Beschreibung"
event.start = now
event.start = get_now()
event.event_place_id = self.upsert_default_event_place(admin_unit_id)
event.organizer_id = self.upsert_default_event_organizer(admin_unit_id)
event.recurrence_rule = recurrence_rule
@ -215,7 +215,7 @@ class Seeder(object):
return image_id
def create_event_suggestion(self, admin_unit_id, free_text=False):
from project.dateutils import now
from project.dateutils import get_now
from project.models import EventSuggestion
from project.services.event import upsert_event_category
from project.services.event_suggestion import insert_event_suggestion
@ -228,7 +228,7 @@ class Seeder(object):
suggestion.contact_email_notice = True
suggestion.name = "Vorschlag"
suggestion.description = "Beschreibung"
suggestion.start = now
suggestion.start = get_now()
suggestion.photo_id = self.upsert_default_image()
suggestion.categories = [upsert_event_category("Other")]