Пример #1
0
    def setup(self, request, video, language, version):
        """Setup context variables."""

        self.update(widget.add_onsite_js_files({}))

        self['revision_count'] = language.version_count()
        self['language_list'] = LanguageList(video)
        self['page_title'] = self.page_title(language)
        self['edit_url'] = language.get_widget_url()
        self['shows_widget_sharing'] = video.can_user_see(request.user)
        self['widget_params'] = _widget_params(request,
                                               video,
                                               version_no=None,
                                               language=language,
                                               size=(289, 173))
        _add_share_panel_context_for_history(self, video, language)
        if video.get_team_video() is not None:
            self['team'] = video.get_team_video().team
        else:
            self['team'] = None
        if version is not None:
            self['metadata'] = version.get_metadata().convert_for_display()
        else:
            self['metadata'] = video.get_metadata().convert_for_display()

        self['rollback_allowed'] = self.calc_rollback_allowed(
            request, version, language)
Пример #2
0
    def setup(self, request, video, video_url):
        language_for_locale = video.subtitle_language(request.LANGUAGE_CODE)
        if language_for_locale:
            metadata = language_for_locale.get_metadata()
        else:
            metadata = video.get_metadata()

        self.update(widget.add_onsite_js_files({}))
        self['page_title'] = self.page_title(video)
        self['metadata'] = metadata.convert_for_display()
        self['language_list'] = LanguageList(video)
        self['shows_widget_sharing'] = video.can_user_see(request.user)
        self['widget_settings'] = json.dumps(
            widget_rpc.get_general_settings(request))

        _add_share_panel_context_for_video(self, video)
        self['task'] = _get_related_task(request)
        team_video = video.get_team_video()
        if team_video is not None:
            self['team'] = team_video.team
            self['team_video'] = team_video
            self['can_create_subs'] = can_create_and_edit_subtitles(
                request.user, team_video)
            self['user_is_team_member'] = team_video.team.user_is_member(
                request.user)
        else:
            self['team'] = self['team_video'] = None
            self['can_create_subs'] = True
            self['user_is_team_member'] = False
Пример #3
0
def index(request):
    context = widget.add_onsite_js_files({})
    context['all_videos'] = Video.objects.count()
    context['popular_videos'] = VideoIndex.get_popular_videos("-today_views")[:VideoIndex.IN_ROW]
    context['featured_videos'] = VideoIndex.get_featured_videos()[:VideoIndex.IN_ROW]
    return render_to_response('index.html', context,
                              context_instance=RequestContext(request))
Пример #4
0
def index(request):
    context = widget.add_onsite_js_files({})
    context['all_videos'] = Video.objects.count()
    context['popular_videos'] = VideoIndex.get_popular_videos("-today_views")[:VideoIndex.IN_ROW]
    context['featured_videos'] = VideoIndex.get_featured_videos()[:VideoIndex.IN_ROW]
    return render_to_response('index.html', context,
                              context_instance=RequestContext(request))
Пример #5
0
def video(request, video_id, video_url=None, title=None):
    video = get_object_or_404(Video, video_id=video_id)
    if video_url:
        video_url = get_object_or_404(VideoUrl, pk=video_url)
    
    if (video.title and not video.title_for_url() == title) or (not video.title and title):
        return redirect(video, permanent=True)
    
    video.update_view_counter()
    
    # TODO: make this more pythonic, prob using kwargs
    context = widget.add_onsite_js_files({})
    context['video'] = video
    context['site'] = Site.objects.get_current()
    context['autosub'] = 'true' if request.GET.get('autosub', False) else 'false'
    translations = list(video.subtitlelanguage_set.filter(had_version=True) \
        .filter(is_original=False).select_related('video'))
    translations.sort(key=lambda f: f.get_language_display())
    context['translations'] = translations
    context['widget_params'] = _widget_params(request, video, None, '')
    _add_share_panel_context_for_video(context, video)
    context['lang_count'] = video.subtitlelanguage_set.filter(has_version=True).count()
    context['original'] = video.subtitle_language()
    return render_to_response('videos/video.html', context,
                              context_instance=RequestContext(request))
Пример #6
0
    def setup(self, request, video, video_url):
        language_for_locale = video.subtitle_language(request.LANGUAGE_CODE)
        if language_for_locale:
            metadata = language_for_locale.get_metadata()
        else:
            metadata = video.get_metadata()

        self.update(widget.add_onsite_js_files({}))
        self['page_title'] = self.page_title(video)
        self['metadata'] = metadata.convert_for_display()
        self['language_list'] = LanguageList(video)
        self['shows_widget_sharing'] = video.can_user_see(request.user)
        self['widget_params'] = _widget_params(request,
                                               video,
                                               language=None,
                                               video_url=video_url
                                               and video_url.effective_url,
                                               size=(620, 370))

        _add_share_panel_context_for_video(self, video)
        self['task'] = _get_related_task(request)
        if video.get_team_video() is not None:
            self['team'] = video.get_team_video().team
        else:
            self['team'] = None
