Esempio n. 1
0
def create_content():
    return_value = success('The content was created.')
    payload = get_payload(request)

    editing = False
    if payload.get('id'):
        content = Content.get(payload.get('id'))
        editing = True
        return_value = success('The content was updated.')
    else:
        content = Content()

    content.type = payload.get('type').lower()
    content.template = '{}.html'.format(content.type)
    content.title = payload.get('title')
    content.body = payload.get('body') or ''
    content.theme = payload.get('theme')
    content.preview = payload.get('preview') or ''
    content.user_id = payload.get('user_id')
    tags = [t.strip() for t in payload.get('tags', '').split(',') if t.strip()]
    for tag in tags:
        count = Tag.filter(Tag.name == tag).count()
        if not count:
            new_tag = Tag(name=tag)
            new_tag.insert()

    content.tags = ",".join(tags)
    content.parser = payload.get('parser', 'markdown')

    published = json.loads(payload.get('published', 'false'))
    content.published = published

    menu_item = json.loads(payload.get('menu_item', 'false'))
    content.menu_item = menu_item

    if not editing:
        content.slug = make_slug(content.title)
    else:
        published_on = payload.get('published_on')
        if published_on:
            content.published_on = parser.parse(published_on)

    valid = content.validate()
    if valid['success'] or editing:
        print(content.to_dict())
        content.insert()
        safe_commit()
        return_value['id'] = content.id
        # with app.context():
        #    cache.clear()
    else:
        return_value = valid

    return jsonify(return_value)
Esempio n. 2
0
def admin_posts_add():
    content = Content()
    content.published_on = datetime.now()
    content.body = ''
    content.title = ''
    content.tags = ''
    content.parser = 'markdown'
    content.type = 'post'
    content.user = g.user
    content.user_id = g.user.id

    return render_admin('content.html', user=g.user, content_type="Post",
                        action="Add", content=content)
Esempio n. 3
0
def admin_pages_add():
    content = Content()
    content.published_on = datetime.now()
    content.body = ''
    content.title = ''
    content.tags = ''
    content.parser = 'markdown'
    content.theme = g.theme
    content.type = 'page'
    content.user = g.user
    content.user_id = g.user.id
    themes = [t.identifier for t in get_themes_list() if t.identifier != 'admin']
    print(themes)
    return render_admin('content.html', user=g.user, content_type="Page",
                        action="Add", content=content, themes=themes)