Example #1
0
def save(request):

    if "cancel" in request.REQUEST:
        return redirect_to_next_url(request)

    form = SaveSearchForm(request.REQUEST, user=request.user)
    if form.is_valid():
        form.save()
        if request.is_ajax():
            return JsonResponse(dict(message=u"The search was saved."))
        else:
            messages.success(request, u"The search was saved.")

    return redirect_to_next_url(request)
Example #2
0
def unsave(request, slug=None, model=None):

    if not slug or not model:
        raise Http404()

    item = get_object_or_404(model, slug=slug)

    content_type = ContentType.objects.get_for_model(item)
    object_id = item.id
    try:
        SavedItem.objects.get(content_type=content_type,
                              object_id=object_id,
                              user=request.user).delete()

        if isinstance(item, Indexed):
            item.reindex()

        if request.is_ajax():
            return JsonResponse(dict(status="success",
                                     message=u"Item was removed from your collection."))

        messages.success(request, u"Item was removed from your collection.")
    except SavedItem.DoesNotExist:
        pass

    return redirect_to_next_url(request, item.get_absolute_url())
Example #3
0
def add(request, slug=None, model=None):

    if not slug or not model:
        raise Http404()

    item = get_object_or_404(model, slug=slug)

    page_title = u"Add Note to \"%s\"" % item
    if hasattr(item, "breadcrumbs"):
        breadcrumbs = item.breadcrumbs()
    else:
        breadcrumbs = []

    breadcrumbs.append({"url": "", "title": page_title})

    if request.method == "POST":
        if "cancel" in request.POST:
            return redirect_to_next_url(request, item.get_absolute_url())
        form = NoteForm(request.POST, instance=item, user=request.user)
        if form.is_valid():
            form.save()
            if request.is_ajax():
                return JsonResponse(dict(status="success",
                                         message=u"Your note was saved."))
            else:
                messages.success(request, u"Your note was saved.")
                return redirect_to_next_url(request, item.get_absolute_url())
        else:
            if request.is_ajax():
                errors = {}
                for field, errors_list in form.errors.items():
                    errors[field] = errors_list[0]
                return JsonResponse(dict(status="error",
                                         errors=errors))
            else:
                messages.error(request, u"Please correct the indicated errors.")
    else:
        form = NoteForm(instance=item, user=request.user)

    form_action = reverse("materials:%s:add_note" % item.namespace,
                           kwargs=dict(slug=item.slug))

    return direct_to_template(request, "notes/add.html", locals())
Example #4
0
def unsave(request, id=None):

    if id is None:
        raise Http404()

    search = get_object_or_404(SavedSearch, id=int(id), user=request.user)

    search.delete()

    if request.is_ajax():
        return JsonResponse(dict(message=u"Saved search was removed."))
    else:
        return redirect_to_next_url(request, reverse("myitems:searches"))
Example #5
0
def save(request, slug=None, model=None):
    """ Save item if it isn't saved.
    Unsave item if it's saved. """

    if not slug or not model:
        raise Http404()

    item = get_object_or_404(model, slug=slug)

    content_type = ContentType.objects.get_for_model(item)
    object_id = item.id
    SavedItem.objects.get_or_create(content_type=content_type,
                          object_id=object_id,
                          user=request.user)

    reindex(item)

    if request.is_ajax():
        return JsonResponse(dict(status="success",
                                 message=u"Item was saved in your collection."))

    messages.success(request, u"Item was saved in your collection.")
    return redirect_to_next_url(request, item.get_absolute_url())
Example #6
0
def logout(request):
    auth_logout(request)
    return redirect_to_next_url(request)