Esempio n. 1
0
    def clean(self):
        data = super(CreateVideoUrlForm, self).clean()
        video = data.get('video')
        if video and not can_user_edit_video_urls(video, self.user):
            raise forms.ValidationError(_('You have not permission add video URL for this video'))

        return self.cleaned_data
Esempio n. 2
0
def video_make_url_primary_form(request, video):
    if not permissions.can_user_edit_video_urls(video, request.user):
        raise PermissionDenied()
    try:
        video_url = video.videourl_set.get(id=request.POST.get('id', -1))
    except VideoUrl.DoesNotExist:
        success = False
    else:
        video_url.make_primary(request.user)
        success = True

    response_renderer = AJAXResponseRenderer(request)
    if success:
        response_renderer.replace(*urls_tab_replacement_data(request, video))
        response_renderer.hide_modal()
    return response_renderer.render()
Esempio n. 3
0
def video_url_make_primary(request):
    output = {}
    id = request.POST.get('id')
    status = 200
    if id:
        try:
            obj = VideoUrl.objects.get(id=id)
            tv = obj.video.get_team_video()
            if tv and not permissions.can_user_edit_video_urls(obj.video, request.user):
                output['error'] = ugettext('You have not permission change this URL')
                status = 403
            else:
                obj.make_primary(user=request.user)
        except VideoUrl.DoesNotExist:
            output['error'] = ugettext('Object does not exist')
            status = 404
    return HttpResponse(json.dumps(output), status=status)
Esempio n. 4
0
def video_add_url_form(request, video):
    if not permissions.can_user_edit_video_urls(video, request.user):
        raise PermissionDenied()
    create_url_form = NewCreateVideoUrlForm(video, request.user,
                                            data=request.POST)
    response_renderer = AJAXResponseRenderer(request)
    if create_url_form.is_valid():
        create_url_form.save()
        response_renderer.clear_form('#add-url-form form')
        response_renderer.replace(*urls_tab_replacement_data(request, video))
        response_renderer.hide_modal()
    else:
        response_renderer.replace(
            '#add-url-form', "future/videos/forms/create-url.html", {
                'create_url_form': create_url_form,
            })

    return response_renderer.render()
Esempio n. 5
0
def can_user_edit_video_urls(video, user):
    return permissions.can_user_edit_video_urls(video, user)
Esempio n. 6
0
def video(request, video_id, video_url=None, title=None):
    if should_use_old_view(request):
        return oldviews.video(request, video_id, video_url, title)
    if request.is_ajax() and 'form' in request.POST:
        return video_ajax_form(request, video_id)
    request.use_cached_user()
    try:
        video = Video.cache.get_instance_by_video_id(video_id, 'video-page')
    except Video.DoesNotExist:
        raise Http404
    if not video.can_user_see(request.user):
        raise PermissionDenied()

    if video_url:
        video_url = get_object_or_404(video.videourl_set, pk=video_url)
    else:
        video_url = video.get_primary_videourl_obj()

    workflow = video.get_workflow()
    if workflow.user_can_create_new_subtitles(request.user):
        form_name = request.GET.get('form', '')
        if form_name == 'create-subtitles':
            return create_subtitles(request, video_id)
        else:
            # this is the old code for creating the CreateSubtitlesForm
            create_subtitles_form = CreateSubtitlesForm(request,video)
    else:
        create_subtitles_form = None
    if request.user.is_authenticated():
        comment_form = CommentForm(video)
    else:
        comment_form = None
    if permissions.can_user_edit_video_urls(video, request.user):
        create_url_form = NewCreateVideoUrlForm(video, request.user)
        allow_delete = allow_make_primary = True
    else:
        create_url_form = None
        allow_delete = allow_make_primary = False

    customization = behaviors.video_page_customize(request, video)
    all_activities = ActivityRecord.objects.for_video(
        video, customization.team)

    if request.is_ajax() and request.GET.get('show-all', None):
        response_renderer = AJAXResponseRenderer(request)
        response_renderer.replace(
            '#video_activity', "future/videos/tabs/activity.html", {
                'activity': all_activities,
            },
        )
        return response_renderer.render()

    activity = all_activities[:ACTIVITY_PER_PAGE]
    show_all = False if len(activity) >= len(all_activities) else True

    sanity_check_video_urls(request, video)

    return render(request, 'future/videos/video.html', {
        'video': video,
        'player_url': video_url.url,
        'team': video.get_team(),
        'team_video': video.get_team_video(),
        'tab': request.GET.get('tab', 'info'),
        'allow_delete': allow_delete,
        'allow_make_primary': allow_make_primary,
        'create_subtitles_form': create_subtitles_form,
        'comment_form': comment_form,
        'create_url_form': create_url_form,
        'comments': Comment.get_for_object(video),
        'activity': activity,
        'activity_count': 1,
        'show_all': show_all,
        'metadata': video.get_metadata().convert_for_display(),
        'custom_sidebar': customization.sidebar,
        'header': customization.header,
        'use_old_messages': True,
        'video_urls': [
            (vurl, get_sync_account(video, vurl))
            for vurl in video.get_video_urls()
        ],
    })