blechreiz-website/eventplanner/snippets.py

56 lines
1.8 KiB
Python
Raw Normal View History

from datetime import datetime
from models import Event, EventParticipation, NoNextEventException
from musicians.models import Musician
def addEventCountdownForNextEventToContext( context, username, eventType = "" ):
"""Returns an object that has to be added to the render context on the page where the countdown
should be displayed . The username is required to also supply participation information."""
try:
nextEvent = Event.getNextEvent( eventType, False )
except NoNextEventException:
return
countdown = dict()
if EventParticipation.isMember( username ):
part = EventParticipation.objects.filter( user = username ).filter( event = nextEvent )
countdown['participation'] = part[0].status
eventTime = nextEvent.displaydatetime
countdown['event'] = nextEvent
countdown['epoch'] = int( (eventTime - datetime.now() ).total_seconds() * 1000 )
context["countdown"] = countdown
def addEventRouteForNextEventToContext( context, username, eventType = ""):
"""Returns an object that has to be added to the render context on the page where the route
should be displayed . The starting address of the route will be the home of the specified user"""
try:
nextEvent = Event.getNextEvent( eventType, True )
except NoNextEventException:
return
routeInfo = dict()
routeInfo['event'] = nextEvent
musician = Musician.objects.get( user = username );
routeInfo['origin'] = musician.street + ", " + str( musician.zip_code ) + " " + musician.city
if nextEvent.map_location:
# map_location has format "lat,longitute,zoomlevel"
routeInfo['destination'] = ",".join( nextEvent.map_location.split(",")[:2] )
else:
routeInfo['destination'] = nextEvent.location
context["route"] = routeInfo