Esempio n. 1
0
def posts_add(page=False):
    post = Post()

    if page: urls = 'admin.pages'
    else: urls = 'admin.posts'

    if request.args.get('edit'):
        post = Post.query.get(request.args.get('edit'))
        if post:
            if post.parent:
                return redirect(url_for(urls+'_add', edit=post.parent))
            if request.form:
                post_id = Post.update(request.form, post)
                flash(messages['updated']+' ('+str(post)+')')
                return redirect(url_for(urls+'_add', edit=post_id))
        else:
            return handle_404()
    else:
        if request.form:
            post_id = Post.create(request.form)
            flash(messages['added']+' ('+str(post)+')')
            return redirect(url_for(urls+'_add', edit=post_id))

    folders = Folder.get_all()

    if page:
        title = gettext('New - Page')
    else:
        title = gettext('New - Post')


    return render_template('admin/posts_new.html', folders=folders, post=post, title=title, page=page, urls=urls)
Esempio n. 2
0
def sitemap():
    posts   = Post.query.filter(status='published', type='post').order_by('created').all()
    folders = Folder.get_all()

    pages = []

    # home
    pages.append({'url': request.url_root, 'freq': 'daily', 'prio': '1'})

    # folders
    for folder in folders:
        if folder.guid != '':
            url      = request.url_root+folder.guid+'/'
            modified = folder.modified.strftime('%Y-%m-%d')
            pages.append({'url': url, 'mod': modified, 'freq': 'weekly', 'prio': '0.6'})

    # pages
    posts = Post.query.filter(status='published', type='page').order_by('created').limit(20, 0, array=True)
    for post in posts:
            if post.slug != 'index':
                url      = request.url_root+post.guid+'.html'
                modified = post.modified.strftime('%Y-%m-%d')
                pages.append({'url': url, 'mod': modified, 'freq': 'monthly', 'prio': '0.9'})

    # posts
    posts = Post.query.filter(status='published', type='post').order_by('created').limit(20, 0, array=True)
    for post in posts:
            url      = request.url_root+post.guid+'.html'
            modified = post.modified.strftime('%Y-%m-%d')
            pages.append({'url': url, 'mod': modified, 'freq': 'monthly', 'prio': '0.8'})

    response = make_response(render_template('front/_sitemap.xml', pages=pages))
    response.headers["Content-Type"] = 'application/xml'
    return response 
Esempio n. 3
0
def folders():
    folders = Folder.get_all(True)
    folder = None

    if request.args.get('edit') and request.args.get('edit') != 1:
        folder = Folder.get(Folder.id == request.args.get('edit'))
        form = FolderForm(obj=folder)
        if form.validate_on_submit():
            form.populate_obj(folder)
            folder.modified = datetime.datetime.now()
            folder.save()
            flash(messages['updated'] + ' (' + str(folder) + ')')
            return redirect(url_for('admin.folders'))
    else:
        form = FolderForm()
        if form.validate_on_submit():
            Folder.add(form)
            flash(messages['added'] + ' (' + str(folder) + ')')
            return redirect(url_for('admin.folders'))

    return render_template('admin/folders.html',
                           folders=folders,
                           folder=folder,
                           title=gettext('Categories'),
                           form=form)
Esempio n. 4
0
def sitemap():
    posts = Post.filter(Post.status == 'published', Post.type == 'post').order_by(Post.created).all()
    folders = Folder.get_all()

    pages = []

    # home
    pages.append({'url': request.url_root, 'freq': 'daily', 'prio': '1'})

    # folders
    for folder in folders:
        if folder.guid != '':
            url = request.url_root + folder.guid + '/'
            modified = folder.modified.strftime('%Y-%m-%d')
            pages.append({'url': url, 'mod': modified, 'freq': 'weekly', 'prio': '0.6'})

    # pages
    posts = Post.filter(Post.status == 'published', Post.type == 'page').order_by(Post.created).limit(20)
    for post in posts:
        if post.slug != 'index':
            url = request.url_root + post.guid + '.html'
            modified = post.modified.strftime('%Y-%m-%d')
            pages.append({'url': url, 'mod': modified, 'freq': 'monthly', 'prio': '0.9'})

    # posts
    posts = Post.filter(Post.status == 'published', Post.type == 'post').order_by(Post.created).limit(20,)
    for post in posts:
        url = request.url_root + post.guid + '.html'
        modified = post.modified.strftime('%Y-%m-%d')
        pages.append({'url': url, 'mod': modified, 'freq': 'monthly', 'prio': '0.8'})

    response = make_response(render_template(Theme.get_template('_sitemap.xml'), pages=pages))
    response.headers["Content-Type"] = 'application/xml'
    return response
Esempio n. 5
0
def folders():
    folders = Folder.get_all(True)
    folder  = None

    if request.args.get('edit') and request.args.get('edit') != 1:
        folder = Folder.query.get(request.args.get('edit'))
        form = FolderForm(obj=folder)
        if form.validate_on_submit():
            form.populate_obj(folder)
            folder.modified = 'NOW()'
            Folder.query.update(folder)
            flash(messages['updated']+' ('+str(folder)+')')
            return redirect(url_for('admin.folders'))
    else:
        form = FolderForm()
        if form.validate_on_submit():
            Folder.add(form)
            flash(messages['added']+' ('+str(folder)+')')
            return redirect(url_for('admin.folders'))

    return render_template('admin/folders.html', folders=folders, folder=folder, title=gettext('Categories'), form=form)