def render_page(content_id): content = Content.get(content_id) if not content: content = Content.filter(Content.slug == content_id).first() return render(content.template, user=import_user(), content=content, menu_items=get_menu_items())
def search_page(): payload = get_payload(request) search = payload.get('search') contents = Content.filter(or_(Content.body.ilike('%{}%'.format(search)), Content.tags.ilike('%{}%'.format(search)), Content.title.ilike('%{}%'.format(search))))\ .filter(Content.published == True).all() return render('search.html', user=import_user(), contents=contents, menu_items=get_menu_items())
def main(): """@todo: Docstring for main. :returns: @todo """ # Clear the frozen directory for file in os.listdir(FROZEN_DIR): if file != '.empty': path = os.path.abspath(os.path.join(FROZEN_DIR, file)) if os.path.isdir(path): shutil.rmtree(path) else: os.remove(path) # Copy themes theme_dirs = get_theme_dirs() for theme_dir in theme_dirs: dest = os.path.join(FROZEN_DIR, theme_dir[0]) shutil.copytree(theme_dir[1], dest) # Copy Uploads shutil.copytree(os.path.abspath('uploads/'), os.path.abspath(os.path.join(FROZEN_DIR, 'uploads/'))) # Render all the templates with app.app_context(): theme = get_current_theme() app.jinja_env.globals['theme_static'] = theme_static contents = Content.filter(Content.published == True).all() for content in contents: template = content.template f_template = 'freeze-{}'.format(content.template) freeze_template = os.path.join('impression/themes/', theme.identifier, 'templates/', f_template) if (os.path.isfile(os.path.abspath(freeze_template))): template = f_template html = render(template, content=content, menu_items=get_menu_items(), freeze=True) with open('frozen/{}.html'.format(content.slug), 'w') as f: f.write(html)
def blog_index(page=1, tag=None): tag_chunks = [] tags = json.loads(get_tags_in_use()) if tags: if len(tags) > 16: tags = tags[:16] tag_chunks = chunks(tags, 4) limit = get_setting("posts-per-page", 4) posts = Content.filter(Content.published == True)\ .filter(Content.type == "post")\ .order_by(Content.published_on.desc()) if tag: posts = posts.filter(Content.tags.contains(tag)) posts, max_pages = paginate(posts, page, limit) return render('index.html', user=import_user(), posts=posts, current_page=page, max_pages=max_pages, tag_chunks=tag_chunks, tag=tag, menu_items=get_menu_items())
def render_post(content_id): tag_chunks = [] tags = json.loads(get_tags_in_use()) if tags: if len(tags) > 16: tags = tags[:16] tag_chunks = chunks(tags, 4) content = Content.get(content_id) if not content: content = Content.filter(Content.slug == content_id).first() return render(content.template, user=import_user(), content=content, tag_chunks=tag_chunks, menu_items=get_menu_items())