def cerrarExperimento(cls, datos): experimento = CerrarExperimentoSchema().load(datos) Experimento.objects(id_experimento=experimento.id_experimento).update( fechaFin=parser.parse(str(datetime.datetime.utcnow())), resultados=experimento.resultados, finalizado=True, conclusiones=experimento.conclusiones)
def modificarExperimento(cls, datos): experimento = ModificarExperimentoSchema().load(datos) Experimento.objects(id_experimento=experimento.id_experimento).update( resultados=experimento.resultados, metodologia=experimento.metodologia, objetivos=experimento.objetivos, muestrasExternas=experimento.muestrasExternas)
def removerMuestraExternaDelExperimento(muestra): Experimento.objects(muestrasExternas__id_muestra=muestra.id_muestra).update(pull__muestrasExternas__id_muestra=muestra.id_muestra)
def agregarMuestrasExternasAlExperimento(cls, datos): experimento = AgregarMuestrasAlExperimentoSchema().load(datos) cls.validarMuestrasExternas(cls, experimento) Experimento.objects(id_experimento = experimento.id_experimento).update(muestrasExternas=experimento.muestrasExternas)
def removerMuestraDeExperimento(cls, idExperimento, idMuestra): cls.validarRemoverMuestraExperimento(idExperimento, idMuestra) Experimento.objects(id_experimento=idExperimento).update( pull__muestrasExternas__id_muestra=idMuestra)
def find_by_proyecto(cls, _id_proyecto): return Experimento.objects(id_proyecto=_id_proyecto)
def elExperimentoTieneLaMuestra(cls, idExperimento, idMuestra): return Experimento.objects( id_experimento=idExperimento, muestrasExternas__id_muestra=idMuestra).first() != None
def elExperimentoPerteneceAlProyecto(cls, id_experimento, id_proyecto): return Experimento.objects(id_experimento=id_experimento, id_proyecto=id_proyecto).first() != None
def elExperimentoEstaFinalizado(cls, id_experimento): return Experimento.objects(id_experimento=id_experimento, finalizado=False).first() != None
def elExperimentoExiste(cls, idExperimento): return Experimento.objects( id_experimento=idExperimento).first() != None
def losAnimalesPertenecenAlMismoProyectoDelExperimento(grupoExperimental): experimento = Experimento.objects( id_experimento=grupoExperimental.id_experimento).first() return all(experimento.id_proyecto == animal.id_proyecto for animal in grupoExperimental.fuentesExperimentales)