Example #1
0
def vistaevento(id):
    evento = get_evento(id)

    if evento.aprobado == 1 or has_permission(current_user, evento):
        formulario = AgregarComentario()
        titulo = "Evento - " + evento.nombre
        lista_comentarios = listar_comentarios(id)

        if formulario.is_submitted():
            if formulario.validate_on_submit():
                flash('Comentario añadido!', 'success')
                formulario.mostrar_datos()

                comentario = Comentario(contenido=formulario.contenido.data, usuarioId=current_user.usuarioId,
                                        eventoId=id)
                try:
                    db.session.add(comentario)
                    db.session.commit()
                except SQLAlchemyError as e:
                    db.rollback()
                    enviarMail(os.getenv('ADMIN_MAIL'), 'SQLAlchemy error', 'error', e=e)

                return redirect(url_for('vistaevento', id=id))
            else:
                flash('Comentario no añadido. Reintente', 'danger')

        return render_template('ver_evento.html', id=id, evento=evento, titulo=titulo,
                               formulario=formulario, lista_comentarios=lista_comentarios)
    else:
        return redirect(url_for('index'))
Example #2
0
def crearevento():
    formulario = CrearEvento()
    titulo = "Nuevo Evento"
    if formulario.validate_on_submit():
        f = formulario.imagen.data
        filename = secure_filename(formulario.nombreevento.data + str(randint(1, 100)))
        f.save(os.path.join('static/images/', filename))
        flash('Evento creado con exito! (Debera ser aprobado por un administrador antes de '
              'ser mostrado en la pagina)', 'success')
        formulario.mostrar_datos()
        print("Imagen: " + str(filename))

        evento = Evento(nombre=formulario.nombreevento.data, fecha=formulario.fechaevento.data,
                        hora=formulario.hora.data,
                        lugar=formulario.lugarevento.data, tipo=formulario.opciones.data, imagen=filename,
                        descripcion=formulario.descripcion.data, usuarioId=current_user.usuarioId)
        try:
            db.session.add(evento)
            db.session.commit()
        except SQLAlchemyError as e:
            db.rollback()
            enviarMail(os.getenv('ADMIN_MAIL'), 'SQLAlchemy error', 'error', e=e)

        return redirect(url_for('miseventos'))

    return render_template('crear_evento.html', titulo=titulo, formulario=formulario, destino="crearevento")
Example #3
0
def generalException(e):
    print(e)
    write_log(e)
    mail.enviarMail(os.getenv('ADMIN_MAIL'), 'Unexpected error', 'error', e=e)
    if request.accept_mimetypes.accept_json and not request.accept_mimetypes.accept_html:
        response = jsonify({'error': 'Unexpected error ' + str(e)})
        return response
    return render_template('errores/500.html'), 500
Example #4
0
def badgateway(e):
    print(e)
    write_log(e)
    mail.enviarMail(os.getenv('ADMIN_MAIL'), 'Bad Gateway 502 error', 'error', e=e)
    if request.accept_mimetypes.accept_json and not request.accept_mimetypes.accept_html:
        response = jsonify({'error': 'Bad Gateway'})
        response.status_code = 400
        return response
    return render_template('errores/500.html'), 502
Example #5
0
def internal_server_error(e):
    print(e)
    write_log(e)
    mail.enviarMail(os.getenv('ADMIN_MAIL'), '500. Internal server error', 'error', e=e)
    if request.accept_mimetypes.accept_json and not request.accept_mimetypes.accept_html:
        # Responder con JSON
        response = jsonify({'error': 'internal server error'})
        response.status_code = 500
        return response
    return render_template('errores/500.html'), 500
Example #6
0
def eliminarEventoById(id):
    evento = get_evento(id)
    if current_user.is_admin() or current_user.is_owner(evento):
        try:
            db.session.delete(evento)
            db.session.commit()
        except SQLAlchemyError as e:
            db.rollback()
            enviarMail(os.getenv('ADMIN_MAIL'), 'SQLAlchemy error', 'error', e=e)
        return redirect(url_for('aprobareventos'))
    else:
        return redirect(url_for('index'))
Example #7
0
def aprobarEventoById(id):

    if current_user.is_admin():

        evento = get_evento(id)
        evento.aprobado = 1
        db.session.commit()

        enviarMail(evento.usuario.email, 'Evento aprobado!', 'evento_aprobado', evento=evento)

        return redirect(url_for('aprobareventos'))
    else:
        return redirect(url_for('index'))
Example #8
0
def apiAprobarEvento(id):

    evento = get_evento(id)
    evento.aprobado = 1
    db.session.add(evento)
    db.session.commit()

    enviarMail(evento.usuario.email,
               'Evento aprobado!',
               'evento_aprobado',
               evento=evento)

    return jsonify(evento.to_json()), 201
Example #9
0
def eliminarComentarioById(id):

    comentario = get_comentario(id)
    if current_user.is_admin() or current_user.is_owner(comentario) or current_user.is_owner(comentario.evento):
        try:
            db.session.delete(comentario)
            db.session.commit()
        except SQLAlchemyError as e:
            db.rollback()
            enviarMail(os.getenv('ADMIN_MAIL'), 'SQLAlchemy error', 'error', e=e)

        flash('Comentario eliminado!', 'success')
        return redirect(url_for('vistaevento', id=comentario.eventoId))
    else:
        return redirect(url_for('index'))
Example #10
0
def ingresar():
    titulo = "Ingresar"
    formulario = Registro()
    login = Login()
    if formulario.submit1.data is True and formulario.validate_on_submit():

        if validarExistente(formulario.email.data):
            flash('Cuenta creada con exito!', 'success')
            flash('Pronto recibiras un email de bienvenida!', 'success')
            formulario.mostrar_datos()

            usuario = Usuario(formulario.nombre.data, formulario.apellido.data, formulario.email.data,
                              formulario.contrasenia.data)
            try:
                db.session.add(usuario)
                db.session.commit()
                enviarMail(formulario.email.data, 'Bienvenido a Trap Eventos!', 'cuenta_creada', formulario=formulario)
                login_user(usuario, False)
            except SQLAlchemyError as e:
                db.rollback()
                enviarMail(os.getenv('ADMIN_MAIL'), 'SQLAlchemy error', 'error', e=e)

            return redirect(url_for('index'))
        else:
            flash('Existe una cuenta registrada con el email ingresado.', 'danger')

    if login.submit2.data is True and login.validate_on_submit():

        usuario = db.session.query(Usuario).filter(Usuario.email == login.emailLogin.data).first()

        if usuario is not None and usuario.verificar_pass(login.contraseniaLogin.data):
            login_user(usuario, login.remember_me.data)
            flash('Welcome back, ' + usuario.nombre + '!', 'success')
            return redirect(url_for('index'))
        else:
            flash('Su usuario y contraseña no coinciden, reintente.', 'danger')

    if not current_user.is_authenticated:
        return render_template('registro.html', titulo=titulo, formulario=formulario, login=login)
    else:
        return redirect(url_for('index'))
Example #11
0
	def end_day(self):
		self.day_total()
		dayDataBase.actualize(self.sheet)
		if enviarMail(str(date.today()), self.redactar_mail()):
			dayDataBase.reset_json()
		sys.exit()