def validate_email(self, email): if session['email'] != email.data: email = tabla_usuarios.find_one({'email': email.data}) if email: raise ValidationError( 'Este email ya esta registrado. Porfavor inicie sesion o recupere su contraseña' )
def estudio(_id): estudio = tabla_estudios.find_one({'_id': ObjectId(_id)}) creador = tabla_usuarios.find_one({'usuario': estudio['usuario']}) if 'user' in session: return render_template('estudio.html', title=estudio['titulo'], estudio=estudio, control_center=True, creador=creador, css=True) else: return render_template('estudio.html', title=estudio['titulo'], estudio = estudio, control_center = False, creador = creador, css = True)
def perfil(): if 'user' in session: profile = url_for('static', filename='profile-pic/'+session['image']) form = UpdateAccount_Form() if form.validate_on_submit(): user = tabla_usuarios.find_one({'usuario': session['user']}) colaboradores = user['colaboradores'] if form.picture.data: if user['image'] != 'nada': picture_path = os.path.join( app.root_path, 'static/profile-pic', user['image']) os.remove(picture_path) picture_file, _ = save_picture(form.picture.data) session['image'] = picture_file cambios = {'usuario': form.username.data, 'email': form.email.data, 'image': session['image']} tabla_usuarios.update_one( {'usuario': session['user']}, {'$set': cambios}) if form.colaboradores.data: colaboradores.append(form.colaboradores.data['colaborador']) tabla_usuarios.update_one({'usuario': session['user']}, { '$set': {'colaboradores': colaboradores}}) session['user'] = form.username.data session['email'] = form.email.data flash('Tus cambios se han actualizado', 'success') return redirect(url_for('perfil')) elif request.method == 'GET': form.username.data = session['user'] form.email.data = session['email'] usuario = tabla_usuarios.find_one({'usuario': session['user']}) colaboradores = usuario['colaboradores'] print(colaboradores) print(len(colaboradores)) if colaboradores[0] == 'nada' and len(colaboradores)<=1: vacio_colaboradores = True else: vacio_colaboradores = False colaboradores = colaboradores[1:] return render_template('perfil.html', title='Perfil', control_center=True, profile=profile, form=form, css=True, colaboradores = colaboradores, vacio_colaboradores = vacio_colaboradores) else: return redirect(url_for('login'))
def index(): form = PublicacionForm() if request.method == 'POST': usuario = tabla_usuarios.find_one({'usuario': session['user']}) publicacion = { 'creador': usuario['usuario'], 'fecha': time.strftime("%d-%m-%Y"), 'categoria': form.categoria.data, 'titulo': form.titulo.data, 'telefono': form.telefono.data, 'email': form.email.data, 'contenido': form.contenido.data, 'foto': usuario['image'] } flash('Publicacion Publicada exitosamente', 'success') tabla_publicaciones.insert_one(publicacion) return redirect(url_for('index')) return render_template('index.html', titulo= 'Index', form = form, cc= False)
def iniciar_sesion(): form = InicioSesionForm() if form.validate_on_submit(): user = tabla_usuarios.find_one({'usuario': form.username.data}) if user and bcrypt.check_password_hash(user['password'], form.password.data): # login_user(user, remember=login.remember.data) flash('Inicio de sesion completado satisfactoriamente', 'success') session['user'] = user['usuario'] session['email'] = user['email'] if user['image'] != None: session['image'] = user['image'] else: session['image'] = 'default.jpg' next_page = request.args.get('next') return redirect(next_page) if next_page else redirect(url_for('index')) else: flash('No se pudo iniciar sesion, porfavor revise el usuario y contraseña', 'danger') return render_template('inicio_sesion.html', titulo = 'Inicio De Sesion', form = form)
def perfil(id): if 'user' in session: form = ActualizarPerfilForm() usuario = tabla_usuarios.find_one({'usuario': id}) if request.method == 'POST': print('hola') if form.picture.data: filename = save_picture(form.picture.data, 'perfil') else: filename = 'default.jpg' cambios = { 'usuario': form.username.data, 'email': form.email.data, 'image': filename, 'cedula': form.cedula.data, 'nombre': form.nombre.data, 'apellido': form.apellido.data, 'habilidades': form.habilidades.data, 'experiencia': form.experiencia.data, 'educacion': form.educacion.data, } tabla_publicaciones.update_many({'creador':id}, {'$set': {'creador': form.username.data}}) tabla_usuarios.update_one({'usuario': id}, {'$set': cambios}) session['user'] = form.username.data session['email'] = form.email.data session['image'] = filename flash('Tus cambios se realizaron satisfactoriamente', 'success') if request.method == 'GET': print('hoa 1') form.apellido.data = usuario['apellido'] form.username.data = usuario['usuario'] form.email.data = usuario['email'] form.nombre.data = usuario['nombre'] form.habilidades.data = usuario['habilidades'] form.experiencia.data = usuario['experiencia'] form.educacion.data = usuario['educacion'] return render_template('perfil.html', titulo = 'Perfil', form = form, cc = False) else: return render_template(url_for('inicio_sesion')) return render_template('perfil.html', titulo = 'Perfil')
def login(): if 'user' in session: return redirect(url_for('resultados')) login = LogIn_Form() if login.validate_on_submit(): user = tabla_usuarios.find_one({'usuario': login.username.data}) if user and bcrypt.check_password_hash(user['password'], login.password.data): # login_user(user, remember=login.remember.data) flash('Inicio de sesión completado satisfactoriamente', 'success') session['user'] = user['usuario'] session['email'] = user['email'] next_page = request.args.get('next') print(next_page) return redirect(next_page) if next_page else redirect( url_for('resultados')) else: flash( 'No se pudo iniciar sesión, por favor revise el usuario y contraseña', 'danger') return render_template('inicio_sesion.html', title='Inicio Sesion', form=login)
def historial(): if 'user' in session: limit = 1 page = request.args.get('page', 1, type=int) starting_id = tabla_estudios.find( {'usuario': session['user']}).sort('_id', 1) count = tabla_estudios.count_documents({'usuario': session['user']}) total_pages = ceil(count / limit) mitad = ceil(total_pages/2) hola = tabla_estudios.find_one({'usuario': session['user']}) hola2 = tabla_estudios.find_one({'colaboradores': session['user']}) estudios = [] pages = [] if hola or hola2: if page == 1 or page == total_pages: pages = [] c = 0 if mitad % 2 == 0: print('impar') for i in range(1, total_pages+1): if c < 2 or c == total_pages-1 or c == total_pages-2 or c == mitad-2 or c == mitad or c == mitad-1: pages.append(i) else: pages.append(None) c += 1 print(total_pages) print(c) print(pages) else: print('par') for i in range(1, total_pages+1): if c < 2 or c == total_pages-1 or c == total_pages-2 or c == mitad or c == mitad-1: pages.append(i) else: pages.append(None) c += 1 print(total_pages) print(c) print(pages) else: pages = [] c = 0 for i in range(1, total_pages+1): if c == 0 or c == total_pages-1 or c == page or c == page-1 or c == page-2: pages.append(i) else: pages.append(None) c += 1 print(pages) last_id = starting_id[(page-1)*limit]['_id'] estudios = tabla_estudios.find({'usuario': session['user'], '_id': { '$gte': last_id}}).sort('_id', 1).limit(limit) form = Add_colaboradorForm() form.l_colaborador.choices=[(colaborador, colaborador) for colaborador in tabla_usuarios.find_one({'usuario':session['user']})['colaboradores'][1:]] if form.validate.validate_on_submit(): colaborador = form.l_colaborador.data tabla_estudios.update_one({'usuario': session['user']}, {'$set': {'colaboradores':colaborador}}) if not(estudios): vacio_historial = True else: vacio_historial = False return render_template('historial.html', title='Historial Clinico', control_center=True, estudios=estudios, css=True, pages=pages, current_page=page, vacio_historial = vacio_historial, form = form) else: return redirect(url_for('login'))
def validate_username(self, username): if session['user'] != username.data: user = tabla_usuarios.find_one({'usuario': username.data}) if user: raise ValidationError( 'Este usuario no esta disponibles. Porfavor ingrese otro.')
def validate_colaborador(self, colaborador): user = tabla_usuarios.find_one({'usuario': colaborador.data}) if not (user): raise ValidationError( 'Este usuario no existe. Porfavor ingrese otro.')
def validate_cedula(self, cedula): user = tabla_usuarios.find_one({'cedula': cedula.data}) user2 = tabla_validacion.find_one({'cedula': cedula.data}) if user or user2: raise ValidationError( 'Este usuario no esta disponibles. Porfavor ingrese otro.')
def validate_username(self, username): user = tabla_usuarios.find_one({'usuario': username.data}) user2 = tabla_validacion.find_one({'usuario': username.data}) if user or user2: raise ValidationError( 'Este usuario no esta disponibles. Porfavor ingrese otro.')