def data(): s_config = siteconfig.get_config() if not has_permission("docente_show", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) id = request.args.get("id") if id: docente = Docente.find_by_id(id) if docente is not None: docente["fecha_nac"] = datetime.strftime(docente["fecha_nac"], "%d/%m/%Y") usuario_id = docente["usuario_id"] if usuario_id: user = User.find_by_id(usuario_id) docente["username"] = user["username"] data = jsonify(docente) return make_response(data, 200) else: abort(422) else: abort(400)
def set_estudiantes(): s_config = siteconfig.get_config() if not has_permission("taller_update", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session) ): abort(401) params = request.form.to_dict() params["estudiantes"] = request.form.getlist("modal_select_estudiantes") # TODO: created = Taller.set_estudiantes(params) op_response = dict() if created: op_response["msg"] = "Se ha establecido la relación" op_response["type"] = "success" else: op_response["msg"] = "Ha ocurrido un error al establecer la relación" op_response["type"] = "error" abort(make_response(jsonify(op_response), 422)) return make_response(jsonify(op_response), 200)
def ciclos_taller_docente(): s_config = siteconfig.get_config() if (not has_permission("horariodocente_index", session) or not has_permission("horariodocente_show", session) or (s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session))): abort(401) d_id = request.args.get("d_id") t_id = request.args.get("t_id") if d_id and t_id: ciclos = Administracion.ciclos_taller_docente(d_id, t_id) for ciclo in ciclos: ciclo["fecha_ini"] = ciclo["fecha_ini"].strftime("%d-%m-%Y") ciclo["fecha_fin"] = ciclo["fecha_fin"].strftime("%d-%m-%Y") if ciclos is not None: data = jsonify(ciclos) return make_response(data, 200) else: abort(422) else: abort(400)
def password_update(): s_config = siteconfig.get_config() if not authenticated(session) or (s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) form = PasswordUpdateForm() if form.validate_on_submit(): password = request.form.get("password") bcrypt_password = bcrypt.generate_password_hash(password).decode( "utf - 8") updated = User.update_password(bcrypt_password, session.get("user")) if updated: # TODO: Email notificando la actualización de contraseña flash("La contraseña se ha modificado con éxito", "success") else: flash("Se ha producido un error al actualizar la contraseña", "error") else: error_msg = "".join(list(form.errors.values())[0]).strip("'[]") flash(error_msg, "error") return redirect(url_for("user_profile"))
def instrumento_info(): s_config = siteconfig.get_config() if not has_permission("instrumento_show", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session) ): abort(401) id_instrumento = request.args.get("id") instrumento = Instrumento.find_by_id(id_instrumento) if instrumento: # Tipo del instrumento tipo = TipoInstrumento.find_by_id(instrumento["tipo_id"]) instrumento["tipo"] = tipo["nombre"] instrumento["created_at"] = instrumento["created_at"].strftime( "%d-%m-%Y %H:%M:%S" ) if instrumento["updated_at"] is not None: instrumento["updated_at"] = instrumento["updated_at"].strftime( "%d-%m-%Y %H:%M:%S" ) else: instrumento["updated_at"] = "Nunca" # Tipos de instrumentos para el select tipos_instrumento = TipoInstrumento.all() return render_template( "user/instrumento.html", instrumento=instrumento, tipos=tipos_instrumento ) else: abort(404)
def destroy(): s_config = siteconfig.get_config() if not has_permission("nucleo_destroy", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) params = json.loads(request.data) nid = params["id"] success = Nucleo.delete(nid) op_response = dict() activo = params["activo"] if success: condicion = "bloqueado" if activo else "activado" op_response["msg"] = "Se ha " + condicion + " al núcleo exitosamente" op_response["type"] = "success" else: condicion = "bloquear" if activo else "activar" op_response["msg"] = "El núcleo a " + condicion + " no existe" op_response["type"] = "error" abort(jsonify(op_response), 422) return make_response(jsonify(op_response), 204)
def nucleo_table(): s_config = siteconfig.get_config() if not has_permission("nucleo_index", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) return render_template("tables/nucleos.html")
def taller_new_form(): s_config = siteconfig.get_config() if not has_permission("taller_new", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session) ): abort(401) return render_template("user/actions/taller_crear.html")
def serverside_table_content(): s_config = siteconfig.get_config() if not has_permission("usuario_index", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) data = collect_data_serverside(request) return jsonify(data)
def taller_table(): s_config = siteconfig.get_config() if not has_permission("taller_index", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session) ): abort(401) talleres = Taller.all() return render_template("partials/tabs/talleres.html", talleres=talleres)
def all_roles(): s_config = siteconfig.get_config() if not has_permission("usuario_new", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) roles = Role.all() data = jsonify(roles) return make_response(data, 200)
def user_table(): s_config = siteconfig.get_config() if not has_permission("usuario_index", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) roles = Role.all() return render_template("tables/usuarios.html", roles=roles)
def dashboard(): s_config = siteconfig.get_config() if not authenticated(session) or (s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) else: roles = Role.all() return render_template("user/dashboard.html", roles=roles)
def new(): s_config = siteconfig.get_config() if not has_permission("usuario_new", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) form = UserCreateForm() op_response = dict() if form.validate_on_submit(): params = request.form.to_dict() plain_pw = params["password"] params["password"] = bcrypt.generate_password_hash(plain_pw).decode( "utf - 8") params["roles"] = request.form.getlist("rol_id") created = User.create(params) if created: html = render_template( "emails/mail_alta_usuario.html", username=params["username"], passwd=plain_pw, ) send_async( params["email"], "Cuenta Registrada | Grupo2 - Orquesta Escuela de Berisso", html, ) op_response["msg"] = "Se ha agregado al usuario con éxito" op_response["type"] = "success" else: op_response[ "msg"] = "El nombre de usuario está en uso, intente con otro" op_response["type"] = "error" abort(make_response(jsonify(op_response), 422)) else: if len(form.errors) >= 2: op_response["msg"] = "Complete todos los datos del nuevo usuario" op_response["type"] = "error" else: error_msg = "".join(list(form.errors.values())[0]).strip("'[]") op_response["msg"] = error_msg op_response["type"] = "error" abort(make_response(jsonify(op_response), 400)) return make_response(jsonify(op_response), 201)
def new(): s_config = siteconfig.get_config() if not has_permission("instrumento_new", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session) ): abort(401) # Instanciar el form de WTForm para la validación choices = forms_instrumento.crud_choices() form = InstrumentoCreateForm(choices) op_response = dict() if form.validate_on_submit(): params = request.form.to_dict() # Si el usuario seleccionó una imagen if request.files["photo"].filename != "": f = form.photo.data parts = f.filename.split(".") filename = ( "".join(parts[:-1]) + "_" + datetime.now().strftime("%d-%m-%Y_%I-%M-%S_%p") + "." + parts[-1] ) filename = secure_filename(filename) imagepath = os.path.join(app.config["UPLOADED_IMAGES_DEST"], filename) f.save(imagepath) params["image_name"] = filename created = Instrumento.create(params) if created: op_response["msg"] = "Se ha registrado el Instrumento exitosamente" op_response["type"] = "success" else: op_response["msg"] = "Ha ocurrido un error al registrar el Instrumento" op_response["type"] = "error" abort(make_response(jsonify(op_response), 422)) else: if len(form.errors) >= 2: op_response["msg"] = "Complete todos los datos del Instrumento" op_response["type"] = "error" else: error_msg = "".join(list(form.errors.values())[0]).strip("'[]") op_response["msg"] = error_msg op_response["type"] = "error" abort(make_response(jsonify(op_response), 400)) return make_response(jsonify(op_response), 201)
def instrumento_table(): s_config = siteconfig.get_config() if not has_permission("instrumento_index", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session) ): abort(401) # Tipos de instrumentos para el select tipos_instrumento = TipoInstrumento.all() return render_template("tables/instrumentos.html", tipos=tipos_instrumento)
def get_nucleos_activos(): s_config = siteconfig.get_config() if s_config["modo_mantenimiento"] == 1 and not has_role( "administrador", session): abort(401) nucleos = Nucleo.activos() nucleos = jsonify(nucleos) return make_response(nucleos, 200)
def get_talleres(): s_config = siteconfig.get_config() if not has_permission("taller_index", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session) ): abort(401) all_talleres = Taller.all() all_talleres = jsonify(all_talleres) return make_response(all_talleres, 200)
def get_nucleos(): s_config = siteconfig.get_config() if not has_permission("nucleo_index", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) nucleos = Nucleo.all() nucleos = jsonify(nucleos) return make_response(nucleos, 200)
def new(): s_config = siteconfig.get_config() if not has_permission("ciclolectivo_new", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) form = CicloCreateForm() op_response = dict() if form.validate_on_submit(): params = request.form.to_dict() params["fecha_inicio"] = datetime.strptime(params["fecha_inicio"], "%d/%m/%Y").date() params["fecha_fin"] = datetime.strptime(params["fecha_fin"], "%d/%m/%Y").date() fecha_ini = params["fecha_inicio"] fecha_fin = params["fecha_fin"] if fecha_fin <= fecha_ini: op_response[ "msg"] = "La fecha de finalización es menor o igual a la fecha de inicio" op_response["type"] = "error" abort(make_response(jsonify(op_response), 400)) created = CicloLectivo.create(params) if created: op_response["msg"] = "Se ha agregado el ciclo lectivo exitosamente" op_response["type"] = "success" else: op_response[ "msg"] = "Ha ocurrido un error al crear el ciclo lectivo" op_response["type"] = "error" abort(make_response(jsonify(op_response), 422)) else: if len(form.errors) >= 2: op_response["msg"] = "Complete todos los datos del ciclo lectivo" op_response["type"] = "error" else: error_msg = "".join(list(form.errors.values())[0]).strip("'[]") op_response["msg"] = error_msg op_response["type"] = "error" abort(make_response(jsonify(op_response), 400)) return make_response(jsonify(op_response), 201)
def ciclo_table(): s_config = siteconfig.get_config() if not has_permission("ciclolectivo_index", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) ciclos = CicloLectivo.all() for ciclo in ciclos: ciclo["fecha_ini"] = ciclo["fecha_ini"].strftime("%d-%m-%Y") ciclo["fecha_fin"] = ciclo["fecha_fin"].strftime("%d-%m-%Y") return render_template("partials/tabs/ciclos.html", ciclos=ciclos)
def docente_table(): s_config = siteconfig.get_config() if not has_permission("docente_index", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) generos = Genero.all() return render_template( "tables/docentes.html", localidades=localidades(), tipodoc=tipos_documento(), generos=generos, )
def get_talleres(): s_config = siteconfig.get_config() if not has_permission("ciclolectivo_index", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) c_id = request.args.get("id") talleres = CicloLectivo.talleres(c_id) if talleres is None: abort(404) return make_response(jsonify(talleres), 200)
def update(): s_config = siteconfig.get_config() if not has_permission("docente_update", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) # Validación - Fill choices choices = forms_docente.choices() form = DocenteForm(choices) op_response = dict() if form.validate_on_submit(): params = request.form.to_dict() if "username" in params: user = User.find_by_user(params["username"]) if user: params["usuario_id"] = user["id"] params["fecha_nacimiento"] = datetime.strptime( params["fecha_nacimiento"], "%d/%m/%Y").date() updated = Docente.update(params) if updated: op_response["msg"] = "Se ha modificado al docente con éxito" op_response["type"] = "success" else: op_response["msg"] = "Ha ocurrido un error al editar al docente" op_response["type"] = "error" abort(make_response(jsonify(op_response), 422)) else: if len(form.errors) >= 2: op_response[ "msg"] = "Complete todos los datos del docente a modificar" op_response["type"] = "error" else: error_msg = "".join(list(form.errors.values())[0]).strip("'[]") op_response["msg"] = error_msg op_response["type"] = "error" abort(make_response(jsonify(op_response), 400)) return make_response(jsonify(op_response), 200)
def get_docentes_ciclo(): s_config = siteconfig.get_config() if not has_permission("docente_index", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session) ): abort(401) t_id = request.args.get("t_id") c_id = request.args.get("c_id") docentes = Taller.docentes_ciclo(t_id, c_id) if docentes is None: abort(404) return make_response(jsonify(docentes), 200)
def get_ciclos(): s_config = siteconfig.get_config() if not has_permission("ciclolectivo_index", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session)): abort(401) ciclos = CicloLectivo.all() for dict_item in ciclos: dict_item["fecha_ini"] = dict_item["fecha_ini"].strftime("%d-%m-%Y") dict_item["fecha_fin"] = dict_item["fecha_fin"].strftime("%d-%m-%Y") ciclos = jsonify(ciclos) return make_response(ciclos, 200)
def docente_set_horario(): s_config = siteconfig.get_config() if (not has_permission("horariodocente_new", session) or not has_permission("horariodocente_new", session) or not has_permission("horariodocente_update", session) or not has_permission("horariodocente_destroy", session) or (s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session))): abort(401) # Validación - (queda pendiente) op_response = dict() # suplantar True por form.validate_on_submit cuando haya validación if True: params = request.form.to_dict() d_id = params["docente_id"] c_id = params["ciclo_id"] t_id = params["taller_id"] docente_responsable_taller_id = Administracion.docente_responsable_taller_id( d_id, c_id, t_id) if docente_responsable_taller_id: n_id = params["nucleo_id"] dias_id = request.form.getlist("dias_id") horario_set = Administracion.docente_set_horario( docente_responsable_taller_id["id"], n_id, dias_id) if horario_set: msg = "asignado" if dias_id else "desasignado" op_response["msg"] = ("Se ha " + msg + " el horario del docente con éxito") op_response["type"] = "success" else: op_response[ "msg"] = "Ha ocurrido un error al asignar el horario" op_response["type"] = "error" abort(make_response(jsonify(op_response), 422)) else: abort(make_response(jsonify(op_response), 400)) return make_response(jsonify(op_response), 200)
def data(): s_config = siteconfig.get_config() if not has_permission("taller_show", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session) ): abort(401) id = request.args.get("id") if id: taller = Taller.find_by_id(id) if taller is not None: data = jsonify(taller) return make_response(data, 200) else: abort(422) else: abort(400)
def taller_set_ciclo_form(): s_config = siteconfig.get_config() if not has_permission("taller_update", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session) ): abort(401) talleres = Taller.all() ciclos = CicloLectivo.all() for ciclo in ciclos: ciclo["fecha_ini"] = ciclo["fecha_ini"].strftime("%d-%m-%Y") ciclo["fecha_fin"] = ciclo["fecha_fin"].strftime("%d-%m-%Y") return render_template( "user/actions/taller_asociar_ciclo.html", talleres=talleres, ciclos=ciclos )
def instrumento_data(): s_config = siteconfig.get_config() if not has_permission("instrumento_show", session) or ( s_config["modo_mantenimiento"] == 1 and not has_role("administrador", session) ): abort(401) if request.args.get("id"): eid = request.args.get("id") instrumento = Instrumento.find_by_id(eid) if instrumento is not None: data = jsonify(instrumento) return make_response(data, 200) else: return abort(404) else: abort(400)