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

Ingreso a init sesion con Napping

Browse files
tecnicas/controllers/__init__.py CHANGED
@@ -52,6 +52,7 @@ from .views_controller.sessions_tester.init_session.init_session_escalas_control
52
  from .views_controller.sessions_tester.init_session.init_session_rata_controller import InitSessionRATAController
53
  from .views_controller.sessions_tester.init_session.init_session_pf_controller import InitSessionPFController
54
  from .views_controller.sessions_tester.init_session.init_session_sort_controller import InitSessionSortController
 
55
 
56
  from .views_controller.vocabulary_manage.create_vocabulary_controller import CreateVocabularyController
57
  from .views_controller.vocabulary_manage.list_vocabulary_controller import ListVocabularyController
 
52
  from .views_controller.sessions_tester.init_session.init_session_rata_controller import InitSessionRATAController
53
  from .views_controller.sessions_tester.init_session.init_session_pf_controller import InitSessionPFController
54
  from .views_controller.sessions_tester.init_session.init_session_sort_controller import InitSessionSortController
55
+ from .views_controller.sessions_tester.init_session.init_session_napping_controller import InitSessionNappingController
56
 
57
  from .views_controller.vocabulary_manage.create_vocabulary_controller import CreateVocabularyController
58
  from .views_controller.vocabulary_manage.list_vocabulary_controller import ListVocabularyController
tecnicas/controllers/views_controller/sessions_tester/init_session/init_session_napping_controller.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from django.http import HttpRequest
2
+ from django.shortcuts import render, redirect
3
+ from django.urls import reverse
4
+ from tecnicas.models import Participacion
5
+ from tecnicas.controllers import ParticipacionController
6
+ from .init_session_controller import InitSessionController
7
+
8
+
9
+ class InitSessionNappingController(InitSessionController):
10
+ def __init__(self, sensorial_session, user_tester):
11
+ super().__init__(sensorial_session, user_tester)
12
+ self.current_direction = "tecnicas/forms_tester/init_test_napping.html"
13
+ self.sort_direction = "cata_system:session_napping"
14
+
15
+ def controllGet(self, request: HttpRequest):
16
+ self.context = {
17
+ "session": self.session,
18
+ "type_technique": "napping",
19
+ }
20
+
21
+ if self.session.tecnica.repeticion == 1:
22
+ self.context["status"] = "En esta sesión se usará Napping"
23
+ else:
24
+ self.context["status"] = "Se uso Napping puro en la última sesión"
25
+
26
+ if "error" in request.GET:
27
+ self.context["error"] = request.GET["error"]
28
+
29
+ return render(request, self.current_direction, self.context)
30
+
31
+ def isEndedSession(self):
32
+ pass
tecnicas/controllers/views_controller/sessions_tester/login_session_tester_controller.py CHANGED
@@ -39,6 +39,7 @@ class LoginSessionTesterController():
39
  tecnica=self.session.tecnica, catador=self.tester)
40
  context["error"] = "Usted ya esta dentro de la sesión"
41
  return render(request, self.current_direcction, context)
 
42
  except Participacion.DoesNotExist:
43
  with transaction.atomic():
44
  code_session = self.session.codigo_sesion
@@ -66,7 +67,7 @@ class LoginSessionTesterController():
66
  context["error"] = "Ya no es posible ingresar a la sesión"
67
  return render(request, self.current_direcction, context)
68
 
69
- def validateEntryRATA(self, request: HttpRequest):
70
  context = {}
71
  if not self.session.activo:
72
  context["error"] = "La sesión no está activa actualmente"
@@ -98,7 +99,7 @@ class LoginSessionTesterController():
98
  context["error"] = "Imposible acceder a esta sesión"
99
  return render(request, self.current_direcction, context)
100
 
101
- def validateEntrySort(self, request: HttpRequest):
102
  context = {}
103
  if not self.session.activo:
104
  context["error"] = "La sesión no está activa actualmente"
@@ -143,6 +144,3 @@ class LoginSessionTesterController():
143
  else:
144
  context["error"] = "Ya no es posible ingresar a la sesión"
145
  return render(request, self.current_direcction, context)
146
-
147
- def validateEntryPF(self, request=HttpRequest):
148
- return self.validateEntryEscalas(request=request)
 
39
  tecnica=self.session.tecnica, catador=self.tester)
40
  context["error"] = "Usted ya esta dentro de la sesión"