Пример #7
0
def video(request, video_id, video_url=None, title=None):
    video = get_object_or_404(Video, video_id=video_id)
    if video_url:
        video_url = get_object_or_404(VideoUrl, pk=video_url)
    
    if not video_url and ((video.title_for_url() and not video.title_for_url() == title) or (not video.title and title)):
        return redirect(video, permanent=True)

    video.update_view_counter()
    
    # TODO: make this more pythonic, prob using kwargs
    context = widget.add_onsite_js_files({})
    context['video'] = video
    original = video.subtitle_language()
    if original:
        original.pending_moderation_count =  get_pending_count(video.subtitle_language())
    context['autosub'] = 'true' if request.GET.get('autosub', False) else 'false'
    translations = list(video.subtitlelanguage_set.filter(had_version=True) \
        .filter(is_original=False).select_related('video'))
    translations.sort(key=lambda f: f.get_language_display())
    context['translations'] = translations

    context["user_can_moderate"] = user_can_moderate(video, request.user)
    if context["user_can_moderate"]:
        # FIXME: use  amore efficient count
        for l in translations:
            l.pending_moderation_count = get_pending_count(l)
            
    context['widget_params'] = _widget_params(request, video, language=None, video_url=video_url and video_url.effective_url)
    _add_share_panel_context_for_video(context, video)
    context['lang_count'] = video.subtitlelanguage_set.filter(has_version=True).count()
    context['original'] = video.subtitle_language()
    
    return render_to_response('videos/video.html', context,
                              context_instance=RequestContext(request))
Пример #8
0
def detail_members(request, slug):
    #just other tab of detail view
    q = request.REQUEST.get('q')
    
    team = Team.get(slug, request.user)
    
    qs = team.members.all()
    if q:
        qs = qs.filter(Q(user__first_name__icontains=q)|Q(user__last_name__icontains=q) \
                       |Q(user__username__icontains=q)|Q(user__biography__icontains=q))

    extra_context = widget.add_onsite_js_files({})  

    extra_context.update({
        'team': team,
        'query': q
    })
    
    if team.video:
        extra_context['widget_params'] = base_widget_params(request, {
            'video_url': team.video.get_video_url(), 
            'base_state': {}
        })    
    return object_list(request, queryset=qs, 
                       paginate_by=MEMBERS_ON_PAGE, 
                       template_name='teams/detail_members.html', 
                       extra_context=extra_context, 
                       template_object_name='team_member')
Пример #9
0
def video(request, video_id, video_url=None, title=None):
    video = get_object_or_404(Video, video_id=video_id)
    if video_url:
        video_url = get_object_or_404(VideoUrl, pk=video_url)

    if (video.title and not video.title_for_url() == title) or (not video.title
                                                                and title):
        return redirect(video, permanent=True)

    video.update_view_counter()

    # TODO: make this more pythonic, prob using kwargs
    context = widget.add_onsite_js_files({})
    context['video'] = video
    context['site'] = Site.objects.get_current()
    context['autosub'] = 'true' if request.GET.get('autosub',
                                                   False) else 'false'
    translations = list(video.subtitlelanguage_set.filter(had_version=True) \
        .filter(is_original=False).select_related('video'))
    translations.sort(key=lambda f: f.get_language_display())
    context['translations'] = translations
    context['widget_params'] = _widget_params(request, video, None, '')
    _add_share_panel_context_for_video(context, video)
    context['lang_count'] = video.subtitlelanguage_set.filter(
        has_version=True).count()
    context['original'] = video.subtitle_language()
    return render_to_response('videos/video.html',
                              context,
                              context_instance=RequestContext(request))
Пример #10
0
def detail_members(request, slug):
    #just other tab of detail view
    q = request.REQUEST.get('q')

    team = Team.get(slug, request.user)

    qs = team.members.all()
    if q:
        qs = qs.filter(Q(user__first_name__icontains=q)|Q(user__last_name__icontains=q) \
                       |Q(user__username__icontains=q)|Q(user__biography__icontains=q))

    extra_context = widget.add_onsite_js_files({})

    extra_context.update({'team': team, 'query': q})

    if team.video:
        extra_context['widget_params'] = base_widget_params(
            request, {
                'video_url': team.video.get_video_url(),
                'base_state': {}
            })
    return object_list(request,
                       queryset=qs,
                       paginate_by=MEMBERS_ON_PAGE,
                       template_name='teams/detail_members.html',
                       extra_context=extra_context,
                       template_object_name='team_member')
Пример #11
0
def detail(request, slug):
    team = Team.get(slug, request.user)
    
    languages = get_user_languages_from_request(request)
    languages.append('')
    video_ids = team.teamvideo_set.values_list('video_id', flat=True)
    
    qs = SubtitleLanguage.objects.filter(video__in=video_ids).filter(language__in=languages) \
        .exclude(Q(writelock_time__gte=datetime.datetime.now()-datetime.timedelta(seconds=WRITELOCK_EXPIRATION))) \
        .extra(where=['NOT ((SELECT COUNT(vs.id) FROM videos_subtitleversion AS vs INNER JOIN videos_subtitlelanguage AS vsl ON (vsl.id = vs.language_id) WHERE vsl.is_original = %s AND vsl.video_id = videos_subtitlelanguage.video_id) <= 0 AND videos_subtitlelanguage.is_original=%s)'], params=(True, False,)) \
        .distinct()

    qs1 = qs.filter(is_forked=False, is_original=False).filter(percent_done__lt=100, percent_done__gt=0)
    qs2 = qs.filter(is_forked=False, is_original=False).filter(percent_done=0)
    qs3 = qs.filter(is_original=True).filter(subtitleversion__isnull=True)
    qs4 = qs.filter(is_forked=False, is_original=False).filter(percent_done=100)
    qs5 = qs.filter(Q(is_forked=True)|Q(is_original=True)).filter(subtitleversion__isnull=False)
       
    extra_context = widget.add_onsite_js_files({})    
    extra_context.update({
        'team': team
    })

    if team.video:
        extra_context['widget_params'] = base_widget_params(request, {
            'video_url': team.video.get_video_url(), 
            'base_state': {}
        })
    return object_list(request, queryset=MultyQuerySet(qs1, qs2, qs3, qs4, qs5), 
                       paginate_by=VIDEOS_ON_PAGE, 
                       template_name='teams/detail.html', 
                       extra_context=extra_context, 
                       template_object_name='team_video_lang')
