def admin_remover(identifier: int): aviso = Aviso() aviso.select(identifier) auth = Auth() if aviso.identifier > 0: if auth.is_allowed('remove.aviso', aviso): if aviso.delete(): Logs( 0, auth.user.identifier, auth.user.nome + '(' + auth.user.cpf + ')' + ' removeu o aviso ' + aviso.titulo + ' [Cód. ' + aviso.identifier.__str__() + ']', 'aviso', aviso.identifier, datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S")).insert() return json_response(message='Aviso removido!', data=[], redirect=url_for('avisos.admin_lista')) else: return json_response( message='Não foi possível remover o aviso', data=[]), 400 else: return json_response( message='Você não tem permissão para realizar esta ação', data=[]), 403 else: return json_response(message='Aviso não encontrado', data=[]), 404
def admin_cadastrar(): """ Cadastro de avisos """ auth = Auth() if auth.is_allowed('cadastra.aviso'): aviso = Aviso() populate_from_request(aviso) aviso.data_cadastro = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") aviso.usuario_id = auth.user.identifier if aviso.insert(): Logs( 0, auth.user.identifier, auth.user.nome + '(' + auth.user.cpf + ')' + ' cadastrou o aviso ' + aviso.titulo + ' [Cód. ' + aviso.identifier.__str__() + ']', 'aviso', aviso.identifier, datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S")).insert() return json_response(message='Aviso cadastrado!', data=[aviso], redirect=url_for('avisos.admin_lista')) else: return json_response(message='Não foi possível cadastrar o aviso', data=[]), 400 else: return json_response( message='Você não tem permissão para realizar esta ação', data=[]), 403
def home(): aviso = Aviso() avisos = aviso.search('%%', 0, 5, True) anuncio = Anuncio() anuncios = anuncio.search('%%', 0, 10, 1, 0, True) noticia = Noticia() noticias = noticia.search('%%', 0, 5, True) banner = Banner() banners = banner.all() return render_template('home.html', avisos=avisos, anuncios=anuncios, noticias=noticias, banners=banners)
def admin_busca(): aviso = Aviso() busca = request.args.get('search[value]') busca = '%' + busca + '%' inicio = int(request.args.get('start')) fim = int(request.args.get('length')) draw = int(request.args.get('draw')) resultados = aviso.search(busca, inicio, fim) total = aviso.total() filtrado = aviso.count(busca) return data_tables_response(draw, total, filtrado, resultados)
def admin_edicao(identifier: int): """ Página para edição de avisos """ aviso = Aviso() aviso.select(identifier) if aviso.identifier > 0: if Auth().is_allowed('edita.aviso', aviso): return render_template('admin_form_aviso.html', aviso=aviso) else: return admin_403_response() else: return admin_404_response()
def pagina_aviso(identifier: int): busca = Aviso() busca.select(identifier) if busca.identifier > 0: entrada = datetime.datetime.strptime(busca.data_entrada, "%Y-%m-%dT%H:%M").timestamp() saida = datetime.datetime.strptime(busca.data_saida, "%Y-%m-%dT%H:%M").timestamp() agora = datetime.datetime.now().timestamp() if agora >= entrada and agora < saida: return render_template("aviso.html", aviso=busca) return error_404_response()
def admin_cadastro(): """ Página para cadastro de avisos """ aviso = Aviso() if Auth().is_allowed('cadastra.aviso', aviso): return render_template('admin_form_aviso.html', aviso=aviso) else: return admin_403_response()
def avisos(): busca = Aviso() page, per_page, offset = get_page_args(page_parameter='page', per_page_parameter='per_page') total = busca.count('%%', True) pagination_avisos = busca.search('%%', offset, per_page, True) pagination = Pagination(page=page, per_page=per_page, total=total, css_framework='bootstrap4') return render_template( "lista_avisos.html", avisos=pagination_avisos, page=page, per_page=per_page, pagination=pagination, )
def migrate_database(): print('Aguarde...') # Cria tabelas Usuario.create_table() Aviso.create_table() Noticia.create_table() ImagemNoticia.create_table() Anuncio.create_table() ImagemAnuncio.create_table() Universidade.create_table() Banner.create_table() Logs.create_table() # Adiciona usuários e dados da universidade Usuario.insert_dummy() Universidade.insert_dummy() Banner.insert_dummy() Aviso.insert_dummy() Noticia.insert_dummy() Anuncio.insert_dummy() print('Dados inseridos!')
def admin_editar(identifier: int): """ Edição de avisos """ aviso = Aviso() aviso.select(identifier) auth = Auth() if aviso.identifier > 0: if auth.is_allowed('edita.aviso', aviso): populate_from_request(aviso) aviso.data_atualizacao = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") if aviso.update(): Logs( 0, auth.user.identifier, auth.user.nome + '(' + auth.user.cpf + ')' + ' editou o aviso ' + aviso.titulo + ' [Cód. ' + aviso.identifier.__str__() + ']', 'aviso', aviso.identifier, datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S")).insert() return json_response(message='Aviso atualizado!', data=[aviso]) else: return json_response(message='Não foi possível editar o aviso', data=[]), 400 else: return json_response( message='Você não tem permissão para realizar esta ação', data=[]), 403 else: return json_response(message='Aviso não encontrado', data=[]), 404
def populate_from_request(aviso: Aviso): # Atribui valores do post ao model aviso.titulo = request.form['titulo'] aviso.data_entrada = request.form['data_entrada'] aviso.data_saida = request.form['data_saida'] aviso.conteudo = request.form['conteudo']