Example #1
0
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)
Example #2
0
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)
Example #3
0
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,
    )
Example #4
0
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)
Example #5
0
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))