예제 #1
0
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
예제 #2
0
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
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
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()
예제 #6
0
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()
예제 #7
0
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()
예제 #8
0
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,
    )
예제 #9
0
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!')
예제 #10
0
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
예제 #11
0
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']