chartManD commited on
Commit
0c79799
·
1 Parent(s): 428b8f0

Inicio de sesion con Napping sin modalidaes

Browse files
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 == 0:
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 finished %}
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=sesion.codigo_sesion %}" class="flex-1 w-fit">
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={