41
  return render(request, self.current_direcction, context)
42
+
43
  except Participacion.DoesNotExist:
44
  with transaction.atomic():
45
  code_session = self.session.codigo_sesion
 
67
  context["error"] = "Ya no es posible ingresar a la sesión"
68
  return render(request, self.current_direcction, context)
69
 
70
+ def validateEntryRataCata(self, request: HttpRequest):
71
  context = {}
72
  if not self.session.activo:
73
  context["error"] = "La sesión no está activa actualmente"
 
99
  context["error"] = "Imposible acceder a esta sesión"
100
  return render(request, self.current_direcction, context)
101
 
102
+ def validateEntryLimitTesters(self, request: HttpRequest):
103
  context = {}
104
  if not self.session.activo:
105
  context["error"] = "La sesión no está activa actualmente"
 
144
  else:
145
  context["error"] = "Ya no es posible ingresar a la sesión"
146
  return render(request, self.current_direcction, context)
 
 
 
tecnicas/templates/tecnicas/forms_tester/init_test_napping.html ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {% extends 'tecnicas/layouts/base.html' %}
2
+ {% load static %}
3
+
4
+ {% block title %}Detalles Sesion{% endblock %}
5
+
6
+ {% block content %}
7
+ <article class="cts-container-main">
8
+ <article class="cts-wrap-content text-black max-w-4xl">
9
+ <header class="text-center flex-row w-full flex justify-around items-center flex-wrap gap-10">
10
+ <h1 class="rounded-xl font-bold text-2xl bg-surface-ligt p-4 flex-1">
11
+ Panel principal de Catadores
12
+ </h1>
13
+ </header>
14
+
15
+ <article>
16
+ <p class="text-2xl font-medium text-center bg-surface-sweet p-4 rounded-lg">
17
+ Información sobre la sesión en la que participa
18
+ </p>
19
+ </article>
20
+
21
+ {% if error %}
22
+ {% include "../components/error-message.html" with message=error %}
23
+ {% endif %}
24
+ {% if message %}
25
+ {% include "../components/error-message.html" with message=message %}
26
+ {% endif %}
27
+ <hr>
28
+
29
+ <article class="rounded-xl grid grid-cols-1 gap-3 text-center grid grid-cols-2">
30
+ <section class="bg-surface-card col-span-2 p-4 rounded-2xl flex max-sm:flex-col justify-center gap-2">
31
+ <p class="text-xl font-bold">
32
+ Código:
33
+ </p>
34
+ <p class="font-sans text-xl font-normal">
35
+ {{ session.codigo_sesion }}
36
+ </p>
37
+ </section>
38
+
39
+ <section class="bg-surface-card col-span-2 p-4 rounded-2xl">
40
+ <p class="text-xl font-bold">
41
+ {% if session.nombre_sesion %}
42
+ {{ session.nombre_sesion }}
43
+ {% else %}
44
+ Sin nombre
45
+ {% endif %}
46
+ </p>
47
+ </section>
48
+
49
+ <section class="bg-surface-card p-4 rounded-2xl flex max-sm:flex-col justify-center gap-2">
50
+ <p class="text-xl font-medium">
51
+ Esta sesión usa la técnica <span class="uppercase">{{ session.tecnica.tipo_tecnica }}</span>
52
+ </p>
53
+ </section>
54
+
55
+ <section class="bg-surface-card p-4 rounded-2xl flex max-sm:flex-col justify-center gap-2">
56
+ <p class="text-xl font-medium">
57
+ Sesión Única
58
+ </p>
59
+ </section>
60
+
61
+ <section class="bg-surface-card col-span-2 p-4 rounded-2xl">
62
+ <p class="text-xl">
63
+ {{ session.tecnica.instrucciones }}
64
+ </p>
65
+ </section>
66
+
67
+ <section class="bg-surface-card col-span-2 p-4 rounded-2xl">
68
+ <p class="text-xl">
69
+ {{ status }}
70
+ </p>
71
+ </section>
72
+ </article>
73
+
74
+ <hr>
75
+
76
+ <article class="flex flex-wrap gap-10">
77
+ {% if has_ended %}
78
+ <div
79
+ class="text-2xl font-semibold flex-1 cts-btn-secondary p-4 flex justify-center items-center rounded-lg select-none">
80
+ <p class=" text-black">Finalizaste la sesión</p>
81
+ </div>
82
+ {% else %}
83
+ <button
84
+ class="ct-btn-start-repition flex-1 uppercase text-lg tracking-wider cts-btn-general cts-btn-primary btn-push flex flex-col justify-center items-center gap-2"
85
+ onclick="startTest()">
86
+ Iniciar técnica
87
+ <figure class="w-10">
88
+ <img src="{% static 'img/check.svg' %}" alt="flechas girando" class="invert">
89
+ </figure>
90
+ </button>
91
+ {% endif %}
92
+ <a href="{% url 'cata_system:catador_list_sessions' num_page=1 %}">
93
+ <button
94
+ class="flex-1 uppercase text-lg tracking-wider cts-btn-general cts-btn-error btn-push flex flex-col justify-center items-center gap-2">
95
+ Regresar a la lista
96
+ <figure class="w-10">
97
+ <img src="{% static 'img/exit.svg' %}" alt="bote de basura" class="invert">
98
+ </figure>
99
+ </button>
100
+ </a>
101
+ </article>
102
+
103
+ <form action="" method="post" class="hidden ct-action-form">
104
+ {% csrf_token %}
105
+ <input type="hidden" class="action-option" name="action" value="start_posting">
106
+ </form>
107
+ </article>
108
+ </article>
109
+ {% endblock %}
110
+
111
+ {% block extra_js %}
112
+ <script src="{% static 'js/start-tester-test.js' %}"></script>
113
+ {% endblock %}
tecnicas/views/tester_forms/init_tester_form.py CHANGED
@@ -1,6 +1,6 @@
1
  from django.http import HttpRequest, JsonResponse
