def get(self,evento_id): evento = adapter.get_evento(evento_id) clima_actual = openweathermap.get_clima(evento["ubicacion"]) all_users = adapter.get_all_users() current_app.logger.info('Obteniendo usuarios confirmados...') usuarios_confirmados = adapter.obtener_usuarios_invitados_evento(evento_id,Asistencia.Asisto) current_app.logger.info('Obteniendo usuarios pendientes...') usuarios_pendientes = adapter.obtener_usuarios_invitados_evento(evento_id,Asistencia.Pendiente) current_app.logger.info('Obteniendo usuarios rechazados...') usuarios_rechazados = adapter.obtener_usuarios_invitados_evento(evento_id,Asistencia.NoAsisto) current_app.logger.info('Obteniendo usuarios invitados...') usuarios_invitados = usuarios_confirmados+usuarios_pendientes+usuarios_rechazados current_app.logger.info('Obteniendo usuarios para invitar...') users_to_invite = [user for user in all_users if user not in usuarios_invitados] requerimientos = adapter.obtener_requerimientos_evento(evento_id) print current_user.is_authenticated() if not(current_user.is_authenticated()): puede_editar = str(False).lower() asistencia_actual = Asistencia.NoAsisto requerimientos_con_datos = [] else: puede_editar= str(current_user.id == evento["organizador_id"]).lower() asistencia_actual = adapter.obtener_asistencia_a_evento(evento_id, current_user.id) current_app.logger.info('Obteniendo requerimientos con datos...') requerimientos_con_datos = [] for r in requerimientos: asignaciones = adapter.obtener_asignaciones_requerimiento(r.id) faltan_reservar = r.cantidad asignacion_propia = {"cantidad":1} for a in asignaciones: faltan_reservar = faltan_reservar - a["cantidad"] if a["usuario_id"]==current_user.id: asignacion_propia = a faltan_reservar = faltan_reservar + a["cantidad"] requerimientos_con_datos.append({"requerimiento":r,"faltan_reservar":faltan_reservar,"asignacion_propia":asignacion_propia}) headers = {'Content-Type': 'text/html'} return make_response(render_template('evento.html',Asistencias=Asistencia,asistencia_actual=asistencia_actual.value,puede_editar=puede_editar,evento=evento,all_users=users_to_invite,usuarios_rechazados=usuarios_rechazados,usuarios_confirmados=usuarios_confirmados,usuarios_pendientes=usuarios_pendientes, clima_actual=clima_actual, requerimientos_con_datos=requerimientos_con_datos),200,headers)
def post(self): recurso_id = request.form["id_recurso"] cantidad = request.form["cantidad_llevar"] usuario_id = current_user.id asignado = adapter.obtener_asignacion_usuario(recurso_id, usuario_id) if asignado: current_app.logger.info('El recursa ya fue asignado, se guarda la edicion del mismo') asignado = adapter.editar_asignacion_requerimiento(asignado, cantidad) else: current_app.logger.info('Nueva asignacion de recurso para un usuario') asignado = adapter.asignar_requerimiento(recurso_id,usuario_id,cantidad) requerimiento = adapter.obtener_requerimiento(recurso_id) asignaciones = adapter.obtener_asignaciones_requerimiento(recurso_id) faltan_reservar = requerimiento["cantidad"] asignacion_propia = asignado for a in asignaciones: faltan_reservar = faltan_reservar - a["cantidad"] requerimiento_con_datos={"requerimiento":requerimiento,"faltan_reservar":(faltan_reservar+asignacion_propia["cantidad"]),"asignacion_propia":asignacion_propia} return requerimiento_con_datos