Пример #1
0
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))
Пример #2
0
 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()
Пример #3
0
 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)
Пример #4
0
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))
Пример #5
0
    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()
Пример #6
0
 def unpublish(self):
     """Unpublish page, rendered content is not droped"""
     self.state = OLD
     self.save()
     update_cache()
Пример #7
0
    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