Пример #12
0
def team_video(request, team_video_pk):
    team_video = get_object_or_404(TeamVideo, pk=team_video_pk)

    if not team_video.can_edit(request.user):
        raise Http404

    form = EditTeamVideoForm(request.POST or None,
                             request.FILES or None,
                             instance=team_video)

    if form.is_valid():
        form.save()
        messages.success(request, _('Video has been updated.'))
        return redirect(team_video)

    context = widget.add_onsite_js_files({})

    context.update({
        'team':
        team_video.team,
        'team_video':
        team_video,
        'form':
        form,
        'widget_params':
        base_widget_params(request, {
            'video_url': team_video.video.get_video_url(),
            'base_state': {}
        })
    })
    return context
Пример #13
0
def diffing(request, first_pk, second_pk):
    first_version = get_object_or_404(SubtitleVersion, pk=first_pk)
    language = first_version.language
    second_version = get_object_or_404(SubtitleVersion, pk=second_pk, language=language)

    video = first_version.language.video
    if second_version.datetime_started > first_version.datetime_started:
        first_version, second_version = second_version, first_version

    second_captions = dict([(item.subtitle_id, item) for item in second_version.ordered_subtitles()])
    first_captions = dict([(item.subtitle_id, item) for item in first_version.ordered_subtitles()])

    subtitles = {}

    for id, item in first_captions.items():
        if not id in subtitles:
            subtitles[id] = item.start_time

    for id, item in second_captions.items():
        if not id in subtitles:
            subtitles[id] = item.start_time

    subtitles = [item for item in subtitles.items()]
    subtitles.sort(key=lambda item: item[1])

    captions = []
    for subtitle_id, t in subtitles:
        try:
            scaption = second_captions[subtitle_id]
        except KeyError:
            scaption = None
        try:
            fcaption = first_captions[subtitle_id]
        except KeyError:
            fcaption = None

        if fcaption is None or scaption is None:
            changed = dict(text=True, time=True)
        else:
            changed = {
                "text": (not fcaption.text == scaption.text),
                "time": (not fcaption.start_time == scaption.start_time),
                "end_time": (not fcaption.end_time == scaption.end_time),
            }
        data = [fcaption, scaption, changed]
        captions.append(data)

    context = widget.add_onsite_js_files({})
    context["video"] = video
    context["captions"] = captions
    context["language"] = language
    context["first_version"] = first_version
    context["second_version"] = second_version
    context["latest_version"] = language.latest_version()
    context["widget0_params"] = _widget_params(request, video, first_version.version_no)
    context["widget1_params"] = _widget_params(request, video, second_version.version_no)
    return render_to_response("videos/diffing.html", context, context_instance=RequestContext(request))
Пример #14
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)
Пример #15
0
def onsite_widget(request):
    """Used for onsite subtitling

    Temporary kludge for http://bugzilla.pculture.org/show_bug.cgi?id=13694"""
    context = widget.add_onsite_js_files({})
    spaces = ' ' * 9
    params = base_widget_params(request, extra_params={'returnURL': request.GET['return_url']})
    context['widget_params'] = params
    return render_to_response('widget/onsite_widget.html',
                              context,
                              context_instance=RequestContext(request))
Пример #16
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)
Пример #17
0
def revision(request, pk):
    version = get_object_or_404(SubtitleVersion, pk=pk)
    context = widget.add_onsite_js_files({})
    context["video"] = version.video
    context["version"] = version
    context["next_version"] = version.next_version()
    context["prev_version"] = version.prev_version()
    language = version.language
    context["language"] = language
    context["widget_params"] = _widget_params(request, language.video, version.version_no, language.language)
    context["latest_version"] = language.latest_version()
    return render_to_response("videos/revision.html", context, context_instance=RequestContext(request))
Пример #18
0
def revision(request, pk):
    version = get_object_or_404(SubtitleVersion, pk=pk)
    context = widget.add_onsite_js_files({})
    context['video'] = version.video
    context['version'] = version
    context['next_version'] = version.next_version()
    context['prev_version'] = version.prev_version()
    language = version.language
    context['language'] = language
    context['widget_params'] = _widget_params(request, \
            language.video.get_video_url(), version.version_no, language.language)
    context['latest_version'] = language.latest_finished_version()
    return render_to_response('videos/revision.html', context,
                              context_instance=RequestContext(request))     
Пример #19
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,
    )
