def unpublish(request, page_id): """Page unpublishing view""" page = get_object_or_404(Page, pk=page_id) page.unpublish() update_cache() log(request, page, CHANGE, "Page unpublished") messages.info(request, "Page %s unpublished" % page) return HttpResponseRedirect(request.GET.get("next") or _edit_url(page_id))
def delete(self): """Delete a Page, only no Live pages can be deleted. Rendered content and values are deleted too""" if self.state == LIVE: raise TypeError("live pages cannot be deleted") self.rendered_data.all().delete() self.values.all().delete() super(Page, self).delete() update_cache()
def response_add(self, request, obj, post_url_continue='../%s/'): response = super(PageOptions, self).\ response_add(request, obj, post_url_continue) keys = ('_continue', '_popup', '_addanother') update_cache() if any(k in request.POST for k in keys): return response else: return HttpResponseRedirect('../p/%s/' % obj.id)
def import_page(request): """Page importing view""" if request.method == "POST": form = ImportForm(data=request.POST, files=request.FILES) if form.is_valid(): try: page = form.save() except Exception, e: messages.info(request, "Impossible to import: %s" % e) else: update_cache() log(request, page, ADDITION, "Page imported") messages.info(request, "Page %s imported" % page) return HttpResponseRedirect(_edit_url(page.id))
def publish(self, *args, **kwargs): """Publish page, will generate rendered content and unpublish current live page with same path and state. Arguments will be passed to refresh method which will be passed to rendering method. """ similar = {"path": self.path, "state": LIVE} for page in Page.objects.filter(**similar): page.unpublish() self.refresh(*args, **kwargs) self.state = LIVE self.save() update_cache()
def unpublish(self): """Unpublish page, rendered content is not droped""" self.state = OLD self.save() update_cache()
log(request, page, CHANGE, "Content refreshed") messages.info(request, "Content for page %s refreshed" % page) return HttpResponseRedirect(request.GET.get("next") or _edit_url(page_id)) @permission_required("delete_page", "delete_value", "delete_rendered") def delete(request, page_id): """Page deletion view""" page = get_object_or_404(Page, pk=page_id) try: page.delete() except TypeError, e: messages.info(request, e.message) return HttpResponseRedirect(_edit_url(page_id)) else: update_cache() log(request, page, DELETION, "Page deleted") messages.info(request, "Page %s deleted" % page) return HttpResponseRedirect(reverse("admin:tcms_page_changelist")) def export(request, page_id): """Page exporting view""" page = get_object_or_404(Page.objects.select_related("path"), pk=page_id) response = HttpResponse(mimetype="application/x-download") page.to_xml(response) # homepage path is sluged as '', then we renamed it as 'homepage' name = slugify(page.path.path).replace("-", "_") or "homepage" response["Content-Disposition"] = "attachment; filename=%s.xml" % name log(request, page, CHANGE, "Page exported") return response