Exemple #1
0
def viewed(request):
    template = 'viewed.html'
    posts = Post.objects.all()
    formclass = action_formset(request, posts, Post,
        permissions=['actions.delete_post', 'actions.change_post'])
    form = formclass(request.POST or None) 
    if request.method == 'POST':
        if form.is_valid():
            qset = form.act(form.cleaned_data['action'],
                form.cleaned_data['items'])
            if 'response' in qset: return qset['response']
            return HttpResponseRedirect(reverse('url_viewed'))
        else:
            return render_to_response(template, {'posts': posts, 'form': form},
        context_instance=RequestContext(request))
    return render_to_response(template, {'posts': posts, 'form': form},
        context_instance=RequestContext(request))
Exemple #2
0
def act(request, app_n_model):
    """ execute chosen action """
    app, model = app_n_model.split('.')
    ct = get_content_type_or_404(app_label=app, model=model)
    referer = request.META.get('HTTP_REFERER', '/')
    if request.method == 'POST':
        qset = ct.model_class().objects.filter(pk__in=(request.POST.getlist('items')))
        formclass = action_formset(request, qset, ct.model_class())
        form = formclass(request.POST)
        if form.is_valid():
            #items = ct.model_class().objects.filter(pk__in=(request.POST.get('items', None)))
            qset = form.act(form.cleaned_data['action'], form.cleaned_data['items'])
            if 'response' in qset: 
                request.session['ref'] = request.META.get('HTTP_REFERER', '/')
                request.session.save()
                return qset['response']
            else:
                ref = request.session.get('ref', '/')
                if 'ref' in request.session: del request.session['ref']
                request.session.save()
                return HttpResponseRedirect(ref)
        else:       
            return HttpResponseRedirect(referer)
    return HttpResponseRedirect(referer)