Пример #20
0
def detail(request, slug):
    team = Team.get(slug, request.user)
    
    languages = get_user_languages_from_request(request)
    languages.extend([l[:l.find('-')] for l in languages if l.find('-') > -1])
    
    langs_pairs = []
    
    for l1 in languages:
        for l0 in languages:
            if not l1 == l0:
                langs_pairs.append('%s_%s' % (l1, l0))
    
    qs = TeamVideoLanguagePair.objects.filter(language_pair__in=langs_pairs, team=team) \
        .select_related('team_video', 'team_video__video')
    lqs = TeamVideoLanguage.objects.filter(team=team).select_related('team_video', 'team_video__video')
    
    qs1 = qs.filter(percent_complete__gt=0,percent_complete__lt=100)
    qs2 = qs.filter(percent_complete=0)
    qs3 = lqs.filter(is_original=True, is_complete=False)
    qs4 = lqs.filter(is_original=False, forked=True, is_complete=True)
    
    mqs = TeamMultyQuerySet(qs1, qs2, qs3, qs4)

    extra_context = widget.add_onsite_js_files({})    
    extra_context.update({
        'team': team,
        'can_edit_video': team.can_edit_video(request.user)
    })

    if len(mqs) == 0:
        mqs = TeamMultyQuerySet(TeamVideoLanguagePair.objects.filter(team=team) \
                                .select_related('team_video', 'team_video__video'))

    general_settings = {}
    add_general_settings(request, general_settings)
    extra_context['general_settings'] = json.dumps(general_settings)

    if team.video:
        extra_context['widget_params'] = base_widget_params(request, {
            'video_url': team.video.get_video_url(), 
            'base_state': {}
        })
        
    return object_list(request, queryset=mqs, 
                       paginate_by=VIDEOS_ON_PAGE, 
                       template_name='teams/detail.html', 
                       extra_context=extra_context, 
                       template_object_name='team_video_md')
Пример #21
0
def revision(request, pk):
    version = get_object_or_404(SubtitleVersion, pk=pk)
    context = widget.add_onsite_js_files({})
    context['video'] = version.video
    context['version'] = version
    context['next_version'] = version.next_version()
    context['prev_version'] = version.prev_version()
    language = version.language
    context['language'] = language
    context['widget_params'] = _widget_params(request, \
            language.video, version.version_no, language.language)
    context['latest_version'] = language.latest_version()
    return render_to_response('videos/revision.html',
                              context,
                              context_instance=RequestContext(request))
Пример #22
0
def video(request, video_id):
    video = get_object_or_404(Video, video_id=video_id)
    video.view_count += 1
    video.save()
    # TODO: make this more pythonic, prob using kwargs
    context = widget.add_onsite_js_files({})
    context['video'] = video
    context['site'] = Site.objects.get_current()
    context['autosub'] = 'true' if request.GET.get('autosub', False) else 'false'
    context['translations'] = video.subtitlelanguage_set.filter(was_complete=True) \
        .filter(is_original=False)
    context['widget_params'] = _widget_params(request, video.get_video_url(), None, '')
    _add_share_panel_context_for_video(context, video)
    context['lang_count'] = video.subtitlelanguage_set.filter(is_complete=True).count()
    context['original'] = video.subtitle_language()
    return render_to_response('videos/video.html', context,
                              context_instance=RequestContext(request))
Пример #23
0
def revision(request, pk):
    version = get_object_or_404(SubtitleVersion, pk=pk)
    context = widget.add_onsite_js_files({})
    context['video'] = version.video
    context['version'] = version
    context['next_version'] = version.next_version()
    context['prev_version'] = version.prev_version()
    language = version.language
    context['language'] = language
    context["user_can_moderate"] = user_can_moderate(version.video, request.user)
    context['widget_params'] = _widget_params(request, \
            language.video, version.version_no, language)
    context['latest_version'] = language.latest_version()
    version.ordered_subtitles()

    return render_to_response('videos/revision.html', context,
                              context_instance=RequestContext(request))     
Пример #24
0
def video(request, video_id, video_url=None, title=None):
    video = get_object_or_404(Video, video_id=video_id)
    if video_url:
        video_url = get_object_or_404(VideoUrl, pk=video_url)

    if not video_url and (
        (video.title_for_url() and not video.title_for_url() == title) or
        (not video.title and title)):
        return redirect(video, permanent=True)

    video.update_view_counter()

    # TODO: make this more pythonic, prob using kwargs
    context = widget.add_onsite_js_files({})
    context['video'] = video
    original = video.subtitle_language()
    if original:
        original.pending_moderation_count = get_pending_count(
            video.subtitle_language())
    context['autosub'] = 'true' if request.GET.get('autosub',
                                                   False) else 'false'
    translations = list(video.subtitlelanguage_set.filter(had_version=True) \
        .filter(is_original=False).select_related('video'))
    translations.sort(key=lambda f: f.get_language_display())
    context['translations'] = translations

    context["user_can_moderate"] = user_can_moderate(video, request.user)
    if context["user_can_moderate"]:
        # FIXME: use  amore efficient count
        for l in translations:
            l.pending_moderation_count = get_pending_count(l)

    context['widget_params'] = _widget_params(request,
                                              video,
                                              language=None,
                                              video_url=video_url
                                              and video_url.effective_url)
    _add_share_panel_context_for_video(context, video)
    context['lang_count'] = video.subtitlelanguage_set.filter(
        has_version=True).count()
    context['original'] = video.subtitle_language()

    return render_to_response('videos/video.html',
                              context,
                              context_instance=RequestContext(request))
