예제 #1
0
파일: views.py 프로젝트: natea/mediathread
def annotationview(request, asset_id, annot_id):
    annotation = get_object_or_404(SherdNote,
                                   pk=annot_id, asset=asset_id,
                                   asset__course=request.course)

    user = request.user
    if user.is_staff and request.GET.has_key('as'):
        user = get_object_or_404(User,username=request.GET['as'])

    if request.method in ("DELETE", "POST"):
        if request.method == "DELETE":
            redirect_to = reverse('asset-view', args=[asset_id])
        elif request.method == "POST":
            redirect_to = '.'

        form = request.GET.copy()
        form['next'] = redirect_to
        request.GET = form
        return annotation_dispatcher(request, annot_id)

    asset = annotation.asset

    global_annotation = asset.global_annotation(user, auto_create=False)

    if global_annotation == annotation:
        return HttpResponseRedirect(
            '%s#whole-form' % reverse('asset-view', args=[asset_id]))

    rv = asset_accoutrements(request, annotation.asset, user, 
                             AnnotationForm(instance=annotation, prefix="annotation")
                             )
    rv['annotation'] = annotation
    rv['readonly'] = (annotation.author != request.user)

    return rv
예제 #2
0
def annotationview(request, asset_id, annot_id):
    annotation = get_object_or_404(SherdNote,
                                   pk=annot_id, asset=asset_id,
                                   asset__course=request.course)

    user = request.user
    if user.is_staff and request.GET.has_key('as'):
        user = get_object_or_404(User,username=request.GET['as'])

    if request.method in ("DELETE", "POST"):
        if request.method == "DELETE":
            redirect_to = reverse('asset-view', args=[asset_id])
        elif request.method == "POST":
            redirect_to = '.'

        form = request.GET.copy()
        form['next'] = redirect_to
        request.GET = form
        return annotation_dispatcher(request, annot_id)

    readonly = False
    if annotation.author != request.user:
        readonly = True
        
    asset = annotation.asset

    global_annotation = asset.global_annotation(user)

    if global_annotation == annotation:
        return HttpResponseRedirect(
            reverse('asset-view', args=[asset_id]))

    form = AnnotationForm(instance=annotation, prefix="annotation")

    tags = calculate_cloud(
        Tag.objects.usage_for_queryset(
            asset.sherdnote_set.all(), counts=True))
    user_tags = calculate_cloud(
        Tag.objects.usage_for_queryset(
            user.sherdnote_set.filter(
                asset__course=request.course),
            counts=True))

    comments = Comment and Comment.objects.for_model(asset) or None

    return {
        'annotation_form': form,
        'asset': asset,
        'comments': comments,
        'annotation': annotation,
        'global_annotation': global_annotation,
        'global_annotation_form': GlobalAnnotationForm(
            instance=global_annotation, prefix="annotation"),
        'tags': tags,
        'space_viewer':user,
        'user_tags': user_tags,
        'readonly': readonly,
        }
예제 #3
0
def annotationview(request, asset_id, annot_id):

    user = request.user
    if user.is_staff and request.GET.has_key('as'):
        user = get_object_or_404(User,username=request.GET['as'])

    try:
        annotation = SherdNote.objects.get(pk=annot_id, 
                                       asset=asset_id,
                                       asset__course=request.course)
    
        if request.method in ("DELETE", "POST"):
            if request.method == "DELETE":
                redirect_to = reverse('asset-view', args=[asset_id])
            elif request.method == "POST":
                redirect_to = '.'
    
            form = request.GET.copy()
            form['next'] = redirect_to
            request.GET = form
            return annotation_dispatcher(request, annot_id)
    
        asset = annotation.asset
    
        global_annotation = asset.global_annotation(user, auto_create=False)
    
        if global_annotation == annotation:
            return HttpResponseRedirect(
                '%s#whole-form' % reverse('asset-view', args=[asset_id]))
    
        rv = asset_accoutrements(request, annotation.asset, user, 
                                 AnnotationForm(instance=annotation, prefix="annotation")
                                 )
        rv['annotation'] = annotation
        rv['readonly'] = (annotation.author != request.user)
        
        return render_to_response('assetmgr/asset.html', rv, context_instance=RequestContext(request))

    except SherdNote.DoesNotExist:
        annotation = get_object_or_404(SherdNote,
                                       pk=annot_id, 
                                       asset=asset_id)
        
        # the user is logged into the wrong class?
        rv = {}
        rv['switch_to'] = annotation.asset.course
        rv['switch_from'] = request.course
        rv['redirect'] = reverse('annotation-form', args=[asset_id, annot_id])
        
        return render_to_response('assetmgr/asset_not_found.html', rv, context_instance=RequestContext(request))
예제 #4
0
def annotationview(request, asset_id, annot_id):
    annotation = get_object_or_404(SherdNote,
                                   pk=annot_id,
                                   asset=asset_id,
                                   asset__course=request.course)

    user = request.user
    if user.is_staff and request.GET.has_key('as'):
        user = get_object_or_404(User, username=request.GET['as'])

    if request.method in ("DELETE", "POST"):
        if request.method == "DELETE":
            redirect_to = reverse('asset-view', args=[asset_id])
        elif request.method == "POST":
            redirect_to = '.'

        form = request.GET.copy()
        form['next'] = redirect_to
        request.GET = form
        return annotation_dispatcher(request, annot_id)

    asset = annotation.asset

    global_annotation = asset.global_annotation(user, auto_create=False)

    if global_annotation == annotation:
        return HttpResponseRedirect('%s#whole-form' %
                                    reverse('asset-view', args=[asset_id]))

    rv = asset_accoutrements(
        request, annotation.asset, user,
        AnnotationForm(instance=annotation, prefix="annotation"))
    rv['annotation'] = annotation
    rv['readonly'] = (annotation.author != request.user)

    return rv