2
  from django.shortcuts import render
3
- from tecnicas.controllers import InitSessionEscalasController, InitSessionRATAController, InitSessionPFController, InitSessionSortController
4
  from tecnicas.models import SesionSensorial
5
 
6
 
@@ -30,10 +30,15 @@ def initTesterForm(req: HttpRequest, code_sesion: str):
30
  sensorial_session=session, user_tester=req.user.user_catador)
31
  response = view_controller.controllGet(request=req)
32
 
 
 
 
 
 
33
  else:
34
  context = {
35
  "session": session,
36
- "error": "La técnica usada en esta sesión o ha sido implementada para ingresar a ella"
37
  }
38
  response = render(
39
  req, template_url, context)
 
1
  from django.http import HttpRequest, JsonResponse
2
  from django.shortcuts import render
3
+ from tecnicas.controllers import InitSessionEscalasController, InitSessionRATAController, InitSessionPFController, InitSessionSortController, InitSessionNappingController
4
  from tecnicas.models import SesionSensorial
5
 
6
 
 
30
  sensorial_session=session, user_tester=req.user.user_catador)
31
  response = view_controller.controllGet(request=req)
32
 
33
+ elif type_technique == "napping":
34
+ view_controller = InitSessionNappingController(
35
+ sensorial_session=session, user_tester=req.user.user_catador)
36
+ response = view_controller.controllGet(request=req)
37
+
38
  else:
39
  context = {
40
  "session": session,
41
+ "error": "La técnica usada en esta sesión no ha sido implementada para ingresar a ella"
42
  }
43
  response = render(
44
  req, template_url, context)
tecnicas/views/tester_forms/login_session.py CHANGED
@@ -27,17 +27,11 @@ def loginSessionTester(req: HttpRequest):
27
 
28
  type_technique = session.tecnica.tipo_tecnica.nombre_tecnica
29
 
30
- if type_technique == "escalas":
31
- response = login_controller.validateEntryEscalas(request=req)
32
 
33
- elif type_technique == "rata" or type_technique == "cata":
34
- response = login_controller.validateEntryRATA(request=req)
35
-
36
- elif type_technique == "perfil flash":
37
- response = login_controller.validateEntryRATA(request=req)
38
-
39
- elif type_technique == "sort":
40
- response = login_controller.validateEntrySort(request=req)
41
 
42
  else:
43
  context = {
 
27
 
28
  type_technique = session.tecnica.tipo_tecnica.nombre_tecnica
29
 
30
+ if type_technique in ["escalas", "perfil flash", "sort", "napping"]:
31
+ response = login_controller.validateEntryLimitTesters(request=req)
32
 
33
+ elif type_technique in ["rata", "cata"]:
34
+ response = login_controller.validateEntryRataCata(request=req)
 
 
 
 
 
 
35
 
36
  else:
37
  context = {