Example #1
0
 def listar(self, deletado=False):
     search = False
     q = request.args.get('q')
     page, per_page, offset = get_page_args(
         page_parameter="page", per_page_parameter="per_page"
     )
     params = None
     sql = "select * from artigo "
     sql_count = "select count(*) as total from artigo "
     where = ""
     if deletado:
         where += "where deletado = 1 "
     else:
         where += "where deletado = 0 "
     if q:
         search = True
         where += "and (titulo like %s or corpo like %s) "
         params = ("%" + q + "%", "%" + q + "%")
     sql += where
     sql_count += where
     sql += " limit {}, {};".format(offset, per_page)
     conexao = factory_conexao()
     artigos = []
     try:
         for registro in query(conexao, sql, params=params):
             artigo = ArtigoData()
             artigo.id_artigo = registro["id_artigo"]
             artigo.titulo = markdown(registro["titulo"])
             artigo.corpo = markdown(registro["corpo"])
             artigo.data_publicacao = registro["data_publicacao"]
             artigo.data_edicao = registro["data_edicao"]
             artigo.tags = registro["tags"]
             artigos.append(artigo)
         total = 0
         for registro in query(conexao, sql_count, params=params):
             total = registro['total']
     finally:
         conexao.close()
     pagination = Pagination(
         page=page,
         total=total,
         search=search,
         per_page=per_page,
         record_name="artigos",
         show_single_page=True,
         css_framework="bootstrap4",
     )
     return {
         "template": "index.html",
         "artigos": artigos,
         "page": page,
         "per_page": per_page,
         "pagination": pagination,
     }
Example #2
0
 def _artigo_existe(self, id_artigo):
     conexao = factory_conexao()
     try:
         for registro in query(
                 conexao, "select count(*) as count from artigo where id_artigo = %s", (id_artigo,)
         ):
             return registro["count"] > 0
     finally:
         conexao.close()
Example #3
0
 def _artigo_deletado(self, id_artigo):
     conexao = factory_conexao()
     try:
         for registro in query(
                 conexao, "select deletado from artigo where id_artigo = %s", (id_artigo,)
         ):
             return registro["deletado"] == 1
     finally:
         conexao.close()
Example #4
0
 def obter_usuario(self, id_usuario):
     conexao = factory_conexao()
     usuario = UsuarioData()
     try:
         for registro in query(conexao, "select nome from usuario where id = %s", (id_usuario,)):
             usuario.nome = registro["nome"]
     finally:
         conexao.close()
     return usuario
Example #5
0
 def visualizar_artigo(self, id_artigo):
     conexao = factory_conexao()
     if not self._artigo_existe(id_artigo) or self._artigo_deletado(id_artigo):
         return {"template": 'indisponivel.html'}
     try:
         artigo = ArtigoData()
         for registro in query(
                 conexao, "select * from artigo where id_artigo = %s", (id_artigo,)
         ):
             artigo.titulo = markdown(registro["titulo"])
             artigo.corpo = markdown(registro["corpo"])
             artigo.id_artigo = registro["id_artigo"]
             artigo.data_publicacao = registro["data_publicacao"]
             artigo.data_edicao = registro["data_edicao"]
     finally:
         conexao.close()
     return {"template": "artigo_visualizar.html", "artigo": artigo}
Example #6
0
 def autenticar(self):
     email = request.form["email"]
     senha = request.form["senha"]
     conexao = factory_conexao()
     usuario = UsuarioData()
     try:
         for registro in query(
                 conexao, "select id, email, senha from usuario where email = %s", params=(email,)
         ):
             usuario.id = registro["id"]
             usuario.email = registro["email"]
             usuario.senha = registro["senha"]
     finally:
         conexao.close()
     if not usuario.email or not check_password_hash(usuario.senha, senha):
         return redirect(url_for("autenticacao.view_login"))
     session.clear()
     session["id_usuario"] = usuario.id
     return redirect(url_for('artigo.view_listar'))
Example #7
0
 def query(self, sql_query):
     connection = database_helper.connect()
     cursor = database_helper.get_cursor(connection)
     result = database_helper.query(connection, cursor, sql_query)
     database_helper.close_database_connection(connection, cursor)
     return result