Spaces:
Sleeping
Sleeping
Inicio de sesion con Napping sin modalidaes
Browse files- tecnicas/controllers/__init__.py +1 -0
- tecnicas/controllers/views_controller/session_management/details/details_napping_controller.py +5 -1
- tecnicas/controllers/views_controller/session_management/monitor/monitor_napping_controller.py +27 -0
- tecnicas/templates/tecnicas/manage_sesions/details-session-napping.html +2 -11
- tecnicas/views/sessions_management/session_monitor.py +16 -1
tecnicas/controllers/__init__.py
CHANGED
|
@@ -37,6 +37,7 @@ from .views_controller.session_management.monitor.monitor_escalas_controller imp
|
|
| 37 |
from .views_controller.session_management.monitor.monitor_rata_controller import MonitorRATAController
|
| 38 |
from .views_controller.session_management.monitor.monitor_pf_controller import MonitorPFController
|
| 39 |
from .views_controller.session_management.monitor.monitor_sort_controller import MonitorSortController
|
|
|
|
| 40 |
|
| 41 |
from .views_controller.sessions_tester.login_session_tester_controller import LoginSessionTesterController
|
| 42 |
from .views_controller.sessions_tester.list_sessions_tester_controller import ListSessionsTesterController
|
|
|
|
| 37 |
from .views_controller.session_management.monitor.monitor_rata_controller import MonitorRATAController
|
| 38 |
from .views_controller.session_management.monitor.monitor_pf_controller import MonitorPFController
|
| 39 |
from .views_controller.session_management.monitor.monitor_sort_controller import MonitorSortController
|
| 40 |
+
from .views_controller.session_management.monitor.monitor_napping_controller import MonitorNappingController
|
| 41 |
|
| 42 |
from .views_controller.sessions_tester.login_session_tester_controller import LoginSessionTesterController
|
| 43 |
from .views_controller.sessions_tester.list_sessions_tester_controller import ListSessionsTesterController
|
tecnicas/controllers/views_controller/session_management/details/details_napping_controller.py
CHANGED
|
@@ -1,4 +1,6 @@
|
|
| 1 |
from django.http import HttpRequest
|
|
|
|
|
|
|
| 2 |
from .details_controller import DetallesController
|
| 3 |
from tecnicas.models import SesionSensorial, Presentador
|
| 4 |
from collections import defaultdict
|
|
@@ -49,8 +51,10 @@ class DetallesNappingController(DetallesController):
|
|
| 49 |
|
| 50 |
repetition = technique.repeticion
|
| 51 |
|
| 52 |
-
if not repetition
|
| 53 |
return self.startNapping(request=request)
|
|
|
|
|
|
|
| 54 |
|
| 55 |
def startNapping(self, request: HttpRequest):
|
| 56 |
if request.user.user_presentador.user.username != self.session.creadoPor.user.username:
|
|
|
|
| 1 |
from django.http import HttpRequest
|
| 2 |
+
from django.shortcuts import redirect
|
| 3 |
+
from django.urls import reverse
|
| 4 |
from .details_controller import DetallesController
|
| 5 |
from tecnicas.models import SesionSensorial, Presentador
|
| 6 |
from collections import defaultdict
|
|
|
|
| 51 |
|
| 52 |
repetition = technique.repeticion
|
| 53 |
|
| 54 |
+
if not repetition:
|
| 55 |
return self.startNapping(request=request)
|
| 56 |
+
else:
|
| 57 |
+
return self.controllGetResponse(error="Implementación de modalidades en espera", request=request)
|
| 58 |
|
| 59 |
def startNapping(self, request: HttpRequest):
|
| 60 |
if request.user.user_presentador.user.username != self.session.creadoPor.user.username:
|
tecnicas/controllers/views_controller/session_management/monitor/monitor_napping_controller.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from tecnicas.models import SesionSensorial
|
| 2 |
+
from tecnicas.models import Participacion
|
| 3 |
+
from .monitor_controller import MonitorController
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
class MonitorNappingController(MonitorController):
|
| 7 |
+
def __init__(self, session: SesionSensorial):
|
| 8 |
+
super().__init__(session)
|
| 9 |
+
self.url_view = "tecnicas/manage_sesions/monitor-session-sort.html"
|
| 10 |
+
self.previus_view = "cata_system:detalles_sesion"
|
| 11 |
+
|
| 12 |
+
def checkAllFinish(self) -> (bool, str):
|
| 13 |
+
technique = self.sensorial_session.tecnica
|
| 14 |
+
|
| 15 |
+
num_participations = Participacion.objects.filter(
|
| 16 |
+
tecnica=technique).count()
|
| 17 |
+
|
| 18 |
+
if num_participations < technique.limite_catadores:
|
| 19 |
+
return (False, "No se ha alcanzado el número máximo de catadores")
|
| 20 |
+
|
| 21 |
+
unfinished_participations = Participacion.objects.filter(
|
| 22 |
+
tecnica=technique, finalizado=False).count()
|
| 23 |
+
|
| 24 |
+
if unfinished_participations > 0:
|
| 25 |
+
return (False, "No todos los catadores han finalizado su evaluación")
|
| 26 |
+
|
| 27 |
+
return (True, "Puedes finalizar la sesión")
|
tecnicas/templates/tecnicas/manage_sesions/details-session-napping.html
CHANGED
|
@@ -114,15 +114,7 @@
|
|
| 114 |
Acciones disponibles
|
| 115 |
</p>
|
| 116 |
<article class="flex flex-wrap gap-10 max-sm:gap-2">
|
| 117 |
-
{% if
|
| 118 |
-
<div
|
| 119 |
-
class="text-2xl font-semibold flex-1 cts-btn-secondary p-4 flex justify-center items-center rounded-lg select-none text-center">
|
| 120 |
-
<p class=" text-black">
|
| 121 |
-
Sesión finalizada
|
| 122 |
-
</p>
|
| 123 |
-
</div>
|
| 124 |
-
{% else %}
|
| 125 |
-
{% if not sesion.activo %}
|
| 126 |
<button
|
| 127 |
class="ct-btn-start-repition flex-1 uppercase text-lg max-sm:text-base tracking-wider p-4 border-b-2 active:border-b-0 active:border-t-2 active:border-green-500 border-green-800 transition-all rounded-xl bg-green-600 text-white font-bold disabled:bg-amber-600 flex flex-col justify-center items-center gap-2"
|
| 128 |
onclick="startRepetition()">
|
|
@@ -132,7 +124,7 @@
|
|
| 132 |
</figure>
|
| 133 |
</button>
|
| 134 |
{% else %}
|
| 135 |
-
<a href="{% url 'cata_system:monitor_sesion' session_code=
|
| 136 |
<button
|
| 137 |
class="ct-btn-start-repition w-full uppercase text-lg max-sm:text-base tracking-wider p-4 border-b-2 active:border-b-0 active:border-t-2 active:border-orange-500 border-orange-800 transition-all rounded-xl bg-orange-600 text-white font-bold disabled:bg-amber-600 flex flex-col justify-center items-center gap-2">
|
| 138 |
Monitorear repetición
|
|
@@ -142,7 +134,6 @@
|
|
| 142 |
</button>
|
| 143 |
</a>
|
| 144 |
{% endif %}
|
| 145 |
-
{% endif %}
|
| 146 |
<button
|
| 147 |
class="flex-1 uppercase text-lg cts-btn-general cts-btn-error btn-push flex flex-col justify-center items-center gap-2"
|
| 148 |
onclick="showWarningDialog('cts-warnig-dialog')">
|
|
|
|
| 114 |
Acciones disponibles
|
| 115 |
</p>
|
| 116 |
<article class="flex flex-wrap gap-10 max-sm:gap-2">
|
| 117 |
+
{% if not session.activo %}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 118 |
<button
|
| 119 |
class="ct-btn-start-repition flex-1 uppercase text-lg max-sm:text-base tracking-wider p-4 border-b-2 active:border-b-0 active:border-t-2 active:border-green-500 border-green-800 transition-all rounded-xl bg-green-600 text-white font-bold disabled:bg-amber-600 flex flex-col justify-center items-center gap-2"
|
| 120 |
onclick="startRepetition()">
|
|
|
|
| 124 |
</figure>
|
| 125 |
</button>
|
| 126 |
{% else %}
|
| 127 |
+
<a href="{% url 'cata_system:monitor_sesion' session_code=session.codigo_sesion %}" class="flex-1 w-fit">
|
| 128 |
<button
|
| 129 |
class="ct-btn-start-repition w-full uppercase text-lg max-sm:text-base tracking-wider p-4 border-b-2 active:border-b-0 active:border-t-2 active:border-orange-500 border-orange-800 transition-all rounded-xl bg-orange-600 text-white font-bold disabled:bg-amber-600 flex flex-col justify-center items-center gap-2">
|
| 130 |
Monitorear repetición
|
|
|
|
| 134 |
</button>
|
| 135 |
</a>
|
| 136 |
{% endif %}
|
|
|
|
| 137 |
<button
|
| 138 |
class="flex-1 uppercase text-lg cts-btn-general cts-btn-error btn-push flex flex-col justify-center items-center gap-2"
|
| 139 |
onclick="showWarningDialog('cts-warnig-dialog')">
|
tecnicas/views/sessions_management/session_monitor.py
CHANGED
|
@@ -7,7 +7,7 @@ from django.http import HttpRequest, JsonResponse
|
|
| 7 |
from django.shortcuts import render, redirect
|
| 8 |
from django.urls import reverse
|
| 9 |
from tecnicas.models import SesionSensorial
|
| 10 |
-
from tecnicas.controllers import MonitorEscalasController, MonitorRATAController, MonitorPFController, MonitorSortController
|
| 11 |
from tecnicas.utils import noValidTechnique
|
| 12 |
|
| 13 |
|
|
@@ -29,6 +29,10 @@ def sessionMonitor(req: HttpRequest, session_code: str):
|
|
| 29 |
controll_view = MonitorSortController(sensorial_session)
|
| 30 |
response = controll_view.controllGetResponse(request=req)
|
| 31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
else:
|
| 33 |
response = noValidTechnique(
|
| 34 |
params={
|
|
@@ -89,6 +93,17 @@ def sessionMonitor(req: HttpRequest, session_code: str):
|
|
| 89 |
response = controll_view.controlGetResponse(
|
| 90 |
request=req, error="No se ha definido la acción a realizar")
|
| 91 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 92 |
else:
|
| 93 |
response = noValidTechnique(
|
| 94 |
params={
|
|
|
|
| 7 |
from django.shortcuts import render, redirect
|
| 8 |
from django.urls import reverse
|
| 9 |
from tecnicas.models import SesionSensorial
|
| 10 |
+
from tecnicas.controllers import MonitorEscalasController, MonitorRATAController, MonitorPFController, MonitorSortController, MonitorNappingController
|
| 11 |
from tecnicas.utils import noValidTechnique
|
| 12 |
|
| 13 |
|
|
|
|
| 29 |
controll_view = MonitorSortController(sensorial_session)
|
| 30 |
response = controll_view.controllGetResponse(request=req)
|
| 31 |
|
| 32 |
+
elif use_techinique == "napping":
|
| 33 |
+
controll_view = MonitorNappingController(sensorial_session)
|
| 34 |
+
response = controll_view.controllGetResponse(request=req)
|
| 35 |
+
|
| 36 |
else:
|
| 37 |
response = noValidTechnique(
|
| 38 |
params={
|
|
|
|
| 93 |
response = controll_view.controlGetResponse(
|
| 94 |
request=req, error="No se ha definido la acción a realizar")
|
| 95 |
|
| 96 |
+
elif use_techinique == "napping":
|
| 97 |
+
controll_view = MonitorNappingController(sensorial_session)
|
| 98 |
+
action = req.POST["action"]
|
| 99 |
+
|
| 100 |
+
if action == "finish_session":
|
| 101 |
+
response = controll_view.controllPostFinishSession(
|
| 102 |
+
request=req)
|
| 103 |
+
else:
|
| 104 |
+
response = controll_view.controlGetResponse(
|
| 105 |
+
request=req, error="No se ha definido la acción a realizar")
|
| 106 |
+
|
| 107 |
else:
|
| 108 |
response = noValidTechnique(
|
| 109 |
params={
|