Example #1
0
    def clean(self, *args, **kwargs):
        super(EditTeamVideoForm, self).clean(*args, **kwargs)

        if feature_is_on("MODERATION"):
            should_moderate = self.cleaned_data.get("is_moderated", False)
            if self.instance:

                team = self.instance.team
                video = self.instance.video
                who_owns = video.moderated_by
                is_ours = who_owns and who_owns == team
                if should_moderate:
                    if  is_ours:
                    # do nothing, we are good!
                        pass
                    elif  who_owns:
                        self._errors['is_moderated'] = self.error_class([u"This video is already moderated by team %s" % who_owns])
                        del self.cleaned_data['is_moderated']
                    else:
                        self.should_add_moderation = True
                else:
                    if not who_owns:
                        # do nothing we are good!
                        pass
                    elif is_ours:
                        self.should_remove_moderation = True

        return self.cleaned_data
Example #2
0
    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop("user")

        super(EditTeamVideoForm, self).__init__(*args, **kwargs)

        if feature_is_on("MODERATION"):
            self.should_add_moderation = self.should_remove_moderation = False

            if self.instance:
                video  = self.instance.video
                team = self.instance.team

                if video and team:
                    who_owns = video.moderated_by
                    is_ours = who_owns and who_owns == team
                    is_moderated = False
                    if who_owns and not is_ours:
                        self.is_moderated_by_other_team = who_owns
                        # should write about moderation
                        pass
                    else:
                        if is_ours:
                            is_moderated = True
                        self.fields['is_moderated'] = forms.BooleanField(
                            label=_("Moderate subtitles"),
                            initial=is_moderated,
                            required=False
                        )
Example #3
0
    def save(self, *args, **kwargs):
        obj = super(EditTeamVideoForm, self).save(*args, **kwargs)

        video = obj.video
        team = obj.team

        if feature_is_on("MODERATION"):
            if self.should_add_moderation:
                try:
                    add_moderation(video, team, self.user)
                except Exception ,e:
                    raise
                    self._errors["should_moderate"] = [e]
            elif self.should_remove_moderation:

                    try:
                        remove_moderation(video, team, self.user)
                    except Exception ,e:
                        raise
                        self._errors["should_moderate"] = [e]
Example #4
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))     
Example #5
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))
Example #6
0
    def __init__(self, *args, **kwargs):
        self.user = kwargs.pop("user")
        
            
        super(EditTeamVideoForm, self).__init__(*args, **kwargs)
        
        self.fields['all_languages'].widget.attrs['class'] = 'checkbox'
        self.fields['completed_languages'].help_text = None
        self.fields['completed_languages'].widget = forms.CheckboxSelectMultiple()
        if self.instance:
            self.fields['completed_languages'].queryset = self.instance.video.subtitlelanguage_set.all()
        else:
            self.fields['completed_languages'].queryset = SubtitleLanguage.objects.none()

        if feature_is_on("MODERATION"):
            self.should_add_moderation = self.should_remove_moderation = False

            if self.instance:
                video  = self.instance.video
                team = self.instance.team

                if video and team:
                    who_owns = video.moderated_by
                    is_ours = who_owns and who_owns == team
                    is_moderated = False
                    if who_owns and not is_ours:
                        self.is_moderated_by_other_team = who_owns
                        # should write about moderation
                        pass
                    else:
                        if is_ours:
                             is_moderated = True
                        self.fields['is_moderated'] = forms.BooleanField(
                            label=_("Moderate subtitles"),
                            initial=is_moderated,
                            required=False
                        )
Example #7
0
    from services import urls
    urlpatterns += patterns('',
        (r'^unisubservices/', include('services.urls', namespace='services')),
    )
except ImportError:
    pass

try:
    from api import urls
    urlpatterns += patterns('',
        url(r'^api/', include('api.urls', 'api')),
    )
except ImportError:
    pass

if feature_is_on('MODERATION'):
    urlpatterns += patterns("",
        (r'^moderation/', include('teams.moderation_urls', namespace="moderation")),
    )
if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
         {'document_root': settings.STATIC_ROOT, 'show_indexes': True}),
        (r'^user-data/(?P<path>.*)$', 'django.views.static.serve',
         {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
        (r'raw_template/(?P<template>.*)', 'django.views.generic.simple.direct_to_template'),
    )

from django import http
from django.template import RequestContext, loader
Example #8
0
        '',
        (r'^unisubservices/', include('services.urls', namespace='services')),
    )
except ImportError:
    pass

try:
    from api import urls
    urlpatterns += patterns(
        '',
        url(r'^api/', include('api.urls', 'api')),
    )
except ImportError:
    pass

if feature_is_on('MODERATION'):
    urlpatterns += patterns(
        "",
        (r'^moderation/',
         include('teams.moderation_urls', namespace="moderation")),
    )
if settings.DEBUG:
    urlpatterns += patterns(
        '',
        (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.STATIC_ROOT,
            'show_indexes': True
        }),
        (r'^user-data/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,
            'show_indexes': True
Example #9
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)
        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
    original = video.subtitle_language()
    if original:
        original.pending_moderation_count = get_pending_count(
            video.subtitle_language())
    translations = list(video.subtitlelanguage_set.filter(is_original=False) \
        .filter(had_version=True).select_related('video'))

    context["user_can_moderate"] = False
    if feature_is_on("MODERATION"):
        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)

    translations.sort(key=lambda f: f.get_language_display())
    context['translations'] = translations
    context['last_version'] = language.latest_version(public_only=False)
    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 #10
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)
        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
    original = video.subtitle_language()
    if original:
        original.pending_moderation_count =  get_pending_count(video.subtitle_language())
    translations = list(video.subtitlelanguage_set.filter(is_original=False) \
        .filter(had_version=True).select_related('video'))

    context["user_can_moderate"] = False
    if feature_is_on("MODERATION"):
        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)
        
    translations.sort(key=lambda f: f.get_language_display())
    context['translations'] = translations    
    context['last_version'] = language.latest_version(public_only=False)
    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)