def asignarJaulaAAnimales(cls, datos): animales = AsignarAnimalAJaula().load(datos, many=True) cls.validarJaula(animales[0].id_jaula) for animal in animales: _id_proyecto = cls.validarJaula(animal.id_jaula) FuenteExperimental.objects( id_fuenteExperimental=animal.id_fuenteExperimental).update( id_jaula=animal.id_jaula, id_proyecto=_id_proyecto)
def animalesDelProyecto(cls, idProyecto): #codigoGrupoExperimental__ne="" return FuenteExperimental.objects(codigoGrupoExperimental='', id_proyecto=idProyecto, tipo="Animal", codigo='', baja=False).all()
def losAnimalesNoTienenGrupoExperimental(fuentesExperimentales): return all( FuenteExperimental.objects( id_fuenteExperimental=fuente.id_fuenteExperimental, codigo="", codigoGrupoExperimental="").first() is not None for fuente in fuentesExperimentales)
def find_by_id(cls, idFuenteExperimental): fuente = FuenteExperimental.objects( id_fuenteExperimental=idFuenteExperimental, codigo__ne="").first() if not fuente: raise Exception( f"No se encontró una fuente experimental para el id {idFuenteExperimental}" ) return fuente
def desasociarDeGrupoExperimental(cls, fuenteExperimental): FuenteExperimental.objects(id_fuenteExperimental=fuenteExperimental. id_fuenteExperimental).update( codigo="", codigoGrupoExperimental="")
def find_by_id(cls, idAnimal): return FuenteExperimental.objects( id_fuenteExperimental=idAnimal).first()
def actualizarProyectoAnimalesDeJaulas(cls, jaula): FuenteExperimental.objects(id_jaula=jaula.id_jaula).update( set__id_proyecto=jaula.id_proyecto)
def bajarAnimal(cls, idAnimal): animal = FuenteExperimental.objects(id_fuenteExperimental=idAnimal) if animal: return FuenteExperimental.objects( id_fuenteExperimental=idAnimal).update(baja=True, id_jaula=0) return None
def losAnimalesEstanHabilitados(fuentesExperimentales): return all( FuenteExperimental.objects( id_fuenteExperimental=fuente.id_fuenteExperimental, baja=False).first() is not None for fuente in fuentesExperimentales)
def desasignarCodigoAFuente(cls, grupo, _codigo): for fuente in grupo.fuentesExperimentales: FuenteExperimental.objects( id_fuenteExperimental=fuente.id_fuenteExperimental).update( codigo=_codigo, descripcion=_codigo)
def todosLosAnimales(cls): return FuenteExperimental.objects(tipo="Animal", baja=False).all()
def makeAnimal(self, data, **kwargs): return FuenteExperimental(**data)
def nuevasFuentesAnimales(grupoExperimental): for fuente in grupoExperimental.fuentesExperimentales: FuenteExperimental.objects( id_fuenteExperimental=fuente.id_fuenteExperimental).update( codigo=fuente.codigo, codigoGrupoExperimental=fuente.codigoGrupoExperimental)
def find_all_sin_asignar(cls): return FuenteExperimentalSchema().dump(FuenteExperimental.objects( tipo="Animal", grupoExperimental="", codigo__ne="").all(), many=True)
def find_by_codigo(cls, codigoFuenteExperimental): return FuenteExperimentalSchema().dump( FuenteExperimental.objects( codigo=codigoFuenteExperimental).first())
def asociarAGrupoExperimental(cls, fuenteExperimental): FuenteExperimental.objects( id_fuenteExperimental=fuenteExperimental.id_fuenteExperimental ).update( codigo=fuenteExperimental.codigo, codigoGrupoExperimental=fuenteExperimental.codigoGrupoExperimental)
def reasignarCodigoGrupoExperimentalAFuentesExperimentales( cls, grupo, codigo): for fuente in grupo.fuentesExperimentales: FuenteExperimental.objects( id_fuenteExperimental=fuente.id_fuenteExperimental).update( codigoGrupoExperimental=codigo)
def animalesSinJaula(cls): return FuenteExperimental.objects(id_jaula=0, tipo="Animal", codigoGrupoExperimental__ne="", baja=False).all()
def borrarFuenteOtros(cls, grupo): FuenteExperimental.objects( codigoGrupoExperimental=grupo.codigo).delete()
def animalesDeLaJaula(cls, idJaula): return FuenteExperimental.objects(id_jaula=idJaula).all()