Пример #25
0
def diffing(request, first_version, second_pk):
    language = first_version.subtitle_language
    second_version = get_object_or_404(
        sub_models.SubtitleVersion.objects.extant(),
        pk=second_pk,
        subtitle_language=language)

    if first_version.video != second_version.video:
        # this is either a bad bug, or someone evil
        raise "Revisions for diff videos"

    if first_version.pk < second_version.pk:
        # this is just stupid Instead of first, second meaning
        # chronological order (first cames before second)
        # it means  the opposite, so make sure the first version
        # has a larger version no than the second
        first_version, second_version = second_version, first_version

    video = first_version.subtitle_language.video
    diff_data = diff_subs(first_version.get_subtitles(),
                          second_version.get_subtitles())
    team_video = video.get_team_video()

    context = widget.add_onsite_js_files({})
    context['video'] = video
    context['diff_data'] = diff_data
    context['language'] = language
    context['first_version'] = first_version
    context['second_version'] = second_version
    context['latest_version'] = language.get_tip()
    if team_video and not can_rollback_language(request.user, language):
        context['rollback_allowed'] = False
    else:
        context['rollback_allowed'] = True
    context['widget0_params'] = \
        _widget_params(request, video,
                       first_version.version_number)
    context['widget1_params'] = \
        _widget_params(request, video,
                       second_version.version_number)
    return render_to_response('videos/diffing.html',
                              context,
                              context_instance=RequestContext(request))
Пример #26
0
def detail(request, slug, is_debugging=False, languages=None):
    team = Team.get(slug, request.user)

    if languages is None:
        languages = get_user_languages_from_request(request)
    if bool(is_debugging):
        languages = request.GET.get("langs", "").split(",")

    data = team.get_videos_for_languages(languages, CUTTOFF_DUPLICATES_NUM_VIDEOS_ON_TEAMS)
    mqs = data['videos']
    
    extra_context = widget.add_onsite_js_files({})    
    extra_context.update({
        'team': team,
        'can_edit_video': team.can_edit_video(request.user)
    })

    


    general_settings = {}
    add_general_settings(request, general_settings)
    extra_context['general_settings'] = json.dumps(general_settings)


    if team.video:
        extra_context['widget_params'] = base_widget_params(request, {
            'video_url': team.video.get_video_url(), 
            'base_state': {}
        })

    if bool(is_debugging) and request.user.is_staff:
        extra_context.update(data)
        extra_context.update({
            'languages': languages,
            })
        return render_to_response("teams/detail-debug.html", extra_context, RequestContext(request))
    
    return object_list(request, queryset=mqs, 
                       paginate_by=VIDEOS_ON_PAGE, 
                       template_name='teams/detail.html', 
                       extra_context=extra_context, 
                       template_object_name='team_video_md')
Пример #27
0
def detail_old(request, slug, is_debugging=False, languages=None):
    team = Team.get(slug, request.user)

    if languages is None:
        languages = get_user_languages_from_request(request)
    if bool(is_debugging):
        languages = request.GET.get("langs", "").split(",")

    data = team.get_videos_for_languages(
        languages, CUTTOFF_DUPLICATES_NUM_VIDEOS_ON_TEAMS)
    mqs = data['videos']

    extra_context = widget.add_onsite_js_files({})
    extra_context.update({
        'team': team,
        'can_edit_video': team.can_edit_video(request.user)
    })

    general_settings = {}
    add_general_settings(request, general_settings)
    extra_context['general_settings'] = json.dumps(general_settings)

    if team.video:
        extra_context['widget_params'] = base_widget_params(
            request, {
                'video_url': team.video.get_video_url(),
                'base_state': {}
            })

    if bool(is_debugging) and request.user.is_staff:
        extra_context.update(data)
        extra_context.update({
            'languages': languages,
        })
        return render_to_response("teams/detail-debug.html", extra_context,
                                  RequestContext(request))

    return object_list(request,
                       queryset=mqs,
                       paginate_by=VIDEOS_ON_PAGE,
                       template_name='teams/detail.html',
                       extra_context=extra_context,
                       template_object_name='team_video_md')
Пример #28
0
def diffing(request, first_pk, second_pk):
    first_version = get_object_or_404(SubtitleVersion, pk=first_pk)
    language = first_version.language
    second_version = get_object_or_404(SubtitleVersion, pk=second_pk, language=language)
    
    video = first_version.language.video
    if second_version.datetime_started > first_version.datetime_started:
        first_version, second_version = second_version, first_version
    
    second_captions = dict([(item.subtitle_id, item) for item in second_version.subtitles()])
    captions = []

    for caption in first_version.subtitles():
        try:
            scaption = second_captions[caption.subtitle_id]
        except KeyError:
            scaption = None
            changed = dict(text=True, time=True)
        else:
            changed = {
                'text': (not caption.subtitle_text == scaption.subtitle_text), 
                'time': (not caption.start_time == scaption.start_time),
                'end_time': (not caption.end_time == scaption.end_time)
            }
        data = [caption, scaption, changed]
        captions.append(data)
        
    context = widget.add_onsite_js_files({})
    context['video'] = video
    context['captions'] = captions
    context['language'] = language
    context['first_version'] = first_version
    context['second_version'] = second_version
    context['latest_version'] = language.latest_finished_version()
    context['widget0_params'] = \
        _widget_params(request, video.get_video_url(), 
                       first_version.version_no)
    context['widget1_params'] = \
        _widget_params(request, video.get_video_url(),
                       second_version.version_no)
    return render_to_response('videos/diffing.html', context,
                              context_instance=RequestContext(request)) 
