diff options
author | Johannes Raggam <raggam-nl@adm.at> | 2011-05-25 17:14:37 (GMT) |
---|---|---|
committer | Johannes Raggam <raggam-nl@adm.at> | 2011-05-25 17:14:37 (GMT) |
commit | ca24a30ec6940052a259db5b38e85731ee7a3d27 (patch) | |
tree | ade0a2201c14ea57dd12d10593f47d8e9d2e0122 /nop/views.py | |
parent | 40c628c4b3e836357fa18b8c3c8fcdb741340f49 (diff) |
finalize form with date/time submission functionality
Diffstat (limited to 'nop/views.py')
-rw-r--r-- | nop/views.py | 72 |
1 files changed, 54 insertions, 18 deletions
diff --git a/nop/views.py b/nop/views.py index b633422..610330f 100644 --- a/nop/views.py +++ b/nop/views.py @@ -1,24 +1,39 @@ -from django.views.generic import simple +from django.core.context_processors import csrf +from django.shortcuts import render_to_response from django.http import HttpResponse +from django import forms from models import Master import json import time +from datetime import datetime + +class NopForm(forms.Form): + date = forms.DateField( + required=True, + initial=datetime.date(datetime.now()), + widget=forms.DateInput( + format='%Y-%m-%d', + attrs={'id':'nop_date', 'class':'date'}) + ) + time = forms.TimeField( + required=True, + initial=datetime.time(datetime.now()), + widget=forms.TimeInput( + format='%H:%M', + attrs={'id':'nop_time', 'class':'date'}) + ) -def get_current(request): +def _current(): #current = int(time.time())*1000000 #time.gmtime(Master.objects.using('nop').all()[6000].timestamp//1000000) # select all where timestamp < givenTS, get most recent one -> order DESC # reverse sorted. get the first object = last played result = Master.objects.using('nop').all()[0] - response = json.dumps({'artist': result.artist, 'title': result.title}) - - #return HttpResponse(response, mimetype='application/json') - return HttpResponse(response, mimetype='text/plain') - -def get(request, year=None, month=None, day=None, hour=None, minute=None): + return {'artist': result.artist, 'title': result.title} +def _bydate(year=None, month=None, day=None, hour=None, minute=None): try: # tm_year,tm_mon,tm_mday,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst ts = int(time.mktime(( @@ -29,19 +44,40 @@ def get(request, year=None, month=None, day=None, hour=None, minute=None): int(minute),0,0,0,-1))) * 1000000 result = Master.objects.using('nop').filter(timestamp__lt=ts)[:5] - response = json.dumps( - [{'artist': item.artist, 'title': item.title, 'album': item.album, - 'datetime': time.strftime('%Y-%m-%d %H:%M', - time.localtime(item.timestamp//1000000)), - 'showtitle': item.showtitle} for item in result]) + return [{'artist': item.artist, 'title': item.title, 'album': item.album, + 'datetime': time.strftime('%Y-%m-%d %H:%M', + time.localtime(item.timestamp//1000000)), + 'showtitle': item.showtitle} for item in result] except: # all errors - response = '' + return None + + +def get_current(request): + response = json.dumps(_current()) + + #return HttpResponse(response, mimetype='application/json') + return HttpResponse(response, mimetype='text/plain') + +def get(request, year=None, month=None, day=None, hour=None, minute=None): + response = json.dumps(_bydate(year, month, day, hour, minute)) #return HttpResponse(response, mimetype='application/json') return HttpResponse(response, mimetype='text/plain') + def nop_form(request): - extra_context = {'year':None, 'month':None, 'day':None, 'hour':None, 'minute': None} - if 'year' in request.GET: - pass - return simple.direct_to_template(request, extra_context=extra_context, template='nop/nop_form.html') + context = {} + context.update(csrf(request)) + if request.method == 'POST': + form = NopForm(request.POST) + if form.is_valid(): + date = form.cleaned_data['date'] + time = form.cleaned_data['time'] + else: + form = NopForm() + date = datetime.date(datetime.now()) + time = datetime.time(datetime.now()) + result = _bydate(date.year, date.month, date.day, time.hour, time.minute) + context['nowplaying'] = result + context['form'] = form + return render_to_response('nop/nop_form.html', context) |