# Create your views here. from django.shortcuts import render, redirect from django.contrib.auth import authenticate, login, logout from django.core.urlresolvers import reverse from django.http import HttpResponse from django.utils import simplejson from django.contrib.auth.decorators import login_required from eventplanner.models import Event, EventParticipation from musicians.models import Musician from datetime import datetime @login_required def home_view(request): context = dict() events = Event.objects.filter( date__gte = datetime.now() ).order_by('date')[:1] if ( len(events) > 0 ): print "len(events): " + str( len(events )) nextEvent = events[0] part = EventParticipation.objects.filter( musician__user = request.user ).filter( event = nextEvent ) eventTime = datetime( events[0].date.year, events[0].date.month, events[0].date.day, events[0].displaytime.hour, events[0].displaytime.minute ) context['hasParticipationSetForAllEvents'] = EventParticipation.hasUserSetParticipationForAllEvents( request.user) context['event'] = events[0] context['epoch'] = int( (eventTime - datetime.now() ).total_seconds() * 1000 ) context['participation'] = part[0].status else: context['hasParticipationSetForAllEvents'] = True nextConcerts = Event.objects.filter( date__gte = datetime.now(), type = 'Conc' ).order_by('date')[:1] if len( nextConcerts) > 0 : nextConcert = nextConcerts[0] routeInfo = dict() user = Musician.objects.get( user = request.user ); routeInfo['origin'] = user.street + ", " + str( user.zip_code ) + " " + user.city if nextConcert.map_location: # map_location has format "lat,longitute,zoomlevel" routeInfo['destination'] = ",".join( nextConcert.map_location.split(",")[:2] ) else: routeInfo['destination'] = nextConcert.location context['routeInfo'] = routeInfo context['nextConcert'] = nextConcert context['hasNextConcertInfo'] = True else: context['hasNextConcertInfo'] = False return render( request, 'website/mainpage.html', context ) def logout_view(request): logout( request ) return redirect( login_view ) def login_view( request ): if request.method == 'POST': # If the form has been submitted... username = request.POST['username'] password = request.POST['password'] user = authenticate(username=username, password=password) result = dict() result['err'] = "" if user is not None: if user.is_active: if not request.POST.get('remember', None): request.session.set_expiry( 0 ) login(request, user) result['redirect'] = "/" print ( "Setting Redirect" ) if 'next' in request.POST : result['redirect'] = request.POST["next"] print ( "Using " + request.POST["next"] ) else: result['err'] = "Dein Account wurde deaktiviert." # Return a 'disabled account' error message else: result['err'] = "Falscher Benutzername oder falsches Kennwort." return HttpResponse( simplejson.dumps(result), mimetype='application/json' ) else: # Check if user already logged in if request.user.is_authenticated(): return redirect( "/") if 'next' in request.GET: nextPage = request.GET['next'] else: nextPage = "/" return render( request, 'website/login.html', { 'next' : nextPage } )