def videos(request): """ This function renders the videos page. """ _videos = Video.objects.filter(status=strings.Constant.READY) context = get_context(strings.Page.VIDEOS) context.update({'videos': _videos}) return render(request, 'video/videos.html', context)
def tags(request): """ This function renders the tags page. """ _tags = Tag.objects.all() _tags = sorted(_tags, key=lambda t: t.get_number_of_videos(), reverse=True) context = get_context(strings.Page.TAGS) context.update({'tags': _tags}) return render(request, 'tag/tags.html', context)
def tag(request, url): """ This function renders the tag page. """ _tag = get_object_or_404(Tag, url=url) videos = Video.objects.filter(tag=_tag) context = get_context(strings.Page.TAG) context.update({'tag': _tag, 'videos': videos}) return render(request, 'tag/tag.html', context)
def upload(request): """ This function renders the upload page. """ context = get_context(strings.Page.UPLOAD) # Save the uploaded video and start processing. if request.method == 'POST': file = request.FILES.get('file') name, _ = os.path.splitext(str(file)) Video.objects.create(name=name, video=file) return render(request, 'upload/upload.html', context)
def video(request, url, action=None): """ This function renders the video page. """ _video = get_object_or_404(Video, url=url, status=strings.Constant.READY) playlists = Playlist.objects.all() context = get_context(strings.Page.VIDEO) context.update({'video': _video, 'playlists': playlists}) if action == 'success': context.update({'toast_title': 'Success', 'toast_message': 'Video has been saved.'}) return render(request, 'video/video.html', context)
def upload_status(request): """ This function renders the upload status page. """ context = get_context(strings.Page.UPLOAD_STATUS) videos = get_videos() context.update({'videos': videos}) # This returns a dictionary of video url and the status of the video. if request.method == 'POST': data = {} for video in videos: data.update({video.url: video.status}) return JsonResponse(data) return render(request, 'upload/upload-status.html', context)
def edit_video(request, url): """ This function renders the edit video page. """ _video = get_object_or_404(Video, url=url) context = get_context(strings.Page.EDIT_VIDEO) context.update({'video': _video}) # This is an AJAX call. if request.method == 'POST': form = EditVideoForm(request.POST) # Save video details and redirect to video page. if form.is_valid(): _video.update_details(form.cleaned_data) return JsonResponse(strings.Constant.SUCCESS) else: return JsonResponse(dict(form.errors.items())) return render(request, 'video/edit-video.html', context)