Пример #29
0
def video(request, video, video_url=None, title=None):
    """
    If user is about to perform a task on this video, then t=[task.pk]
    will be passed to as a url parameter.
    """
    if video_url:
        video_url = get_object_or_404(VideoUrl, pk=video_url)

    if not video_url and (
        (video.title_for_url() and not video.title_for_url() == title) or
        (not video.title and title)):
        return redirect(video, permanent=True)

    video.update_view_counter()

    # TODO: make this more pythonic, prob using kwargs
    context = widget.add_onsite_js_files({})
    context['video'] = video
    context['autosub'] = 'true' if request.GET.get('autosub',
                                                   False) else 'false'
    context['translations'] = _get_translations(video)
    context[
        'shows_widget_sharing'] = VideoVisibilityPolicy.objects.can_show_widget(
            video, request.META.get('HTTP_REFERER', ''))

    context['widget_params'] = _widget_params(request,
                                              video,
                                              language=None,
                                              video_url=video_url
                                              and video_url.effective_url,
                                              size=(620, 370))

    _add_share_panel_context_for_video(context, video)
    context['lang_count'] = video.subtitlelanguage_set.filter(
        has_version=True).count()
    context['original'] = video.subtitle_language()
    context['task'] = _get_related_task(request)

    return render_to_response('videos/video-view.html',
                              context,
                              context_instance=RequestContext(request))
Пример #30
0
def revision(request, pk):
    version = get_object_or_404(SubtitleVersion, pk=pk)
    context = widget.add_onsite_js_files({})
    context['video'] = version.video
    context['version'] = version
    context['next_version'] = version.next_version()
    context['prev_version'] = version.prev_version()
    language = version.language
    context['language'] = language

    context["user_can_moderate"] = False
    if feature_is_on("MODERATION"):
        context["user_can_moderate"] = user_can_moderate(video, request.user)
    context['widget_params'] = _widget_params(request, \
            language.video, version.version_no, language)
    context['latest_version'] = language.latest_version()
    version.ordered_subtitles()

    return render_to_response('videos/revision.html',
                              context,
                              context_instance=RequestContext(request))
Пример #31
0
def completed_videos(request, slug):
    team = Team.get(slug, request.user)
    
    qs = SearchQuerySet().models(TeamVideo).filter(team_id=team.id) \
        .filter(is_complete=True).order_by('-video_complete_date')

    extra_context = widget.add_onsite_js_files({})    
    extra_context.update({
        'team': team
    })
    
    if team.video:
        extra_context['widget_params'] = base_widget_params(request, {
            'video_url': team.video.get_video_url(), 
            'base_state': {}
        })

    return object_list(request, queryset=qs, 
                       paginate_by=VIDEOS_ON_PAGE, 
                       template_name='teams/completed_videos.html', 
                       extra_context=extra_context, 
                       template_object_name='team_video')    
Пример #32
0
def team_video(request, team_video_pk):
    team_video = get_object_or_404(TeamVideo, pk=team_video_pk)
    
    if not team_video.can_edit(request.user):
        raise Http404
    
    form = EditTeamVideoForm(request.POST or None, request.FILES or None, instance=team_video)

    if form.is_valid():
        form.save()
        messages.success(request, _('Video has been updated.'))
        return redirect(team_video)

    context = widget.add_onsite_js_files({})
    
    context.update({
        'team': team_video.team,
        'team_video': team_video,
        'form': form,
        'widget_params': base_widget_params(request, {'video_url': team_video.video.get_video_url(), 'base_state': {}})
    })
    return context
Пример #33
0
def completed_videos(request, slug):
    team = Team.get(slug, request.user)
    
    qs = SearchQuerySet().models(TeamVideo).filter(team_id=team.id) \
        .filter(is_complete=True).order_by('-video_complete_date')

    extra_context = widget.add_onsite_js_files({})    
    extra_context.update({
        'team': team
    })
    
    if team.video:
        extra_context['widget_params'] = base_widget_params(request, {
            'video_url': team.video.get_video_url(), 
            'base_state': {}
        })

    return object_list(request, queryset=qs, 
                       paginate_by=VIDEOS_ON_PAGE, 
                       template_name='teams/completed_videos.html', 
                       extra_context=extra_context, 
                       template_object_name='team_video')    
Пример #34
0
def video(request, video_id, video_url=None, title=None):
    video = get_object_or_404(Video, video_id=video_id)
    if video_url:
        video_url = get_object_or_404(VideoUrl, pk=video_url)

    if (video.title and not video.title_for_url() == title) or (not video.title and title):
        return redirect(video, permanent=True)

    video.update_view_counter()

    # TODO: make this more pythonic, prob using kwargs
    context = widget.add_onsite_js_files({})
    context["video"] = video
    context["site"] = Site.objects.get_current()
    context["autosub"] = "true" if request.GET.get("autosub", False) else "false"
    translations = list(video.subtitlelanguage_set.filter(was_complete=True).filter(is_original=False))
    translations.sort(key=lambda f: f.get_language_display())
    context["translations"] = translations
    context["widget_params"] = _widget_params(request, video, None, "")
    _add_share_panel_context_for_video(context, video)
    context["lang_count"] = video.subtitlelanguage_set.filter(is_complete=True).count()
    context["original"] = video.subtitle_language()
    return render_to_response("videos/video.html", context, context_instance=RequestContext(request))
