def history(request, video_id, lang=None, lang_id=None): video = get_object_or_404(Video, video_id=video_id) video.update_view_counter() context = widget.add_onsite_js_files({}) if lang_id: language = video.subtitlelanguage_set.get(pk=lang_id) else: language = video.subtitle_language(lang) if not language: if lang in dict(settings.ALL_LANGUAGES): config = {} config["videoID"] = video.video_id config["languageCode"] = lang url = reverse('onsite_widget') + '?config=' + urlquote_plus( json.dumps(config)) return redirect(url) else: raise Http404 qs = language.subtitleversion_set.select_related('user') ordering, order_type = request.GET.get('o'), request.GET.get('ot') order_fields = { 'date': 'datetime_started', 'user': '******', 'note': 'note', 'time': 'time_change', 'text': 'text_change' } if ordering in order_fields and order_type in ['asc', 'desc']: qs = qs.order_by(('-' if order_type == 'desc' else '') + order_fields[ordering]) context['ordering'], context['order_type'] = ordering, order_type context['video'] = video translations = list(video.subtitlelanguage_set.filter(is_original=False) \ .filter(had_version=True).select_related('video')) translations.sort(key=lambda f: f.get_language_display()) context['translations'] = translations context['last_version'] = language.latest_version() context['widget_params'] = _widget_params(request, video, version_no=None, language=language) context['language'] = language context['edit_url'] = language.get_widget_url() _add_share_panel_context_for_history(context, video, lang) return object_list(request, queryset=qs, allow_empty=True, paginate_by=settings.REVISIONS_ONPAGE, page=request.GET.get('page', 1), template_name='videos/history.html', template_object_name='revision', extra_context=context)
def history(request, video_id, lang=None, lang_id=None): video = get_object_or_404(Video, video_id=video_id) video.update_view_counter() context = widget.add_onsite_js_files({}) if lang_id: try: language = video.subtitlelanguage_set.get(pk=lang_id) except SubtitleLanguage.DoesNotExist: raise Http404 else: language = video.subtitle_language(lang) if not language: if lang in dict(settings.ALL_LANGUAGES): config = {} config["videoID"] = video.video_id config["languageCode"] = lang url = reverse('onsite_widget')+'?config='+urlquote_plus(json.dumps(config)) return redirect(url) else: raise Http404 qs = language.subtitleversion_set.select_related('user') ordering, order_type = request.GET.get('o'), request.GET.get('ot') order_fields = { 'date': 'datetime_started', 'user': '******', 'note': 'note', 'time': 'time_change', 'text': 'text_change' } if ordering in order_fields and order_type in ['asc', 'desc']: qs = qs.order_by(('-' if order_type == 'desc' else '')+order_fields[ordering]) context['ordering'], context['order_type'] = ordering, order_type context['video'] = video translations = list(video.subtitlelanguage_set.filter(is_original=False) \ .filter(had_version=True).select_related('video')) translations.sort(key=lambda f: f.get_language_display()) context['translations'] = translations context['last_version'] = language.latest_version() context['widget_params'] = _widget_params(request, video, version_no=None, language=language) context['language'] = language context['edit_url'] = language.get_widget_url() _add_share_panel_context_for_history(context, video, lang) return object_list(request, queryset=qs, allow_empty=True, paginate_by=settings.REVISIONS_ONPAGE, page=request.GET.get('page', 1), template_name='videos/history.html', template_object_name='revision', extra_context=context)
def history(request, video_id, lang=None): video = get_object_or_404(Video, video_id=video_id) video.update_view_counter() context = widget.add_onsite_js_files({}) language = video.subtitle_language(lang) if not language: if lang in dict(settings.ALL_LANGUAGES): config = {} config["videoID"] = video.video_id config["languageCode"] = lang url = reverse("onsite_widget") + "?config=" + urlquote_plus(json.dumps(config)) return redirect(url) else: raise Http404 qs = language.subtitleversion_set.all() ordering, order_type = request.GET.get("o"), request.GET.get("ot") order_fields = { "date": "datetime_started", "user": "******", "note": "note", "time": "time_change", "text": "text_change", } if ordering in order_fields and order_type in ["asc", "desc"]: qs = qs.order_by(("-" if order_type == "desc" else "") + order_fields[ordering]) context["ordering"], context["order_type"] = ordering, order_type context["video"] = video context["site"] = Site.objects.get_current() translations = list(video.subtitlelanguage_set.filter(is_original=False).filter(was_complete=True)) translations.sort(key=lambda f: f.get_language_display()) context["translations"] = translations context["last_version"] = language.latest_version() context["widget_params"] = _widget_params(request, video, None, lang or "") context["language"] = language _add_share_panel_context_for_history(context, video, lang) return object_list( request, queryset=qs, allow_empty=True, paginate_by=settings.REVISIONS_ONPAGE, page=request.GET.get("page", 1), template_name="videos/history.html", template_object_name="revision", extra_context=context, )
def history(request, video_id, lang=None): video = get_object_or_404(Video, video_id=video_id) context = widget.add_onsite_js_files({}) language = video.subtitle_language(lang) if not language: raise Http404 qs = language.subtitleversion_set.filter(finished=True) \ .exclude(time_change=0, text_change=0) ordering, order_type = request.GET.get('o'), request.GET.get('ot') order_fields = { 'date': 'datetime_started', 'user': '******', 'note': 'note', 'time': 'time_change', 'text': 'text_change' } if ordering in order_fields and order_type in ['asc', 'desc']: qs = qs.order_by(('-' if order_type == 'desc' else '')+order_fields[ordering]) context['ordering'], context['order_type'] = ordering, order_type context['video'] = video context['site'] = Site.objects.get_current() context['translations'] = video.subtitlelanguage_set.filter(is_original=False) \ .exclude(pk=language.pk).filter(was_complete=True) context['last_version'] = language.latest_version() context['widget_params'] = _widget_params(request, video.get_video_url(), None, lang or '') context['language'] = language _add_share_panel_context_for_history(context, video) return object_list(request, queryset=qs, allow_empty=True, paginate_by=settings.REVISIONS_ONPAGE, page=request.GET.get('page', 1), template_name='videos/history.html', template_object_name='revision', extra_context=context)
def history(request, video, lang=None, lang_id=None, version_id=None): from teams.models import Task if not lang: return HttpResponseRedirect( video.get_absolute_url(video_id=video._video_id_used)) elif lang == 'unknown': # A hacky workaround for now. # This should go away when we stop allowing for blank SubtitleLanguages. lang = '' video.update_view_counter() context = widget.add_onsite_js_files({}) if lang_id: try: language = video.subtitlelanguage_set.get(pk=lang_id) except SubtitleLanguage.DoesNotExist: raise Http404 else: language = video.subtitle_language(lang) if not language: if lang in dict(settings.ALL_LANGUAGES): config = {} config["videoID"] = video.video_id config["languageCode"] = lang url = reverse('onsite_widget') + '?config=' + urlquote_plus( json.dumps(config)) return redirect(url) elif video.subtitlelanguage_set.count() > 0: language = video.subtitlelanguage_set.all()[0] else: raise Http404 qs = language.subtitleversion_set.select_related('user') ordering, order_type = request.GET.get('o'), request.GET.get('ot') order_fields = { 'date': 'datetime_started', 'user': '******', 'note': 'note', 'time': 'time_change', 'text': 'text_change' } if ordering in order_fields and order_type in ['asc', 'desc']: qs = qs.order_by(('-' if order_type == 'desc' else '') + order_fields[ordering]) context['ordering'], context['order_type'] = ordering, order_type context['video'] = video context['translations'] = _get_translations(video) context['user_can_moderate'] = False context['widget_params'] = _widget_params(request, video, version_no=None, language=language, size=(289, 173)) context['language'] = language context['edit_url'] = language.get_widget_url() context[ 'shows_widget_sharing'] = VideoVisibilityPolicy.objects.can_show_widget( video, request.META.get('HTTP_REFERER', '')) context['task'] = _get_related_task(request) _add_share_panel_context_for_history(context, video, language) versions = restrict_versions(qs, request.user, language) context['revision_list'] = versions if versions: if version_id: try: version = [v for v in versions if v.id == int(version_id)][0] except IndexError: raise Http404 else: version = versions[0] else: version = None context['rollback_allowed'] = version and not version.video.is_moderated context['last_version'] = version context['next_version'] = version.next_version() if version else None context['can_edit'] = False if request.user.is_authenticated(): # user can only edit a subtitle draft if he # has a subtitle/translate task assigned to him tasks = Task.objects.incomplete_subtitle_or_translate()\ .filter(team_video=video.get_team_video(), assignee=request.user, language=language.language) context['can_edit'] = tasks.exists() return render_to_response("videos/subtitle-view.html", context, context_instance=RequestContext(request))