Skip to content
Snippets Groups Projects
Unverified Commit 011b62fb authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

Reformat & clean-up `frapp` application

parent e3b3f795
No related branches found
No related tags found
No related merge requests found
# -*- coding: utf-8 -*-
from django.conf.urls import url from django.conf.urls import url
from .views import json_frapp from .views import json_frapp
urlpatterns = [ urlpatterns = [
url(r'^frapp/$', json_frapp), url(r'^frapp/$', json_frapp),
] ]
\ No newline at end of file
# -*- coding: utf-8 -*-
import json import json
from datetime import date, datetime, time from datetime import date, datetime, time
from django.db.models import Q from django.contrib.sites.shortcuts import get_current_site
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.db.models import Q
from django.http import HttpResponse from django.http import HttpResponse
from django.contrib.sites.shortcuts import get_current_site from django.utils.translation import ugettext_lazy as _
from program.models import Note, Show, Category, TimeSlot, Host, Schedule from program.models import Note, Category, TimeSlot, Schedule
def generate_frapp_broadcastinfos(schedule): def generate_frapp_broadcastinfos(schedule):
...@@ -23,32 +22,33 @@ def generate_frapp_broadcastinfos(schedule): ...@@ -23,32 +22,33 @@ def generate_frapp_broadcastinfos(schedule):
broadcasttime = schedule.tstart.strftime('%H:%M') + ' - ' + schedule.tend.strftime('%H:%M') + ' Uhr;' broadcasttime = schedule.tstart.strftime('%H:%M') + ' - ' + schedule.tend.strftime('%H:%M') + ' Uhr;'
broadcastinfos = '' broadcastinfos = ''
if schedule.rrule_id == 1: # Once if schedule.rrule_id == 1: # Once
broadcastinfos = 'Am ' + weekdays[schedule.byweekday] + ', ' + schedule.dstart.strftime('%d.%m.%Y') + ', ' + broadcasttime broadcastinfos = 'Am ' + weekdays[schedule.byweekday] + ', ' + schedule.dstart.strftime(
if schedule.rrule_id == 2: # Daily '%d.%m.%Y') + ', ' + broadcasttime
if schedule.rrule_id == 2: # Daily
broadcastinfos = 'täglich, ' + broadcasttime broadcastinfos = 'täglich, ' + broadcasttime
if schedule.rrule_id == 3: # Business days if schedule.rrule_id == 3: # Business days
broadcastinfos = 'werktags, ' + broadcasttime broadcastinfos = 'werktags, ' + broadcasttime
if schedule.rrule_id == 4: # Weekly if schedule.rrule_id == 4: # Weekly
broadcastinfos = 'Jeden ' + weekdays[schedule.byweekday] + ', ' + broadcasttime broadcastinfos = 'Jeden ' + weekdays[schedule.byweekday] + ', ' + broadcasttime
if schedule.rrule_id == 5: # Bi-weekly if schedule.rrule_id == 5: # Bi-weekly
print("Not supported by FRAPP yet") print("Not supported by FRAPP yet")
if schedule.rrule_id == 6: # Every four weeks if schedule.rrule_id == 6: # Every four weeks
print("Not supported by FRAPP yet") print("Not supported by FRAPP yet")
if schedule.rrule_id == 7: # Even calendar weeks if schedule.rrule_id == 7: # Even calendar weeks
broadcastinfos = 'Jeden geraden ' + weekdays[schedule.byweekday] + ', ' + broadcasttime broadcastinfos = 'Jeden geraden ' + weekdays[schedule.byweekday] + ', ' + broadcasttime
if schedule.rrule_id == 8: # Odd calendar weeks if schedule.rrule_id == 8: # Odd calendar weeks
broadcastinfos = 'Jeden ungeraden ' + weekdays[schedule.byweekday] + ', ' + broadcasttime broadcastinfos = 'Jeden ungeraden ' + weekdays[schedule.byweekday] + ', ' + broadcasttime
if schedule.rrule_id == 9: # Every 1st week if schedule.rrule_id == 9: # Every 1st week
broadcastinfos = 'Jeden 1. ' + weekdays[schedule.byweekday] + ', ' + broadcasttime broadcastinfos = 'Jeden 1. ' + weekdays[schedule.byweekday] + ', ' + broadcasttime
if schedule.rrule_id == 10: # Every 2nd week if schedule.rrule_id == 10: # Every 2nd week
broadcastinfos = 'Jeden 2. ' + weekdays[schedule.byweekday] + ', ' + broadcasttime broadcastinfos = 'Jeden 2. ' + weekdays[schedule.byweekday] + ', ' + broadcasttime
if schedule.rrule_id == 11: # Every 3rd week if schedule.rrule_id == 11: # Every 3rd week
broadcastinfos = 'Jeden 3. ' + weekdays[schedule.byweekday] + ', ' + broadcasttime broadcastinfos = 'Jeden 3. ' + weekdays[schedule.byweekday] + ', ' + broadcasttime
if schedule.rrule_id == 12: # Every 4th week if schedule.rrule_id == 12: # Every 4th week
broadcastinfos = 'Jeden 4. ' + weekdays[schedule.byweekday] + ', ' + broadcasttime broadcastinfos = 'Jeden 4. ' + weekdays[schedule.byweekday] + ', ' + broadcasttime
if schedule.rrule_id == 13: # Every 5th week if schedule.rrule_id == 13: # Every 5th week
broadcastinfos = 'Jeden 5. ' + weekdays[schedule.byweekday] + ', ' + broadcasttime broadcastinfos = 'Jeden 5. ' + weekdays[schedule.byweekday] + ', ' + broadcasttime
return broadcastinfos return broadcastinfos
...@@ -64,17 +64,16 @@ def json_frapp(request): ...@@ -64,17 +64,16 @@ def json_frapp(request):
""" """
from pv.settings import MEDIA_URL from pv.settings import MEDIA_URL
if request.GET.get('date') == None: if request.GET.get('date') is None:
start = datetime.combine(date.today(), time(0, 0)) start = datetime.combine(date.today(), time(0, 0))
else: else:
start = datetime.combine( datetime.strptime(request.GET.get('date'), '%Y-%m-%d').date(), time(0, 0)) start = datetime.combine(datetime.strptime(request.GET.get('date'), '%Y-%m-%d').date(), time(0, 0))
end = datetime.combine(start, time(23, 59)) end = datetime.combine(start, time(23, 59))
timeslots = TimeSlot.objects.filter(start__gte=start,start__lte=end).select_related('show').order_by('start') timeslots = TimeSlot.objects.filter(start__gte=start, start__lte=end).select_related('show').order_by('start')
'''Generate categories object for output''' # Generate categories object for output
categories = Category.objects.all() categories = Category.objects.all()
categories_output = [] categories_output = []
...@@ -94,34 +93,30 @@ def json_frapp(request): ...@@ -94,34 +93,30 @@ def json_frapp(request):
for ts in timeslots: for ts in timeslots:
series.add(ts.show) series.add(ts.show)
# Generate series object for output
'''Generate series object for output'''
series_output = [] series_output = []
for s in series: for s in series:
metainfos = [] metainfos = [{'key': 'ProduzentIn', 'value': ', '.join(ts.show.hosts.values_list('name', flat=True))},
metainfos.append({ 'key': 'ProduzentIn', 'value': ', '.join(ts.show.hosts.values_list('name', flat=True)) }) {'key': 'E-Mail', 'value': ', '.join(ts.show.hosts.values_list('email', flat=True))}]
metainfos.append({ 'key': 'E-Mail', 'value': ', '.join(ts.show.hosts.values_list('email', flat=True)) })
image = '' if s.image.name == None or s.image.name == '' else str(get_current_site(request)) + MEDIA_URL + s.image.name image = '' if s.image.name is None or s.image.name == '' else str(get_current_site(request)) + MEDIA_URL + s.image.name
url = '' if s.website == None or s.website == '' else s.website url = '' if s.website is None or s.website == '' else s.website
# Get active schedules for the given date # Get active schedules for the given date
# But include upcoming single timeslots (with rrule_id=1) # But include upcoming single timeslots (with rrule_id=1)
schedules = Schedule.objects.filter( Q(show=s.id,is_repetition=False) & schedules = Schedule.objects.filter(Q(show=s.id, is_repetition=False) &
( (
Q(rrule_id__gt=1,dstart__lte=start,until__gte=start) | Q(rrule_id__gt=1, dstart__lte=start, until__gte=start) |
Q(rrule_id=1,dstart__gte=start) Q(rrule_id=1, dstart__gte=start)
) ))
)
schedules_repetition = Schedule.objects.filter(Q(show=s.id, is_repetition=True) &
schedules_repetition = Schedule.objects.filter( Q(show=s.id,is_repetition=True) & (
( Q(rrule_id__gt=1, dstart__lte=start, until__gte=start) |
Q(rrule_id__gt=1,dstart__lte=start,until__gte=start) | Q(rrule_id=1, dstart__gte=start)
Q(rrule_id=1,dstart__gte=start) ))
)
)
broadcastinfos = '' broadcastinfos = ''
...@@ -150,8 +145,7 @@ def json_frapp(request): ...@@ -150,8 +145,7 @@ def json_frapp(request):
series_output.append(s_entry) series_output.append(s_entry)
# Generate shows object for output
'''Generate shows object for output'''
shows_output = [] shows_output = []
...@@ -186,10 +180,7 @@ def json_frapp(request): ...@@ -186,10 +180,7 @@ def json_frapp(request):
shows_output.append(ts_entry) shows_output.append(ts_entry)
output = {} output = {'categories': categories_output, 'series': series_output, 'shows': shows_output}
output['categories'] = categories_output
output['series'] = series_output
output['shows'] = shows_output
return HttpResponse(json.dumps(output, ensure_ascii=False).encode('utf8'), return HttpResponse(json.dumps(output, ensure_ascii=False).encode('utf8'),
content_type="application/json; charset=utf-8") content_type="application/json; charset=utf-8")
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment