def sitemaps(self): header = u'''<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.sitemaps.org/schemas/sitemap-image/1.1" xmlns:video="http://www.sitemaps.org/schemas/sitemap-video/1.1">\n''' footer = u'''</urlset>''' model = u'''<url><loc>%s</loc><changefreq>daily</changefreq></url>\n''' xmls = u'' xmls += u"\n<!-- HOME -->\n" xmls += model%(u'http://renatopp.com') xmls += u"\n<!-- POSTS AND PAGES -->\n" posts = Session.query(Post).filter(Post.status=='Published').order_by(desc(Post.id)).all() for post in posts: if post.type == 'page': xmls += model%url('page', self.request, alias=post.alias) else: xmls += model%url('blog_entry', self.request, id=post.id, alias=post.alias) xmls += u"\n<!-- SNIPPETS -->\n" snippets = Session.query(Snippet).order_by(desc(Snippet.id)).all() for snippet in snippets: xmls += model%url('snippet_entry', self.request, id=snippet.id, alias=snippet.alias) return Response(header + xmls + footer)
def sitemaps(self): header = u'''<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.sitemaps.org/schemas/sitemap-image/1.1" xmlns:video="http://www.sitemaps.org/schemas/sitemap-video/1.1">\n''' footer = u'''</urlset>''' model = u'''<url><loc>%s</loc><changefreq>daily</changefreq></url>\n''' xmls = u'' xmls += u"\n<!-- HOME -->\n" xmls += model % (u'http://renatopp.com') xmls += u"\n<!-- POSTS AND PAGES -->\n" posts = Session.query(Post).filter( Post.status == 'Published').order_by(desc(Post.id)).all() for post in posts: if post.type == 'page': xmls += model % url('page', self.request, alias=post.alias) else: xmls += model % url( 'blog_entry', self.request, id=post.id, alias=post.alias) xmls += u"\n<!-- SNIPPETS -->\n" snippets = Session.query(Snippet).order_by(desc(Snippet.id)).all() for snippet in snippets: xmls += model % url('snippet_entry', self.request, id=snippet.id, alias=snippet.alias) return Response(header + xmls + footer)
def update(self): item = Session.query(self.model).get(self.get_id()) params = self.request.params.copy() k = 'User-%d-password'%item.id if params and params[k] != item.password: if not params[k]: params[k] = item.password else: params[k] = self.model.get_pass_hash(params[k]) form = FieldSet(item, data=params or None) self.model._configure_form(form) if self.request.params: if form.validate(): form.sync() self.model._before_update(item, form, params) Session.add(form.model) self.request.session.flash(u'Item atualizado com sucesso.', 'success') return HTTPFound(location=g.url(self.url_base)) else: self.request.session.flash(u'Dados inválidos', 'error') params = dict(form=form, url_base=self.url_base) if self.renderer_base: renderer = self.renderer_base+'/edit.jinja2' else: renderer = '/bases/crud_edit.jinja2' return self.render(renderer, params)
def create(self): form = FieldSet(self.model, data=self.request.POST or None) self.model._configure_form(form) if self.request.POST: if form.validate(): form.sync() self.model._before_create(form, self.request.POST) Session.add(form.model) self.request.session.flash(u'Item incluído com sucesso.', 'success') return HTTPFound(location=g.url(self.url_base)) else: self.request.session.flash(u'Dados inválidos.', 'error') return dict(form=form, url_base=self.url_base)
def _do_create(self): form = FieldSet(self.model, data=self.request.params or None) self.model._configure_form(form) if self.request.params: if form.validate(): form.sync() self.model._before_create(form, self.request.params) Session.add(form.model) self.request.session.flash(u'Item successfully added.', 'success') return HTTPFound(location=g.url(self.url_base)) else: self.request.session.flash(u'Invalid data.', 'error') return dict(form=form, url_base=self.url_base)
def articles(self): feed = feedgenerator.Rss201rev2Feed( title="Renatopp's - Feed dos Artigos", link=self.request.host_url, description= "Artigos do super ultra hyper mega site http://renatopp.com", author_name=self.author) posts = Session.query(Post).order_by(desc( Post.id)).filter(Post.type == 'article').filter( Post.status == 'Published').limit(10).all() for post in posts: summary = post.content[:200].replace('\n', '<br>') categorys = ', '.join([c.name for c in post.categorys]) or 'Sem Categoria' description = u""" %s (...)<br><br> Categorias: %s<br> Visite <a href="http://renatopp.com">renatopp.com</a> """ % (summary, categorys) feed.add_item(title=post.title, link=url('blog_entry', self.request, id=post.id, alias=post.alias), description=description, author_name=self.author) return Response(feed.writeString('utf-8'))
def snippets(self): feed = feedgenerator.Rss201rev2Feed( title="Renatopp's - Feed dos Snippets", link=self.request.host_url, description= "Snippets do super ultra hyper mega site http://renatopp.com", author_name=self.author) snippets = Session.query(Snippet).order_by(desc( Snippet.id)).limit(10).all() for snippet in snippets: summary = snippet.summary or u'Sem descrição' language = snippet.language category = ', '.join([c.name for c in snippet.categorys ]) or 'Sem Categoria' description = u""" %s<br> <br> Linguagem: %s <br> Categorias: %s <br> Visite o site para mais informações - <a href="http://renatopp.com">renatopp.com</a>. """ % (summary, language, category) feed.add_item(title=snippet.title, link=url('snippet_entry', self.request, id=snippet.id, alias=snippet.alias), description=description, author_name="Renato Pereira") return Response(feed.writeString('utf-8'))
def _do_update(self): item = Session.query(self.model).get(self.get_id()) form = FieldSet(item, data=self.request.params or None) self.model._configure_form(form) if self.request.params: if form.validate(): form.sync() self.model._before_update(item, form, self.request.params) Session.add(form.model) self.request.session.flash(u'Item atualizado com sucesso.', 'success') return HTTPFound(location=g.url(self.url_base)) else: self.request.session.flash(u'Dados inválidos', 'error') return dict(form=form, url_base=self.url_base)
def articles(self): feed = feedgenerator.Rss201rev2Feed( title="Renatopp's - Feed dos Artigos", link=self.request.host_url, description="Artigos do super ultra hyper mega site http://renatopp.com", author_name=self.author ) posts = Session.query(Post).order_by(desc(Post.id)).filter(Post.type=='article').filter(Post.status=='Published').limit(10).all() for post in posts: summary = post.content[:200].replace('\n', '<br>') categorys = ', '.join([c.name for c in post.categorys]) or 'Sem Categoria' description = u""" %s (...)<br><br> Categorias: %s<br> Visite <a href="http://renatopp.com">renatopp.com</a> """ % (summary, categorys) feed.add_item( title=post.title, link=url('blog_entry', self.request, id=post.id, alias=post.alias), description=description, author_name=self.author ) return Response(feed.writeString('utf-8'))
def login(self): form = FieldSet(User, data=self.request.POST if self.request.POST else None) form.configure( include=[form.email, form.password], options=[ form.password.password() ] ) if self.request.POST: user = Session.query(User).filter( (User.email==self.request.POST['User--email']) & (User.password==User.get_pass_hash(self.request.POST['User--password'])) ).first() if user is not None: session = self.request.session session['user_id'] = user.id session['user_name'] = user.nickname session['user_email'] = user.email return HTTPFound(location=self.request.GET.get('back_to', url('post', self.request))) print '\n\n\n\n\n' return dict(form=form)
def snippets(self): feed = feedgenerator.Rss201rev2Feed( title="Renatopp's - Feed dos Snippets", link=self.request.host_url, description="Snippets do super ultra hyper mega site http://renatopp.com", author_name=self.author ) snippets = Session.query(Snippet).order_by(desc(Snippet.id)).limit(10).all() for snippet in snippets: summary = snippet.summary or u'Sem descrição' language = snippet.language category = ', '.join([c.name for c in snippet.categorys]) or 'Sem Categoria' description = u""" %s<br> <br> Linguagem: %s <br> Categorias: %s <br> Visite o site para mais informações - <a href="http://renatopp.com">renatopp.com</a>. """ % (summary, language, category) feed.add_item( title=snippet.title, link=url('snippet_entry', self.request, id=snippet.id, alias=snippet.alias), description=description, author_name="Renato Pereira" ) return Response(feed.writeString('utf-8'))
def page(self): query = Session.query(Post) query = query.filter(Post.alias == self.request.matchdict.get('alias')) query = query.filter(Post.type == 'page') query = query.filter(Post.status == 'Published') post = query.first() return dict(post=post)
def page(self): query = Session.query(Post) query = query.filter(Post.alias==self.request.matchdict.get('alias')) query = query.filter(Post.type=='page') query = query.filter(Post.status=='Published') post = query.first() return dict(post=post)
def create(self): if self.auth(): return HTTPFound(location=self.urlLogin) form = FieldSet(self.model, data=self.request.POST or None) self.model._configure_form(form) if self.request.POST: if form.validate(): form.sync() self.model._before_create(form, self.request.POST) Session.add(form.model) self.request.session.flash(u'Item incluído com sucesso.', 'success') return HTTPFound(location=g.url(self.url_base)) else: self.request.session.flash(u'Dados inválidos.', 'error') return dict(form=form, url_base=self.url_base)
def _do_index(self): page = self.request.GET.get('page', 1) query = Session.query(self.model).order_by(self.order_by).all() items = Page(query, page=page, items_per_page=10) grid = Grid(self.model, items) self.model._configure_grid(grid) return dict(grid=grid, items=items, url_base=self.url_base)
def snippet_view(self): snippet = Session.query(Snippet).get(self.get_id()) try: lexer = pygments.lexers.get_lexer_by_name(snippet.language) except ValueError: lexer = pygments.lexers.TextLexer() DEFAULT = pygments.formatters.HtmlFormatter(noclasses=False) return dict(snippet=snippet, code=pygments.highlight(snippet.content, lexer, DEFAULT))
def __get_posts_query(self, filter_type=None): query = Session.query(Post) query = query.filter(Post.status=='Published') if filter_type: query = query.filter(Post.type==filter_type) else: query = query.filter(Post.type!='page') query = query.order_by(desc(Post.id)) return query
def __get_posts_query(self, filter_type=None): query = Session.query(Post) query = query.filter(Post.status == 'Published') if filter_type: query = query.filter(Post.type == filter_type) else: query = query.filter(Post.type != 'page') query = query.order_by(desc(Post.id)) return query
def index(self): ''' display: front: shows the first post in a large box list: shows all posts in a small box ''' page = self.request.params.get('page', '1') query = Session.query(Post).filter(Post.status=='Published').order_by(desc(Post.id)).all() posts = Page(query, page=page, items_per_page=10) display = 'front' if page=='1' else 'list' return self.render('/controllers/blogs/index.jinja2', dict(display=display, posts=posts))
def snippet_index(self): ''' display: front: shows the first post in a large box list: shows all posts in a small box ''' query = Session.query(Snippet).order_by(desc(Snippet.id)) page = self.request.params.get('page', '1') snippets = Page(query, page=page, items_per_page=6) display = 'front' if page=='1' else 'list' return self.render('/controllers/blogs/snippet_index.jinja2', dict(display=display, snippets=snippets))
def snippet_index(self): ''' display: front: shows the first post in a large box list: shows all posts in a small box ''' query = Session.query(Snippet).order_by(desc(Snippet.id)) page = self.request.params.get('page', '1') snippets = Page(query, page=page, items_per_page=6) display = 'front' if page == '1' else 'list' return self.render('/controllers/blogs/snippet_index.jinja2', dict(display=display, snippets=snippets))
def update(self): if self.auth(): return HTTPFound(location=self.urlLogin) item = Session.query(self.model).get(self.get_id()) params = self.request.params.copy() k = 'User-%d-password' % item.id if params and params[k] != item.password: if not params[k]: params[k] = item.password else: params[k] = self.model.get_pass_hash(params[k]) form = FieldSet(item, data=params or None) self.model._configure_form(form) if self.request.params: if form.validate(): form.sync() self.model._before_update(item, form, params) Session.add(form.model) self.request.session.flash(u'Item atualizado com sucesso.', 'success') return HTTPFound(location=g.url(self.url_base)) else: self.request.session.flash(u'Dados inválidos', 'error') params = dict(form=form, url_base=self.url_base) if self.renderer_base: renderer = self.renderer_base + '/edit.jinja2' else: renderer = '/bases/crud_edit.jinja2' return self.render(renderer, params)
def index(self): if self.auth(): return HTTPFound(location=self.urlLogin) page = self.request.params.get('page', '1') query = Session.query(Post).order_by(desc(Post.id)) if self.request.params.get('type'): query = query.filter(Post.type=='page') else: query = query.filter(Post.type!='page') items = Page(query, page=page, items_per_page=10) grid = Grid(self.model, items) Post._configure_grid(grid) return self.render('/bases/crud_index.jinja2', dict(grid=grid, items=items, url_base=self.url_base))
def login(self): form = FieldSet(User, data=self.request.POST if self.request.POST else None) form.configure(include=[form.email, form.password], options=[form.password.password()]) if self.request.POST: user = Session.query(User).filter( (User.email == self.request.POST['User--email']) & (User.password == User.get_pass_hash( self.request.POST['User--password']))).first() if user is not None: session = self.request.session session['user_id'] = user.id session['user_name'] = user.nickname session['user_email'] = user.email return HTTPFound(location=self.request.GET.get( 'back_to', url('post', self.request))) print '\n\n\n\n\n' return dict(form=form)
def view(self): post = Session.query(Post).get(self.get_id()) return dict(post=post)
def view(self): if self.auth(): return HTTPFound(location=self.urlLogin) post = Session.query(Post).get(self.get_id()) return dict(post=post)
def _do_delete(self): item = Session.query(self.model).get(self.get_id()) Session.delete(item) self.request.session.flash(u'Item deleted successfully.', 'success') return HTTPFound(location=g.url(self.url_base))