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
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 )
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]
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))
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 )
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
'', (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
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)
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)