Пример #35
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)
Пример #36
0
def completed_videos(request, slug):
    team = Team.get(slug, request.user)

    qs = team.teamvideo_set.exclude(video__complete_date__isnull=True) \
        .select_related('video').order_by('-video__complete_date')

    extra_context = widget.add_onsite_js_files({})
    extra_context.update({'team': team})

    if team.video:
        extra_context['widget_params'] = base_widget_params(
            request, {
                'video_url': team.video.get_video_url(),
                'base_state': {}
            })

    qs = qs._clone(CompletedVideosQS)

    return object_list(request,
                       queryset=qs,
                       paginate_by=VIDEOS_ON_PAGE,
                       template_name='teams/completed_videos.html',
                       extra_context=extra_context,
                       template_object_name='team_video')
Пример #37
0
def completed_videos(request, slug):
    team = Team.get(slug, request.user)
    
    qs = team.teamvideo_set.exclude(video__complete_date__isnull=True) \
        .select_related('video').order_by('-video__complete_date')
        
    extra_context = widget.add_onsite_js_files({})    
    extra_context.update({
        'team': team
    })
    
    if team.video:
        extra_context['widget_params'] = base_widget_params(request, {
            'video_url': team.video.get_video_url(), 
            'base_state': {}
        })

    qs = qs._clone(CompletedVideosQS)

    return object_list(request, queryset=qs, 
                       paginate_by=VIDEOS_ON_PAGE, 
                       template_name='teams/completed_videos.html', 
                       extra_context=extra_context, 
                       template_object_name='team_video')    
Пример #38
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))
Пример #39
0
def detail(request, slug, is_debugging=False):
    team = Team.get(slug, request.user)

    languages = get_user_languages_from_request(request)
    if bool(is_debugging):
        languages = request.GET.get("langs", "").split(",")
    languages.extend([l[:l.find('-')] for l in languages if l.find('-') > -1])

    langs_pairs = []

    for l1 in languages:
        for l0 in languages:
            if not l1 == l0:
                langs_pairs.append('%s_%s' % (l1, l0))

    qs = TeamVideoLanguagePair.objects.filter(language_pair__in=langs_pairs, team=team) \
        .select_related('team_video', 'team_video__video')
    lqs = TeamVideoLanguage.objects.filter(team=team).select_related(
        'team_video', 'team_video__video')

    qs1 = qs.filter(percent_complete__gt=0, percent_complete__lt=100)
    qs2 = qs.filter(percent_complete=0)
    qs3 = lqs.filter(is_original=True,
                     is_complete=False,
                     language__in=languages)
    qs4 = lqs.filter(is_original=False,
                     forked=True,
                     is_complete=False,
                     language__in=languages)
    mqs = TeamMultyQuerySet(qs1, qs2, qs3, qs4)

    extra_context = widget.add_onsite_js_files({})
    extra_context.update({
        'team': team,
        'can_edit_video': team.can_edit_video(request.user)
    })
    total_count = TeamVideo.objects.filter(team=team).count()

    additional = TeamVideoLanguagePair.objects.none()
    all_videos = TeamVideo.objects.filter(team=team).select_related('video')

    if total_count == 0:
        mqs = all_videos
    else:
        if total_count < CUTTOFF_DUPLICATES_NUM_VIDEOS_ON_TEAMS:
            additional = all_videos.exclude(pk__in=[x.id for x in mqs])
        else:
            additional = all_videos
        mqs = TeamMultyQuerySet(qs1, qs2, qs3, qs4, additional)

    general_settings = {}
    add_general_settings(request, general_settings)
    extra_context['general_settings'] = json.dumps(general_settings)

    if team.video:
        extra_context['widget_params'] = base_widget_params(
            request, {
                'video_url': team.video.get_video_url(),
                'base_state': {}
            })

    if bool(is_debugging) and request.user.is_staff:
        extra_context.update({
            'languages': languages,
            'qs': qs,
            'lqs': lqs,
            'qs1': qs1,
            'qs2': qs2,
            'qs3': qs3,
            'qs4': qs4,
            'mqs': mqs,
            'mqs_count': len(mqs),
            'additional_count': additional.count(),
            'additional': additional[:50]
        })
        return render_to_response("teams/detail-debug.html", extra_context,
                                  RequestContext(request))

    return object_list(request,
                       queryset=mqs,
                       paginate_by=VIDEOS_ON_PAGE,
                       template_name='teams/detail.html',
                       extra_context=extra_context,
                       template_object_name='team_video_md')
Пример #40
0
def index(request):
    context = widget.add_onsite_js_files({})
    context['all_videos'] = Video.objects.count()
    return render_to_response('index.html',
                              context,
                              context_instance=RequestContext(request))
