Beispiel #1
0
def handle_file(request, setting_value, file):
    if setting_value.value:
        file_to_delete = models.File.objects.get(pk=setting_value.value)
        files.unlink_journal_file(request, file_to_delete)

    file = files.save_file_to_journal(request, file, setting_value.setting.name, 'A setting file.')
    return file.pk
Beispiel #2
0
def index(request):
    """
    Displays a list of pages and the sites navigation structure.
    :param request: HttpRequest object
    :return: HttpResponse object
    """
    pages = models.Page.objects.filter(content_type=request.model_content_type,
                                       object_id=request.site_type.pk)
    top_nav_items = models.NavigationItem.objects.filter(
        content_type=request.model_content_type,
        object_id=request.site_type.pk,
        top_level_nav__isnull=True)
    collection_nav_items = models.NavigationItem.get_content_nav_for_journal(
        request.journal)

    if request.POST and 'delete' in request.POST:
        page_id = request.POST.get('delete')
        page = get_object_or_404(models.Page,
                                 pk=page_id,
                                 content_type=request.model_content_type,
                                 object_id=request.site_type.pk)
        page.delete()
        return redirect(reverse('cms_index'))

    if request.POST:
        if request.FILES:
            file = request.FILES.get('xsltfile')
            files.save_file_to_journal(request,
                                       file,
                                       'XSLT File',
                                       'Journal XSLT File',
                                       xslt=True)
            messages.add_message(request, messages.INFO,
                                 "XSLT file has been uploaded.")
            request.journal.has_xslt = True
            request.journal.save()

        if 'clear' in request.POST:
            files.unlink_journal_file(request, file=None, xslt=True)
            request.journal.has_xslt = False
            request.journal.save()

        return redirect(reverse('cms_index'))

    template = 'cms/index.html'
    context = {
        'journal': request.journal,
        'pages': pages,
        'top_nav_items': top_nav_items,
        'collection_nav_items': collection_nav_items,
    }

    return render(request, template, context)
Beispiel #3
0
def index(request):
    """
    Displays a list of pages and the sites navigation structure.
    :param request: HttpRequest object
    :return: HttpResponse object
    """
    pages = models.Page.objects.filter(content_type=request.model_content_type,
                                       object_id=request.site_type.pk)
    top_nav_items = models.NavigationItem.objects.filter(
        content_type=request.model_content_type,
        object_id=request.site_type.pk,
        top_level_nav__isnull=True)
    collection_nav_items = models.NavigationItem.get_content_nav_for_journal(
        request.journal)
    xsl_form = XSLFileForm()
    xsl_files = core_models.XSLFile.objects.filter(
        Q(journal=request.journal) | Q(journal__isnull=True))

    if request.POST and 'delete' in request.POST:
        page_id = request.POST.get('delete')
        page = get_object_or_404(models.Page,
                                 pk=page_id,
                                 content_type=request.model_content_type,
                                 object_id=request.site_type.pk)
        page.delete()
        return redirect(reverse('cms_index'))

    if request.POST and 'new_xsl' in request.POST:
        xsl_form = XSLFileForm(request.POST, request.FILES)
        if xsl_form.is_valid():
            xsl_form.save()
            messages.add_message(request, messages.INFO,
                                 "XSLT file has been uploaded.")
        else:
            messages.add_message(
                request, messages.ERROR,
                "Please correct the errors on the form and try again")

        if 'clear' in request.POST:
            files.unlink_journal_file(request, file=None, xslt=True)
            request.journal.has_xslt = False
            request.journal.save()

    elif request.POST and 'change_xsl' in request.POST:
        xsl_file = get_object_or_404(core_models.XSLFile,
                                     pk=request.POST["change_xsl"])
        request.journal.xsl = xsl_file
        request.journal.save()

        return redirect(reverse('cms_index'))

    template = 'cms/index.html'
    context = {
        'journal': request.journal,
        'pages': pages,
        'top_nav_items': top_nav_items,
        'collection_nav_items': collection_nav_items,
        'xsl_form': xsl_form,
        'xsl_files': xsl_files,
    }

    return render(request, template, context)