2021-11-22 12:59:43 +00:00
|
|
|
import random
|
2021-09-28 13:10:22 +00:00
|
|
|
from django.shortcuts import render, redirect, get_object_or_404
|
2021-10-29 07:32:18 +00:00
|
|
|
from django.conf import settings
|
2021-09-28 13:10:22 +00:00
|
|
|
|
|
|
|
from . import models
|
2021-10-31 11:17:38 +00:00
|
|
|
from ..video.views import get_stream_prefix
|
2021-09-28 13:10:22 +00:00
|
|
|
|
2021-10-29 07:32:18 +00:00
|
|
|
def fallback(request, slug=''):
|
|
|
|
if not slug:
|
|
|
|
return redirect('index')
|
|
|
|
|
2021-10-10 15:06:43 +00:00
|
|
|
context = {}
|
|
|
|
return render(request, 'fallback.html', context)
|
|
|
|
|
2021-09-28 13:10:22 +00:00
|
|
|
def index(request):
|
2021-10-27 11:37:40 +00:00
|
|
|
from ..video.models import Film
|
|
|
|
from ..text.models import Text
|
2021-09-28 13:10:22 +00:00
|
|
|
context = {}
|
2021-10-27 11:37:40 +00:00
|
|
|
context['films'] = Film.objects.filter(public=True).count()
|
|
|
|
context['texts'] = Text.objects.filter(public=True).count()
|
2021-11-24 11:45:15 +00:00
|
|
|
context['stream_prefix'] = get_stream_prefix(request)
|
2021-11-22 12:59:43 +00:00
|
|
|
featured = Film.objects.filter(featured=True)
|
|
|
|
featured_count = featured.count()
|
|
|
|
if featured_count:
|
|
|
|
featured = featured[random.randint(0, featured_count - 1)]
|
|
|
|
try:
|
|
|
|
featured = featured.data['items'][0]['id']
|
|
|
|
except:
|
|
|
|
featured = None
|
|
|
|
context['featured'] = featured
|
2021-09-28 13:10:22 +00:00
|
|
|
return render(request, 'index.html', context)
|
|
|
|
|
2021-10-11 12:26:51 +00:00
|
|
|
def page(request, slug=''):
|
2021-09-28 13:10:22 +00:00
|
|
|
context = {}
|
2021-10-11 12:55:45 +00:00
|
|
|
if request.user.is_staff:
|
|
|
|
page = models.Page.objects.filter(slug=slug).first()
|
|
|
|
else:
|
|
|
|
page = models.Page.objects.filter(slug=slug, public=True).first()
|
2021-10-11 12:26:51 +00:00
|
|
|
if page:
|
|
|
|
context['page'] = page
|
|
|
|
return render(request, 'page.html', context)
|
|
|
|
else:
|
|
|
|
return render(request, 'fallback.html', context)
|
|
|
|
|
|
|
|
def about(request):
|
2021-10-21 15:24:26 +00:00
|
|
|
context = {}
|
2021-11-24 08:20:50 +00:00
|
|
|
context['pandora_url'] = settings.DEFAULT_PANDORA_API.replace('/api/', '')
|
2021-10-21 15:24:26 +00:00
|
|
|
return render(request, 'about.html', context)
|
2021-09-28 13:10:22 +00:00
|
|
|
|
2021-10-10 15:06:43 +00:00
|
|
|
def texts(request):
|
2021-09-28 13:10:22 +00:00
|
|
|
context = {}
|
2021-10-28 10:12:34 +00:00
|
|
|
all_texts = models.Text.objects.filter(public=True).order_by('position', 'created')
|
2021-11-12 10:21:00 +00:00
|
|
|
context['texts'] = all_texts.filter()
|
2021-10-10 15:06:43 +00:00
|
|
|
return render(request, 'texts.html', context)
|
2021-09-28 13:10:22 +00:00
|
|
|
|
2021-10-10 15:06:43 +00:00
|
|
|
def text(request, slug):
|
2021-09-28 13:10:22 +00:00
|
|
|
context = {}
|
2021-10-11 12:55:45 +00:00
|
|
|
if request.user.is_staff:
|
|
|
|
context['text'] = get_object_or_404(models.Text, slug=slug)
|
|
|
|
else:
|
|
|
|
context['text'] = get_object_or_404(models.Text, slug=slug, public=True)
|
2021-10-31 11:17:38 +00:00
|
|
|
context['stream_prefix'] = get_stream_prefix(request)
|
2021-11-21 09:09:26 +00:00
|
|
|
context['pandora_url'] = settings.DEFAULT_PANDORA_API.replace('/api/', '')
|
2021-10-10 15:06:43 +00:00
|
|
|
return render(request, 'text.html', context)
|