예제 #1
0
파일: views.py 프로젝트: omab/django-tcms
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
파일: models.py 프로젝트: omab/django-tcms
 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
파일: views.py 프로젝트: omab/django-tcms
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
파일: models.py 프로젝트: omab/django-tcms
    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
파일: models.py 프로젝트: omab/django-tcms
 def unpublish(self):
     """Unpublish page, rendered content is not droped"""
     self.state = OLD
     self.save()
     update_cache()
예제 #7
0
파일: views.py 프로젝트: omab/django-tcms
    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