Пример #41
0
def diffing(request, first_pk, second_pk):
    first_version = get_object_or_404(SubtitleVersion, pk=first_pk)
    language = first_version.language
    second_version = get_object_or_404(SubtitleVersion,
                                       pk=second_pk,
                                       language=language)

    video = first_version.language.video
    if second_version.datetime_started > first_version.datetime_started:
        first_version, second_version = second_version, first_version

    second_captions = dict([(item.subtitle_id, item)
                            for item in second_version.ordered_subtitles()])
    first_captions = dict([(item.subtitle_id, item)
                           for item in first_version.ordered_subtitles()])

    subtitles = {}

    for id, item in first_captions.items():
        if not id in subtitles:
            subtitles[id] = item.start_time

    for id, item in second_captions.items():
        if not id in subtitles:
            subtitles[id] = item.start_time

    subtitles = [item for item in subtitles.items()]
    subtitles.sort(key=lambda item: item[1])

    captions = []
    for subtitle_id, t in subtitles:
        try:
            scaption = second_captions[subtitle_id]
        except KeyError:
            scaption = None
        try:
            fcaption = first_captions[subtitle_id]
        except KeyError:
            fcaption = None

        if fcaption is None or scaption is None:
            changed = dict(text=True, time=True)
        else:
            changed = {
                'text': (not fcaption.text == scaption.text),
                'time': (not fcaption.start_time == scaption.start_time),
                'end_time': (not fcaption.end_time == scaption.end_time)
            }
        data = [fcaption, scaption, changed]
        captions.append(data)

    context = widget.add_onsite_js_files({})
    context['video'] = video
    context['captions'] = captions
    context['language'] = language
    context['first_version'] = first_version
    context['second_version'] = second_version
    context['latest_version'] = language.latest_version()
    context['widget0_params'] = \
        _widget_params(request, video,
                       first_version.version_no)
    context['widget1_params'] = \
        _widget_params(request, video,
                       second_version.version_no)
    return render_to_response('videos/diffing.html',
                              context,
                              context_instance=RequestContext(request))
Пример #42
0
def demo(request):
    context = widget.add_onsite_js_files({})
    return render_to_response('demo.html',
                              context,
                              context_instance=RequestContext(request))
Пример #43
0
def detail(request, slug, is_debugging=False):
    team = Team.get(slug, request.user)
    
    languages = get_user_languages_from_request(request)
    if bool(is_debugging):
        languages = request.GET.get("langs", "").split(",")
    languages.extend([l[:l.find('-')] for l in languages if l.find('-') > -1])
    
    langs_pairs = []
    
    for l1 in languages:
        for l0 in languages:
            if not l1 == l0:
                langs_pairs.append('%s_%s' % (l1, l0))
    
    qs = TeamVideoLanguagePair.objects.filter(language_pair__in=langs_pairs, team=team) \
        .select_related('team_video', 'team_video__video')
    lqs = TeamVideoLanguage.objects.filter(team=team).select_related('team_video', 'team_video__video')
    
    qs1 = qs.filter(percent_complete__gt=0,percent_complete__lt=100)
    qs2 = qs.filter(percent_complete=0)
    qs3 = lqs.filter(is_original=True, is_complete=False, language__in=languages)
    qs4 = lqs.filter(is_original=False, forked=True, is_complete=False, language__in=languages)
    mqs = TeamMultyQuerySet(qs1, qs2, qs3, qs4)

    extra_context = widget.add_onsite_js_files({})    
    extra_context.update({
        'team': team,
        'can_edit_video': team.can_edit_video(request.user)
    })
    total_count = TeamVideo.objects.filter(team=team).count()

    additional = TeamVideoLanguagePair.objects.none()
    all_videos = TeamVideo.objects.filter(team=team).select_related('video')

    if total_count == 0:
        mqs = all_videos
    else:
        if  total_count < CUTTOFF_DUPLICATES_NUM_VIDEOS_ON_TEAMS:
            additional = all_videos.exclude(pk__in=[x.id for x in mqs ])
        else:
            additional = all_videos
        mqs = TeamMultyQuerySet(qs1, qs2, qs3, qs4 , additional)    


    general_settings = {}
    add_general_settings(request, general_settings)
    extra_context['general_settings'] = json.dumps(general_settings)


    if team.video:
        extra_context['widget_params'] = base_widget_params(request, {
            'video_url': team.video.get_video_url(), 
            'base_state': {}
        })

    if bool(is_debugging) and request.user.is_staff:
        extra_context.update({
            'languages': languages,
            'qs': qs,
            'lqs': lqs,
            'qs1': qs1,
            'qs2': qs2,
            'qs3': qs3,
            'qs4': qs4,
            'mqs':mqs,
            'mqs_count': len(mqs),
            'additional_count': additional.count(),
            'additional': additional[:50]
            })
        return render_to_response("teams/detail-debug.html", extra_context, RequestContext(request))
    
    return object_list(request, queryset=mqs, 
                       paginate_by=VIDEOS_ON_PAGE, 
                       template_name='teams/detail.html', 
                       extra_context=extra_context, 
                       template_object_name='team_video_md')
Пример #44
0
def index(request):
    context = widget.add_onsite_js_files({})
    context['all_videos'] = Video.objects.count()
    return render_to_response('index.html', context,
                              context_instance=RequestContext(request))
Пример #45
0
def demo(request):
    context = widget.add_onsite_js_files({})
    return render_to_response('demo.html', context,
                              context_instance=RequestContext(request))
Пример #46
0
def index(request):
    context = widget.add_onsite_js_files({})
    context['widget_params'] = _widget_params(request, 'http://subtesting.com/video/Usubs-IntroVideo.theora.ogg', None, '')
    return render_to_response('index.html', context,
                              context_instance=RequestContext(request))