Esempio n. 1
0
def theme(request, theme, showing_menu=True):
    # Saves the theme to ensure all registered templates were created
    theme.create_templates()
    return render_to_response(request,
            'themes/theme.html',
            {'theme':theme, 'showing_menu':showing_menu},
            )
Esempio n. 2
0
def theme_up_file(request, theme):
    new_static_files = []

    if request.method == 'POST':
        db_field = ThemeStaticFile._meta.fields['file']
        for up_file in request.FILES.getlist('dragupload[]'):
            name = up_file.name
            while theme['static_files'].filter(name=name).count():
                name += '_'

            sf = ThemeStaticFile(theme=theme, name=name, mime_type=up_file.content_type)
            upload_name = db_field.generate_filename(sf, up_file.name)
            upload_name = db_field.storage.save(upload_name, up_file)
            sf['file'] = FieldFile(sf, db_field, upload_name)
            sf.save()

            new_static_files.append(sf)

        # Calls the signal after static files changed
        theme_static_files_changed.send(sender=request.site, theme=theme, request=request, items=new_static_files)

    return render_to_response(request,
            'themes/theme_up_file.html',
            {'theme': theme, 'new_static_files': new_static_files},
            )
Esempio n. 3
0
def home(request):
    themes = Theme.query().order_by('verbose_name')
    previewing = request.COOKIES.get(app_settings.CURRENT_THEME_COOKIE, None)

    if request.POST.get('name', None):
        verbose_name = request.POST['name']
        name = slugify(request.POST['name'])
        counter = 0
        while Theme.query().filter(name=name).count():
            counter += 1
            name = '%s-%s'%(slugify(request.POST['name']), counter)
        theme = Theme.query().create(name=name, verbose_name=verbose_name)

        request.warning(_('New theme "%s" created.'))
        return HttpResponseRedirect(reverse('themes_theme', kwargs={'name': theme['name']}))
    return render_to_response(request,
            'themes/home.html',
            {'themes':themes, 'previewing':previewing},
            )