Spaces:
Sleeping
Sleeping
| from ...models import Participacion, Tecnica, SesionSensorial, Catador | |
| from ...utils import controller_error | |
| class ParticipacionController(): | |
| def enterSession(tester: Catador, session: SesionSensorial): | |
| try: | |
| participation = Participacion.objects.get( | |
| catador=tester, tecnica=session.tecnica) | |
| participation.finalizado = False | |
| participation.activo = True | |
| participation.save() | |
| return participation | |
| except Participacion.DoesNotExist: | |
| return controller_error("No se ha encontrado la participación") | |
| def finishSession(participation: Participacion): | |
| participation.refresh_from_db() | |
| participation.finalizado = True | |
| participation.activo = False | |
| participation.save() | |
| return participation | |
| def outSession(tester: Catador, session: SesionSensorial): | |
| try: | |
| participation = Participacion.objects.get( | |
| catador=tester, tecnica=session.tecnica) | |
| participation.activo = False | |
| participation.save() | |
| return participation | |
| except Participacion.DoesNotExist: | |
| return controller_error("No se ha encontrado la participación") | |
| def outAllInSession(session: SesionSensorial): | |
| try: | |
| participations = Participacion.objects.filter( | |
| tecnica=session.tecnica) | |
| participations.update(finalizado=False) | |
| message = "Participaciones actualizadas a finalizadas como falso" | |
| return (True, message) | |
| except Exception as e: | |
| print(f"Error al actualizar las participaciones: {str(e)}") | |
| return (False, "Error al actualizar las participaciones") | |
| def getParticipationsInTechinique(technique: Tecnica | int): | |
| filters = {} | |
| if isinstance(technique, int): | |
| filters["tecnica_id"] = technique | |
| else: | |
| filters["tecnica"] = technique | |
| return list(Participacion.objects.filter(**filters)) | |