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)
def feed_folder(folder): if folder.split('/')[0] != 'admin': folder = Folder.get(Folder.guid == folder) if folder: posts = Post.filter(Post.id_folder == folder.id, Post.status == 'published', Post.type == 'post').order_by(Post.created).limit(20) feed = AtomFeed( fypress.options['name'] + ' • ' + folder.name, subtitle=folder.seo_content, feed_url=request.url_root + 'feed/', url=request.url_root, generator=None ) for post in posts: feed.add( post.title, post.content, content_type='html', author=post.user.nicename, url=request.url_root + post.guid, updated=post.modified, published=post.created ) response = feed.get_response() response.headers["Content-Type"] = 'application/xml' return response else: return is_404() else: return is_admin_404()
def init_fypress(login='', email='', passwd=''): if not passwd or not email or not login: print '*** /!\ Usage: python manager.py --login=name [email protected] --passwd=yourpass' return False user = User.add(login, email, passwd) if user: user.status = 4 user.nicename = user.login user.save() print '*** Added user: '******'*** /!\ Invalid user (Duplicate entry)' exist = Folder.get(Folder.id == 1) if not exist: folder = Folder() folder.name = 'Uncategorized' folder.id = 1 folder.guid = '' folder.insert() print '*** Added Folder: ' + str(folder) options = [['name', 'FyPress Site'], ['url', Config.URL], ['slogan', 'Welcome to FyPress'], ['theme', 'Nyx']] for option in options: opt = Option.update(option[0], option[1]) print '*** Added Option: ' + str(opt)
def is_folder(slug): if slug.split('/')[0] != 'admin': folder = Folder.get(Folder.guid == slug) if folder: folder.is_folder = True folder.pages = Post.filter(Post.id_folder == folder.id, Post.status == 'published', Post.type == 'page').order_by(Post.created).all() folder.index = Post.filter(Post.id_folder == folder.id, Post.slug == 'index', Post.status == 'published', Post.type == 'page').one() folder.posts = Paginator( query=Post.filter(Post.id_folder == folder.id, Post.status == 'published', Post.type == 'post').order_by(Post.created), page=request.args.get('page'), theme='bootstrap', per_page=4 ) return render_template(Theme.get_template('folder.html'), this=folder) else: return is_404() else: return is_admin_404()
def guid_generate(self, rev=False): count = '' if rev: count = Post.filter(Post.parent == rev).all() count = '&rev=' + str(len(count)) return '?post_id={}'.format(rev) + count path = Folder.get(Folder.id == self.id_folder) path = path.guid name = self.slug + count if self.id: guid = url_unique(path + '/' + name, Post, self.id) else: guid = url_unique(path + '/' + name, Post) if guid[0] == '/': guid = guid[1:] return guid