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)
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())
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())
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"))
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())
def logout(request): auth_logout(request) return redirect_to_next_url(request)