chartManD commited on
Commit
b46f835
·
1 Parent(s): 7538ec5

Creacion de sesion con Sort y refactorizacion de codigo para crear sesiones

Browse files
tecnicas/controllers/__init__.py CHANGED
@@ -16,7 +16,12 @@ from .views_controller.create_session.panel_basic_controller import PanelBasicCo
16
  from .views_controller.create_session.panel_tags_controller import PanelTagsController
17
  from .views_controller.create_session.panel_codes_controller import PanelCodesController
18
  from .views_controller.create_session.panel_words_controller import PanelWordsController
19
- from .views_controller.create_session.panel_create_controller import PanelCreateController
 
 
 
 
 
20
 
21
  from .views_controller.session_management.details_controller import DetallesController
22
  from .views_controller.session_management.details_escala_controller import DetallesEscalasController
 
16
  from .views_controller.create_session.panel_tags_controller import PanelTagsController
17
  from .views_controller.create_session.panel_codes_controller import PanelCodesController
18
  from .views_controller.create_session.panel_words_controller import PanelWordsController
19
+
20
+ from .views_controller.create_session.panels_create.panel_create_escalas_controller import PanelCreateEscalasController
21
+ from .views_controller.create_session.panels_create.panel_create_rata_controller import PanelCreateRataController
22
+ from .views_controller.create_session.panels_create.panel_create_cata_controller import PanelCreateCataController
23
+ from .views_controller.create_session.panels_create.panel_create_pf_controller import PanelCreatePFController
24
+ from .views_controller.create_session.panels_create.panel_create_sort_controller import PanelCreateSortController
25
 
26
  from .views_controller.session_management.details_controller import DetallesController
27
  from .views_controller.session_management.details_escala_controller import DetallesEscalasController
tecnicas/controllers/views_controller/create_session/panel_basic_controller.py CHANGED
@@ -1,4 +1,4 @@
1
- from tecnicas.forms import SesionBasicForm, SesionBasicCATAForm, SesionBasicPFForm
2
  from django.http import HttpRequest
3
  from django.shortcuts import redirect, render
4
  from django.urls import reverse
@@ -13,6 +13,7 @@ class PanelBasicController():
13
  url_panel_basic = "tecnicas/create_sesion/conf-panel-basic.html"
14
  url_panel_basic_cata = "tecnicas/create_sesion/panel-basic-cata.html"
15
  url_panel_basic_pf = "tecnicas/create_sesion/panel-basic-pf.html"
 
16
 
17
  url_next_panel_tags = "cata_system:panel_configuracion_tags"
18
  url_next_panel_codes = "cata_system:panel_configuracion_codes"
@@ -164,7 +165,6 @@ class PanelBasicController():
164
  form = SesionBasicPFForm(request.POST)
165
 
166
  if form.is_valid():
167
- print(form.cleaned_data)
168
  values = {}
169
  for name, value in form.cleaned_data.items():
170
  values[name] = value
@@ -189,4 +189,23 @@ class PanelBasicController():
189
  }
190
 
191
  return render(
192
- request, PanelBasicController.url_panel_basic_pf, view_context)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from tecnicas.forms import SesionBasicForm, SesionBasicCATAForm, SesionBasicPFForm, SesionBasicSortForm
2
  from django.http import HttpRequest
3
  from django.shortcuts import redirect, render
4
  from django.urls import reverse
 
13
  url_panel_basic = "tecnicas/create_sesion/conf-panel-basic.html"
14
  url_panel_basic_cata = "tecnicas/create_sesion/panel-basic-cata.html"
15
  url_panel_basic_pf = "tecnicas/create_sesion/panel-basic-pf.html"
16
+ url_panel_basic_sort = "tecnicas/create_sesion/panel-basic-sort.html"
17
 
18
  url_next_panel_tags = "cata_system:panel_configuracion_tags"
19
  url_next_panel_codes = "cata_system:panel_configuracion_codes"
 
165
  form = SesionBasicPFForm(request.POST)
166
 
167
  if form.is_valid():
 
168
  values = {}
169
  for name, value in form.cleaned_data.items():
170
  values[name] = value
 
189
  }
190
 
191
  return render(
192
+ request, PanelBasicController.url_panel_basic_sort, view_context)
193
+
194
+ @staticmethod
195
+ def controllPostSort(request: HttpRequest, name_tecnica: str):
196
+ form = SesionBasicSortForm(request.POST)
197
+
198
+ if form.is_valid():
199
+ values = {}
200
+ for name, value in form.cleaned_data.items():
201
+ values[name] = value
202
+
203
+ values["name_tecnica"] = name_tecnica
204
+ request.session['form_basic'] = values
205
+ response = redirect(
206
+ reverse(PanelBasicController.url_next_panel_codes))
207
+ else:
208
+ response = render(request, PanelBasicController.url_panel_basic_sort, {
209
+ "form_sesion": form, "error": "Información no valida"})
210
+
211
+ return response
tecnicas/controllers/views_controller/create_session/panel_codes_controller.py CHANGED
@@ -139,3 +139,27 @@ class PanelCodesController():
139
  context_codes_form["error"] = "error en los datos recibidos"
140
 
141
  return render(request, PanelCodesController.url_current_panel, context_codes_form)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  context_codes_form["error"] = "error en los datos recibidos"
140
 
141
  return render(request, PanelCodesController.url_current_panel, context_codes_form)
142
+
143
+ @staticmethod
144
+ def controllPostSort(request: HttpRequest):
145
+ codes = []
146
+ context_codes_form = {}
147
+
148
+ for name, value in request.POST.items():
149
+ if name.__contains__("producto_"):
150
+ codes.append(value)
151
+
152
+ form_codes = CodesForm(request.POST, codes=codes)
153
+
154
+ context_codes_form = {
155
+ "form_codes": form_codes,
156
+ "use_technique": "sort"
157
+ }
158
+
159
+ if form_codes.is_valid():
160
+ request.session["form_codes"] = codes
161
+ return redirect(reverse(PanelCodesController.url_create_session))
162
+ else:
163
+ context_codes_form["error"] = "error en los datos recibidos"
164
+
165
+ return render(request, PanelCodesController.url_current_panel, context_codes_form)
tecnicas/controllers/views_controller/create_session/panels_create/panel_create_cata_controller.py ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .panel_create_controller import PanelCreateController
2
+ from django.http import HttpRequest, JsonResponse
3
+ from django.db import transaction
4
+ from tecnicas.models import EsVocabulario, Tecnica, TipoTecnica, EstiloPalabra, EsAtributo, Vocabulario, Palabra, SesionSensorial, Producto
5
+ from tecnicas.utils import deleteDataSession, general_error
6
+
7
+
8
+ class PanelCreateCataController(PanelCreateController):
9
+ def __init__(self):
10
+ super().__init__()
11
+
12
+ @staticmethod
13
+ def controllPost(request: HttpRequest):
14
+ if request.POST.get('action') == 'create_session':
15
+ if not request.session.get("form_codes") or not request.session.get("form_words"):
16
+ deleteDataSession(request)
17
+ return general_error("No se ha especificado información necesaria para la creación de la sesión, por favor, vuelve a intentarlo")
18
+ try:
19
+ with transaction.atomic():
20
+ # //////////////////////////// #
21
+ #
22
+ # First step: Create technique #
23
+ #
24
+ # //////////////////////////// #
25
+ data_basic = request.session["form_basic"]
26
+ data_basic["numero_catadores"] = 0
27
+ data_basic["numero_repeticiones"] = 1
28
+
29
+ technique = Tecnica.objects.create(
30
+ tipo_tecnica=TipoTecnica.objects.get(
31
+ nombre_tecnica=data_basic["name_tecnica"]),
32
+ id_estilo=EstiloPalabra.objects.get(
33
+ id=data_basic["estilo_palabras"]),
34
+ repeticiones_max=data_basic["numero_repeticiones"] or 1,
35
+ limite_catadores=data_basic["numero_catadores"],
36
+ instrucciones=data_basic["instrucciones"] or "Espere instrucciones del Presentador",
37
+ )
38
+
39
+ if not technique:
40
+ raise ValueError("Error al guardar la técnica")
41
+
42
+ # ////////////////////////////////////////////// #
43
+ #
44
+ # Second step: Create productos with their codes #
45
+ #
46
+ # ////////////////////////////////////////////// #
47
+ codes = request.session["form_codes"]
48
+
49
+ if not codes:
50
+ raise ValueError("No hay códigos de productos")
51
+
52
+ products_without_save = []
53
+ for code in codes:
54
+ product = Producto(
55
+ codigoProducto=code,
56
+ id_tecnica=technique
57
+ )
58
+ products_without_save.append(product)
59
+
60
+ Producto.objects.bulk_create(products_without_save)
61
+
62
+ # /////////////////////////////////////////////////////// #
63
+ #
64
+ # Third step: Create relations technique with Words Style #
65
+ #
66
+ # /////////////////////////////////////////////////////// #
67
+ style_words = technique.id_estilo.nombre_estilo
68
+
69
+ if style_words == "atributos":
70
+ raw_ids_words = request.session["form_words"]
71
+ ids_words = [int(id_w) for id_w in raw_ids_words]
72
+
73
+ words = Palabra.objects.filter(id__in=ids_words)
74
+
75
+ style_atribute = EsAtributo.objects.create(
76
+ id_tecnica=technique
77
+ )
78
+
79
+ if not style_atribute:
80
+ raise ValueError(
81
+ "Error al intentar relacionar las palabras con la técnica")
82
+
83
+ style_atribute.palabras.set(words)
84
+
85
+ elif style_words == "vocabulario":
86
+ name_vocabulary = request.session["form_words"]
87
+ try:
88
+ vocabulary = Vocabulario.objects.get(
89
+ nombre_vocabulario=name_vocabulary)
90
+ except Vocabulario.DoesNotExist:
91
+ raise ValueError("Vocabulario no encontrado")
92
+
93
+ es_vocabulary = EsVocabulario.objects.create(
94
+ id_tecnica=technique,
95
+ id_vocabulario=vocabulary
96
+ )
97
+ if not es_vocabulary:
98
+ raise ValueError(
99
+ "Error al intentar relacionar el vocabulario con la técnica")
100
+
101
+ else:
102
+ raise ValueError("Estilo de palabas no permitido")
103
+
104
+ # //////////////////////////////////////////////////////// #
105
+ #
106
+ # Fourth step: Create session and relat with the technique #
107
+ #
108
+ # //////////////////////////////////////////////////////// #
109
+ session = SesionSensorial.objects.create(
110
+ nombre_sesion=data_basic["nombre_sesion"] if data_basic["nombre_sesion"] != "" else None,
111
+ tecnica=technique,
112
+ creadoPor=request.user.user_presentador
113
+ )
114
+
115
+ if not session:
116
+ raise ValueError("Error al crear sesion sensorial")
117
+
118
+ context = {
119
+ "message": "sesión creada",
120
+ "data": {
121
+ "codigo_sesion": session.codigo_sesion,
122
+ "nombre_sesion": session.nombre_sesion
123
+ }
124
+ }
125
+
126
+ # ////////////////////////////////// #
127
+ #
128
+ # Final step: Delete date en session #
129
+ #
130
+ # ////////////////////////////////// #
131
+ deleteDataSession(request)
132
+ return JsonResponse(context)
133
+
134
+ except ValueError as e:
135
+ return general_error(f"Error: {e}")
136
+ else:
137
+ return general_error("No se ha establecido acción")
tecnicas/controllers/views_controller/create_session/panels_create/panel_create_controller.py ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from django.http import JsonResponse, HttpRequest
2
+ from django.shortcuts import render
3
+
4
+ class PanelCreateController():
5
+ url_template = 'tecnicas/create_sesion/creating_session.html'
6
+
7
+ def __init__(self):
8
+ pass
9
+
10
+ @staticmethod
11
+ def controllGet(request: HttpRequest):
12
+ return render(
13
+ request, PanelCreateController.url_template)
14
+
15
+ @staticmethod
16
+ def controllPost(request: HttpRequest):
17
+ return JsonResponse({"message": "Método no permitido"})
tecnicas/controllers/views_controller/create_session/{panel_create_controller.py → panels_create/panel_create_escalas_controller.py} RENAMED
@@ -1,23 +1,17 @@
 
1
  from django.http import HttpRequest, JsonResponse
2
  from django.db import transaction
3
- from django.shortcuts import render
4
- from tecnicas.utils import general_error
5
- from tecnicas.models import EsAtributo, EsVocabulario, Vocabulario, Tecnica, TipoTecnica, EstiloPalabra, Producto, Palabra, SesionSensorial, Escala, TipoEscala, EtiquetasEscala
6
- from tecnicas.controllers import TecnicaController, EscalaController, ProductosController, OrdenesController, EstiloPalabrasController, PalabrasController, SesionController
7
- from tecnicas.utils import deleteDataSession
8
 
9
 
10
- class PanelCreateController():
11
  def __init__(self):
12
- pass
13
 
14
  @staticmethod
15
- def controllGetEscalas(request: HttpRequest):
16
- return render(
17
- request, 'tecnicas/create_sesion/creating_session.html')
18
-
19
- @staticmethod
20
- def controllPostEscalas(request: HttpRequest):
21
  if request.POST.get('action') == 'create_session':
22
  if not request.session.get("form_tags") or not request.session.get("form_codes") or not request.session.get("form_words"):
23
  deleteDataSession(request)
@@ -173,368 +167,3 @@ class PanelCreateController():
173
  return general_error(f"Error: {e}")
174
  else:
175
  return general_error("No se ha establecido acción")
176
-
177
- @staticmethod
178
- def controllPostRATA(request: HttpRequest):
179
- if request.POST.get('action') == 'create_session':
180
- if not request.session.get("form_tags") or not request.session.get("form_codes") or not request.session.get("form_words"):
181
- deleteDataSession(request)
182
- return general_error("No se ha especificado información necesaria para la creación de la sesión, por favor, vuelve a intentarlo")
183
- try:
184
- with transaction.atomic():
185
- # ////////////////////////////////////////////////////// #
186
- #
187
- # First step: Create technique and scale with their tags #
188
- #
189
- # ////////////////////////////////////////////////////// #
190
- data_basic = request.session["form_basic"]
191
- data_basic["numero_catadores"] = 0
192
- data_basic["numero_repeticiones"] = 1
193
-
194
- technique = Tecnica.objects.create(
195
- tipo_tecnica=TipoTecnica.objects.get(
196
- nombre_tecnica=data_basic["name_tecnica"]),
197
- id_estilo=EstiloPalabra.objects.get(
198
- id=data_basic["estilo_palabras"]),
199
- repeticiones_max=data_basic["numero_repeticiones"] or 1,
200
- limite_catadores=data_basic["numero_catadores"],
201
- instrucciones=data_basic["instrucciones"] or "Espere instrucciones del Presentador",
202
- )
203
-
204
- if not technique:
205
- raise ValueError("Error al guardar la técnica")
206
-
207
- data_scale = {
208
- "id_scale": data_basic["tipo_escala"],
209
- "size": data_basic["tamano_escala"],
210
- "technique": technique
211
- }
212
-
213
- controllerScale = EscalaController(data=data_scale)
214
-
215
- scale = controllerScale.saveScale()
216
- if isinstance(scale, dict):
217
- raise ValueError(scale["error"])
218
-
219
- dict_tags = request.session["form_tags"]
220
- saved_related_tags = controllerScale.realteTags(dict_tags)
221
- if "error" in saved_related_tags:
222
- raise ValueError(saved_related_tags["error"])
223
-
224
- # ////////////////////////////////////////////// #
225
- #
226
- # Second step: Create productos with their codes #
227
- #
228
- # ////////////////////////////////////////////// #
229
- codes = request.session["form_codes"]
230
-
231
- if not codes:
232
- raise ValueError("No hay códigos de productos")
233
-
234
- products_without_save = []
235
- for code in codes:
236
- product = Producto(
237
- codigoProducto=code,
238
- id_tecnica=technique
239
- )
240
- products_without_save.append(product)
241
-
242
- Producto.objects.bulk_create(products_without_save)
243
-
244
- # /////////////////////////////////////////////////////// #
245
- #
246
- # Third step: Create relations technique with Words Style #
247
- #
248
- # /////////////////////////////////////////////////////// #
249
- style_words = technique.id_estilo.nombre_estilo
250
-
251
- if style_words == "atributos":
252
- raw_ids_words = request.session["form_words"]
253
- ids_words = [int(id_w) for id_w in raw_ids_words]
254
-
255
- words = Palabra.objects.filter(id__in=ids_words)
256
-
257
- style_atribute = EsAtributo.objects.create(
258
- id_tecnica=technique
259
- )
260
-
261
- if not style_atribute:
262
- raise ValueError(
263
- "Error al intentar relacionar las palabras con la técnica")
264
-
265
- style_atribute.palabras.set(words)
266
-
267
- elif style_words == "vocabulario":
268
- name_vocabulary = request.session["form_words"]
269
- try:
270
- vocabulary = Vocabulario.objects.get(
271
- nombre_vocabulario=name_vocabulary)
272
- except Vocabulario.DoesNotExist:
273
- raise ValueError("Vocabulario no encontrado")
274
-
275
- es_vocabulary = EsVocabulario.objects.create(
276
- id_tecnica=technique,
277
- id_vocabulario=vocabulary
278
- )
279
- if not es_vocabulary:
280
- raise ValueError(
281
- "Error al intentar relacionar el vocabulario con la técnica")
282
-
283
- else:
284
- raise ValueError("Estilo de palabas no permitido")
285
-
286
- # //////////////////////////////////////////////////////// #
287
- #
288
- # Fourth step: Create session and relat with the technique #
289
- #
290
- # //////////////////////////////////////////////////////// #
291
- session = SesionSensorial.objects.create(
292
- nombre_sesion=data_basic["nombre_sesion"] if data_basic["nombre_sesion"] != "" else "",
293
- tecnica=technique,
294
- creadoPor=request.user.user_presentador
295
- )
296
-
297
- if not session:
298
- raise ValueError("Error al crear sesion sensorial")
299
-
300
- context = {
301
- "message": "sesión creada",
302
- "data": {
303
- "codigo_sesion": session.codigo_sesion,
304
- "nombre_sesion": session.nombre_sesion
305
- }
306
- }
307
-
308
- # ////////////////////////////////// #
309
- #
310
- # Final step: Delete date en session #
311
- #
312
- # ////////////////////////////////// #
313
-
314
- deleteDataSession(request)
315
- return JsonResponse(context)
316
- except ValueError as e:
317
- return general_error(f"Error: {e}")
318
- else:
319
- return general_error("No se ha establecido acción")
320
-
321
- @staticmethod
322
- def controllPostCATA(request: HttpRequest):
323
- if request.POST.get('action') == 'create_session':
324
- if not request.session.get("form_codes") or not request.session.get("form_words"):
325
- deleteDataSession(request)
326
- return general_error("No se ha especificado información necesaria para la creación de la sesión, por favor, vuelve a intentarlo")
327
- try:
328
- with transaction.atomic():
329
- # //////////////////////////// #
330
- #
331
- # First step: Create technique #
332
- #
333
- # //////////////////////////// #
334
- data_basic = request.session["form_basic"]
335
- data_basic["numero_catadores"] = 0
336
- data_basic["numero_repeticiones"] = 1
337
-
338
- technique = Tecnica.objects.create(
339
- tipo_tecnica=TipoTecnica.objects.get(
340
- nombre_tecnica=data_basic["name_tecnica"]),
341
- id_estilo=EstiloPalabra.objects.get(
342
- id=data_basic["estilo_palabras"]),
343
- repeticiones_max=data_basic["numero_repeticiones"] or 1,
344
- limite_catadores=data_basic["numero_catadores"],
345
- instrucciones=data_basic["instrucciones"] or "Espere instrucciones del Presentador",
346
- )
347
-
348
- if not technique:
349
- raise ValueError("Error al guardar la técnica")
350
-
351
- # ////////////////////////////////////////////// #
352
- #
353
- # Second step: Create productos with their codes #
354
- #
355
- # ////////////////////////////////////////////// #
356
- codes = request.session["form_codes"]
357
-
358
- if not codes:
359
- raise ValueError("No hay códigos de productos")
360
-
361
- products_without_save = []
362
- for code in codes:
363
- product = Producto(
364
- codigoProducto=code,
365
- id_tecnica=technique
366
- )
367
- products_without_save.append(product)
368
-
369
- Producto.objects.bulk_create(products_without_save)
370
-
371
- # /////////////////////////////////////////////////////// #
372
- #
373
- # Third step: Create relations technique with Words Style #
374
- #
375
- # /////////////////////////////////////////////////////// #
376
- style_words = technique.id_estilo.nombre_estilo
377
-
378
- if style_words == "atributos":
379
- raw_ids_words = request.session["form_words"]
380
- ids_words = [int(id_w) for id_w in raw_ids_words]
381
-
382
- words = Palabra.objects.filter(id__in=ids_words)
383
-
384
- style_atribute = EsAtributo.objects.create(
385
- id_tecnica=technique
386
- )
387
-
388
- if not style_atribute:
389
- raise ValueError(
390
- "Error al intentar relacionar las palabras con la técnica")
391
-
392
- style_atribute.palabras.set(words)
393
-
394
- elif style_words == "vocabulario":
395
- name_vocabulary = request.session["form_words"]
396
- try:
397
- vocabulary = Vocabulario.objects.get(
398
- nombre_vocabulario=name_vocabulary)
399
- except Vocabulario.DoesNotExist:
400
- raise ValueError("Vocabulario no encontrado")
401
-
402
- es_vocabulary = EsVocabulario.objects.create(
403
- id_tecnica=technique,
404
- id_vocabulario=vocabulary
405
- )
406
- if not es_vocabulary:
407
- raise ValueError(
408
- "Error al intentar relacionar el vocabulario con la técnica")
409
-
410
- else:
411
- raise ValueError("Estilo de palabas no permitido")
412
-
413
- # //////////////////////////////////////////////////////// #
414
- #
415
- # Fourth step: Create session and relat with the technique #
416
- #
417
- # //////////////////////////////////////////////////////// #
418
- session = SesionSensorial.objects.create(
419
- nombre_sesion=data_basic["nombre_sesion"] if data_basic["nombre_sesion"] != "" else None,
420
- tecnica=technique,
421
- creadoPor=request.user.user_presentador
422
- )
423
-
424
- if not session:
425
- raise ValueError("Error al crear sesion sensorial")
426
-
427
- context = {
428
- "message": "sesión creada",
429
- "data": {
430
- "codigo_sesion": session.codigo_sesion,
431
- "nombre_sesion": session.nombre_sesion
432
- }
433
- }
434
-
435
- # ////////////////////////////////// #
436
- #
437
- # Final step: Delete date en session #
438
- #
439
- # ////////////////////////////////// #
440
- deleteDataSession(request)
441
- return JsonResponse(context)
442
-
443
- except ValueError as e:
444
- return general_error(f"Error: {e}")
445
- else:
446
- return general_error("No se ha establecido acción")
447
-
448
- @staticmethod
449
- def controllPostPF(request: HttpRequest):
450
- if request.POST.get('action') == 'create_session':
451
- if not request.session.get("form_codes"):
452
- deleteDataSession(request)
453
- return general_error("No se ha especificado información necesaria para la creación de la sesión, por favor, vuelve a intentarlo")
454
- try:
455
- with transaction.atomic():
456
- # ////////////////////////////////////// #
457
- #
458
- # First step: Create technique and scale #
459
- #
460
- # ////////////////////////////////////// #
461
- data_basic = request.session["form_basic"]
462
- phases_before_reptition = 2
463
-
464
- technique = Tecnica.objects.create(
465
- tipo_tecnica=TipoTecnica.objects.get(
466
- nombre_tecnica=data_basic["name_tecnica"]),
467
- id_estilo=EstiloPalabra.objects.get(
468
- nombre_estilo="vocabulario"),
469
- repeticiones_max=data_basic["numero_repeticiones"] + phases_before_reptition,
470
- limite_catadores=data_basic["numero_catadores"],
471
- instrucciones=data_basic["instrucciones"] or "Espere instrucciones del Analista",
472
- )
473
-
474
- if not technique:
475
- raise ValueError("Error al guardar la técnica")
476
-
477
- created_scale = Escala.objects.create(
478
- id_tipo_escala=TipoEscala.objects.get(
479
- nombre_escala="estructurada"),
480
- longitud=data_basic["numero_productos"],
481
- tecnica=technique
482
- )
483
-
484
- if not created_scale:
485
- raise ValueError("No se ha podido crear la escala")
486
-
487
- # ////////////////////////////////////////////// #
488
- #
489
- # Second step: Create productos with their codes #
490
- #
491
- # ////////////////////////////////////////////// #
492
- codes = request.session["form_codes"]
493
-
494
- if not codes:
495
- raise ValueError("No hay códigos de productos")
496
-
497
- products_without_save = []
498
- for code in codes:
499
- product = Producto(
500
- codigoProducto=code,
501
- id_tecnica=technique
502
- )
503
- products_without_save.append(product)
504
-
505
- Producto.objects.bulk_create(products_without_save)
506
-
507
- # /////////////////////////////////////////////////////// #
508
- #
509
- # Third step: Create session and relat with the technique #
510
- #
511
- # /////////////////////////////////////////////////////// #
512
- session = SesionSensorial.objects.create(
513
- nombre_sesion=data_basic["nombre_sesion"] if data_basic["nombre_sesion"] != "" else None,
514
- tecnica=technique,
515
- creadoPor=request.user.user_presentador
516
- )
517
-
518
- if not session:
519
- raise ValueError("Error al crear sesion sensorial")
520
-
521
- context = {
522
- "message": "sesión creada",
523
- "data": {
524
- "codigo_sesion": session.codigo_sesion,
525
- "nombre_sesion": session.nombre_sesion
526
- }
527
- }
528
-
529
- # ////////////////////////////////// #
530
- #
531
- # Final step: Delete date en session #
532
- #
533
- # ////////////////////////////////// #
534
- deleteDataSession(request)
535
- return JsonResponse(context)
536
-
537
- except ValueError as e:
538
- return general_error(f"Error: {e}")
539
- else:
540
- return general_error("No se ha establecido acción")
 
1
+ from .panel_create_controller import PanelCreateController
2
  from django.http import HttpRequest, JsonResponse
3
  from django.db import transaction
4
+ from tecnicas.controllers import TecnicaController, EscalaController, ProductosController, OrdenesController, PalabrasController, EstiloPalabrasController, SesionController
5
+ from tecnicas.models import EsVocabulario, Vocabulario
6
+ from tecnicas.utils import deleteDataSession, general_error
 
 
7
 
8
 
9
+ class PanelCreateEscalasController(PanelCreateController):
10
  def __init__(self):
11
+ super().__init__()
12
 
13
  @staticmethod
14
+ def controllPost(request: HttpRequest):
 
 
 
 
 
15
  if request.POST.get('action') == 'create_session':
16
  if not request.session.get("form_tags") or not request.session.get("form_codes") or not request.session.get("form_words"):
17
  deleteDataSession(request)
 
167
  return general_error(f"Error: {e}")
168
  else:
169
  return general_error("No se ha establecido acción")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tecnicas/controllers/views_controller/create_session/panels_create/panel_create_pf_controller.py ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .panel_create_controller import PanelCreateController
2
+ from django.http import HttpRequest, JsonResponse
3
+ from django.db import transaction
4
+ from tecnicas.models import Tecnica, TipoTecnica, EstiloPalabra, SesionSensorial, Escala, TipoEscala, Producto
5
+ from tecnicas.utils import deleteDataSession, general_error
6
+
7
+
8
+ class PanelCreatePFController(PanelCreateController):
9
+ def __init__(self):
10
+ super().__init__()
11
+
12
+ @staticmethod
13
+ def controllPost(request: HttpRequest):
14
+ if request.POST.get('action') == 'create_session':
15
+ if not request.session.get("form_codes"):
16
+ deleteDataSession(request)
17
+ return general_error("No se ha especificado información necesaria para la creación de la sesión, por favor, vuelve a intentarlo")
18
+ try:
19
+ with transaction.atomic():
20
+ # ////////////////////////////////////// #
21
+ #
22
+ # First step: Create technique and scale #
23
+ #
24
+ # ////////////////////////////////////// #
25
+ data_basic = request.session["form_basic"]
26
+ phases_before_reptition = 2
27
+
28
+ technique = Tecnica.objects.create(
29
+ tipo_tecnica=TipoTecnica.objects.get(
30
+ nombre_tecnica=data_basic["name_tecnica"]),
31
+ id_estilo=EstiloPalabra.objects.get(
32
+ nombre_estilo="vocabulario"),
33
+ repeticiones_max=data_basic["numero_repeticiones"] +
34
+ phases_before_reptition,
35
+ limite_catadores=data_basic["numero_catadores"],
36
+ instrucciones=data_basic["instrucciones"] or "Espere instrucciones del Analista",
37
+ )
38
+
39
+ if not technique:
40
+ raise ValueError("Error al guardar la técnica")
41
+
42
+ created_scale = Escala.objects.create(
43
+ id_tipo_escala=TipoEscala.objects.get(
44
+ nombre_escala="estructurada"),
45
+ longitud=data_basic["numero_productos"],
46
+ tecnica=technique
47
+ )
48
+
49
+ if not created_scale:
50
+ raise ValueError("No se ha podido crear la escala")
51
+
52
+ # ////////////////////////////////////////////// #
53
+ #
54
+ # Second step: Create productos with their codes #
55
+ #
56
+ # ////////////////////////////////////////////// #
57
+ codes = request.session["form_codes"]
58
+
59
+ if not codes:
60
+ raise ValueError("No hay códigos de productos")
61
+
62
+ products_without_save = []
63
+ for code in codes:
64
+ product = Producto(
65
+ codigoProducto=code,
66
+ id_tecnica=technique
67
+ )
68
+ products_without_save.append(product)
69
+
70
+ Producto.objects.bulk_create(products_without_save)
71
+
72
+ # /////////////////////////////////////////////////////// #
73
+ #
74
+ # Third step: Create session and relat with the technique #
75
+ #
76
+ # /////////////////////////////////////////////////////// #
77
+ session = SesionSensorial.objects.create(
78
+ nombre_sesion=data_basic["nombre_sesion"] if data_basic["nombre_sesion"] != "" else None,
79
+ tecnica=technique,
80
+ creadoPor=request.user.user_presentador
81
+ )
82
+
83
+ if not session:
84
+ raise ValueError("Error al crear sesion sensorial")
85
+
86
+ context = {
87
+ "message": "sesión creada",
88
+ "data": {
89
+ "codigo_sesion": session.codigo_sesion,
90
+ "nombre_sesion": session.nombre_sesion
91
+ }
92
+ }
93
+
94
+ # ////////////////////////////////// #
95
+ #
96
+ # Final step: Delete date en session #
97
+ #
98
+ # ////////////////////////////////// #
99
+ deleteDataSession(request)
100
+ return JsonResponse(context)
101
+
102
+ except ValueError as e:
103
+ return general_error(f"Error: {e}")
104
+ else:
105
+ return general_error("No se ha establecido acción")
tecnicas/controllers/views_controller/create_session/panels_create/panel_create_rata_controller.py ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .panel_create_controller import PanelCreateController
2
+ from django.http import HttpRequest, JsonResponse
3
+ from django.db import transaction
4
+ from tecnicas.controllers import EscalaController
5
+ from tecnicas.models import EsVocabulario, Tecnica, TipoTecnica, EstiloPalabra, EsAtributo, Vocabulario, Palabra, SesionSensorial, Producto
6
+ from tecnicas.utils import deleteDataSession, general_error
7
+
8
+
9
+ class PanelCreateRataController(PanelCreateController):
10
+ def __init__(self):
11
+ super().__init__()
12
+
13
+ @staticmethod
14
+ def controllPost(request: HttpRequest):
15
+ if request.POST.get('action') == 'create_session':
16
+ if not request.session.get("form_tags") or not request.session.get("form_codes") or not request.session.get("form_words"):
17
+ deleteDataSession(request)
18
+ return general_error("No se ha especificado información necesaria para la creación de la sesión, por favor, vuelve a intentarlo")
19
+ try:
20
+ with transaction.atomic():
21
+ # ////////////////////////////////////////////////////// #
22
+ #
23
+ # First step: Create technique and scale with their tags #
24
+ #
25
+ # ////////////////////////////////////////////////////// #
26
+ data_basic = request.session["form_basic"]
27
+ data_basic["numero_catadores"] = 0
28
+ data_basic["numero_repeticiones"] = 1
29
+
30
+ technique = Tecnica.objects.create(
31
+ tipo_tecnica=TipoTecnica.objects.get(
32
+ nombre_tecnica=data_basic["name_tecnica"]),
33
+ id_estilo=EstiloPalabra.objects.get(
34
+ id=data_basic["estilo_palabras"]),
35
+ repeticiones_max=data_basic["numero_repeticiones"] or 1,
36
+ limite_catadores=data_basic["numero_catadores"],
37
+ instrucciones=data_basic["instrucciones"] or "Espere instrucciones del Presentador",
38
+ )
39
+
40
+ if not technique:
41
+ raise ValueError("Error al guardar la técnica")
42
+
43
+ data_scale = {
44
+ "id_scale": data_basic["tipo_escala"],
45
+ "size": data_basic["tamano_escala"],
46
+ "technique": technique
47
+ }
48
+
49
+ controllerScale = EscalaController(data=data_scale)
50
+
51
+ scale = controllerScale.saveScale()
52
+ if isinstance(scale, dict):
53
+ raise ValueError(scale["error"])
54
+
55
+ dict_tags = request.session["form_tags"]
56
+ saved_related_tags = controllerScale.realteTags(dict_tags)
57
+ if "error" in saved_related_tags:
58
+ raise ValueError(saved_related_tags["error"])
59
+
60
+ # ////////////////////////////////////////////// #
61
+ #
62
+ # Second step: Create productos with their codes #
63
+ #
64
+ # ////////////////////////////////////////////// #
65
+ codes = request.session["form_codes"]
66
+
67
+ if not codes:
68
+ raise ValueError("No hay códigos de productos")
69
+
70
+ products_without_save = []
71
+ for code in codes:
72
+ product = Producto(
73
+ codigoProducto=code,
74
+ id_tecnica=technique
75
+ )
76
+ products_without_save.append(product)
77
+
78
+ Producto.objects.bulk_create(products_without_save)
79
+
80
+ # /////////////////////////////////////////////////////// #
81
+ #
82
+ # Third step: Create relations technique with Words Style #
83
+ #
84
+ # /////////////////////////////////////////////////////// #
85
+ style_words = technique.id_estilo.nombre_estilo
86
+
87
+ if style_words == "atributos":
88
+ raw_ids_words = request.session["form_words"]
89
+ ids_words = [int(id_w) for id_w in raw_ids_words]
90
+
91
+ words = Palabra.objects.filter(id__in=ids_words)
92
+
93
+ style_atribute = EsAtributo.objects.create(
94
+ id_tecnica=technique
95
+ )
96
+
97
+ if not style_atribute:
98
+ raise ValueError(
99
+ "Error al intentar relacionar las palabras con la técnica")
100
+
101
+ style_atribute.palabras.set(words)
102
+
103
+ elif style_words == "vocabulario":
104
+ name_vocabulary = request.session["form_words"]
105
+ try:
106
+ vocabulary = Vocabulario.objects.get(
107
+ nombre_vocabulario=name_vocabulary)
108
+ except Vocabulario.DoesNotExist:
109
+ raise ValueError("Vocabulario no encontrado")
110
+
111
+ es_vocabulary = EsVocabulario.objects.create(
112
+ id_tecnica=technique,
113
+ id_vocabulario=vocabulary
114
+ )
115
+ if not es_vocabulary:
116
+ raise ValueError(
117
+ "Error al intentar relacionar el vocabulario con la técnica")
118
+
119
+ else:
120
+ raise ValueError("Estilo de palabas no permitido")
121
+
122
+ # //////////////////////////////////////////////////////// #
123
+ #
124
+ # Fourth step: Create session and relat with the technique #
125
+ #
126
+ # //////////////////////////////////////////////////////// #
127
+ session = SesionSensorial.objects.create(
128
+ nombre_sesion=data_basic["nombre_sesion"] if data_basic["nombre_sesion"] != "" else "",
129
+ tecnica=technique,
130
+ creadoPor=request.user.user_presentador
131
+ )
132
+
133
+ if not session:
134
+ raise ValueError("Error al crear sesion sensorial")
135
+
136
+ context = {
137
+ "message": "sesión creada",
138
+ "data": {
139
+ "codigo_sesion": session.codigo_sesion,
140
+ "nombre_sesion": session.nombre_sesion
141
+ }
142
+ }
143
+
144
+ # ////////////////////////////////// #
145
+ #
146
+ # Final step: Delete date en session #
147
+ #
148
+ # ////////////////////////////////// #
149
+
150
+ deleteDataSession(request)
151
+ return JsonResponse(context)
152
+ except ValueError as e:
153
+ return general_error(f"Error: {e}")
154
+ else:
155
+ return general_error("No se ha establecido acción")
tecnicas/controllers/views_controller/create_session/panels_create/panel_create_sort_controller.py ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .panel_create_controller import PanelCreateController
2
+ from django.http import HttpRequest, JsonResponse
3
+ from django.db import transaction
4
+ from tecnicas.models import Tecnica, TipoTecnica, EstiloPalabra, SesionSensorial, Producto
5
+ from tecnicas.utils import deleteDataSession, general_error
6
+
7
+
8
+ class PanelCreateSortController(PanelCreateController):
9
+ def __init__(self):
10
+ super().__init__()
11
+
12
+ @staticmethod
13
+ def controllPost(request: HttpRequest):
14
+ if request.POST.get('action') == 'create_session':
15
+ if not request.session.get("form_basic") or not request.session.get("form_codes"):
16
+ deleteDataSession(request)
17
+ return general_error("No se ha especificado información necesaria para la creación de la sesión, por favor, vuelve a intentarlo")
18
+ try:
19
+ with transaction.atomic():
20
+ # //////////////////////////// #
21
+ #
22
+ # First step: Create technique #
23
+ #
24
+ # //////////////////////////// #
25
+ data_basic = request.session["form_basic"]
26
+ data_basic["numero_catadores"] = data_basic["numero_catadores"] or 1
27
+ data_basic["numero_repeticiones"] = 1
28
+
29
+ technique = Tecnica.objects.create(
30
+ tipo_tecnica=TipoTecnica.objects.get(
31
+ nombre_tecnica=data_basic["name_tecnica"]),
32
+ id_estilo=EstiloPalabra.objects.get(
33
+ nombre_estilo="vocabulario"),
34
+ repeticiones_max=data_basic["numero_repeticiones"],
35
+ limite_catadores=data_basic["numero_catadores"],
36
+ instrucciones=data_basic["instrucciones"] or "Espere instrucciones del Presentador",
37
+ )
38
+
39
+ if not technique:
40
+ raise ValueError("Error al guardar la técnica")
41
+
42
+ # ////////////////////////////////////////////// #
43
+ #
44
+ # Second step: Create productos with their codes #
45
+ #
46
+ # ////////////////////////////////////////////// #
47
+ codes = request.session["form_codes"]
48
+
49
+ if not codes:
50
+ raise ValueError("No hay códigos de productos")
51
+
52
+ products_without_save = []
53
+ for code in codes:
54
+ product = Producto(
55
+ codigoProducto=code,
56
+ id_tecnica=technique
57
+ )
58
+ products_without_save.append(product)
59
+
60
+ Producto.objects.bulk_create(products_without_save)
61
+
62
+ # /////////////////////////////////////////////////////// #
63
+ #
64
+ # Third step: Create session and relat with the technique #
65
+ #
66
+ # /////////////////////////////////////////////////////// #
67
+ session = SesionSensorial.objects.create(
68
+ nombre_sesion=data_basic["nombre_sesion"] if data_basic["nombre_sesion"] != "" else None,
69
+ tecnica=technique,
70
+ creadoPor=request.user.user_presentador
71
+ )
72
+
73
+ if not session:
74
+ raise ValueError("Error al crear sesion sensorial")
75
+
76
+ context = {
77
+ "message": "sesión creada",
78
+ "data": {
79
+ "codigo_sesion": session.codigo_sesion,
80
+ "nombre_sesion": session.nombre_sesion
81
+ }
82
+ }
83
+
84
+ # ////////////////////////////////// #
85
+ #
86
+ # Final step: Delete date en session #
87
+ #
88
+ # ////////////////////////////////// #
89
+ deleteDataSession(request)
90
+ return JsonResponse(context)
91
+
92
+ except ValueError as e:
93
+ return general_error(f"Error: {e}")
94
+ else:
95
+ return general_error("No se ha establecido acción")
tecnicas/templates/tecnicas/create_sesion/panel-basic-sort.html ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {% extends 'tecnicas/layouts/base.html' %}
2
+ {% load static %}
3
+
4
+ {% block title %}Panel Configuracion{% endblock %}
5
+
6
+ {% block content %}
7
+ <article class="cts-container-main">
8
+ <article class="cts-wrap-content text-black">
9
+ <h1 class="text-center font-bold text-4xl">Panel de configuración</h1>
10
+
11
+ {% if error %}
12
+ {% include "../components/error-message.html" with message=error %}
13
+ {% endif %}
14
+ {% if message %}
15
+ {% include "../components/error-message.html" with message=message %}
16
+ {% endif %}
17
+
18
+ <form method="post" action="" class="space-y-4">
19
+ {% csrf_token %}
20
+ <article>
21
+ <h2 class="text-2xl mb-2 font-bold">Información Basica</h2>
22
+ <section class="flex justify-center items-center">
23
+ <label for="{{form_sesion.nombre_sesion.id_for_label}}"
24
+ class="text-lg flex flex-col items-center px-2 w-full font-medium tracking-wide mb-4">
25
+ <p class="tracking-normal text-xl font-bold">Nombre del proyecto:</p>
26
+ {{ form_sesion.nombre_sesion }}
27
+ </label>
28
+ </section>
29
+ <section class="flex flex-row flex-wrap justify-center gap-4">
30
+ <label for="{{ form_sesion.numero_productos.id_for_label }}"
31
+ class="text-lg flex flex-col items-center px-2 font-medium tracking-wide">
32
+ <p class="tracking-normal text-base font-bold">
33
+ Número de Productos:
34
+ </p>
35
+ {{ form_sesion.numero_productos }}
36
+ </label>
37
+ <label for="{{ form_sesion.numero_catadores.id_for_label }}"
38
+ class="text-lg flex flex-col items-center px-2 font-medium tracking-wide">
39
+ <p class="tracking-normal text-base font-bold">
40
+ Número de Catadores:
41
+ </p>
42
+ {{ form_sesion.numero_catadores }}
43
+ </label>
44
+ </section>
45
+ <section class="flex justify-center items-center mt-2">
46
+ <label for="{{form_sesion.instrucciones.id_for_label}}"
47
+ class="text-lg flex flex-col items-center px-2 w-full font-medium tracking-wide mb-4">
48
+ <p class="tracking-normal text-base font-bold">Instrucciones para la sesión:</p>
49
+ {{ form_sesion.instrucciones }}
50
+ </label>
51
+ </section>
52
+ </article>
53
+
54
+ <article class="w-full flex max-sm:flex-col flex-wrap items-center justify-center gap-4">
55
+ <button type="submit" class="cts-btn-general cts-btn-primary btn-push flex-1/4 w-full">
56
+ Continuar
57
+ </button>
58
+ <a href="{% url 'cata_system:seleccion_tecnica' %}" class="flex-1/4 w-full">
59
+ <button type="button" class="cts-btn-general cts-btn-error btn-push w-full">
60
+ Cancelar la creación
61
+ </button>
62
+ </a>
63
+ </article>
64
+ </form>
65
+ </article>
66
+ </article>
67
+ {% endblock %}
68
+
69
+ {% block extra_js %}
70
+ <script src="{% static 'js/panel-basic.js' %}"></script>
71
+ {% endblock %}
tecnicas/views/sessions_config/configuration_panel_basic.py CHANGED
@@ -20,8 +20,7 @@ def configurationPanelBasic(req: HttpRequest):
20
  elif name_tecnica == "perfil flash":
21
  response = PanelBasicController.controllGetPF(request=req)
22
  elif name_tecnica == "sort":
23
- response = JsonResponse(
24
- {"message": "Trabajando en la implementación"})
25
  else:
26
  response = redirect(
27
  reverse("cata_system:seleccion_tecnica") + "?error=Técnica no valida o sin implementar")
@@ -42,6 +41,9 @@ def configurationPanelBasic(req: HttpRequest):
42
  elif name_tecnica == "perfil flash":
43
  response = PanelBasicController.controllPostPF(
44
  request=req, name_tecnica=name_tecnica)
 
 
 
45
  else:
46
  response = redirect(
47
  reverse("cata_system:seleccion_tecnica") + "?error=¡Oh, vaya! Cambio de técnica repentino, vuelve a elegir otra vez")
 
20
  elif name_tecnica == "perfil flash":
21
  response = PanelBasicController.controllGetPF(request=req)
22
  elif name_tecnica == "sort":
23
+ response = PanelBasicController.controllGetSort(request=req)
 
24
  else:
25
  response = redirect(
26
  reverse("cata_system:seleccion_tecnica") + "?error=Técnica no valida o sin implementar")
 
41
  elif name_tecnica == "perfil flash":
42
  response = PanelBasicController.controllPostPF(
43
  request=req, name_tecnica=name_tecnica)
44
+ elif name_tecnica == "sort":
45
+ response = PanelBasicController.controllPostSort(
46
+ request=req, name_tecnica=name_tecnica)
47
  else:
48
  response = redirect(
49
  reverse("cata_system:seleccion_tecnica") + "?error=¡Oh, vaya! Cambio de técnica repentino, vuelve a elegir otra vez")
tecnicas/views/sessions_config/configuration_panel_codes.py CHANGED
@@ -18,7 +18,7 @@ def configurationPanelCodes(req: HttpRequest):
18
  if name_technique == "escalas":
19
  response = PanelCodesController.controllGetEscalas(
20
  req, data_basic)
21
- elif name_technique == "rata" or name_technique == "cata" or "perfil flash":
22
  response = PanelCodesController.controllGetRATA(
23
  request=req, data=data_basic, name_technique=name_technique)
24
  else:
@@ -38,6 +38,9 @@ def configurationPanelCodes(req: HttpRequest):
38
  elif name_technique == "perfil flash":
39
  response = PanelCodesController.controllPostPF(
40
  request=req)
 
 
 
41
  else:
42
  response = redirect(
43
  reverse("cata_system:seleccion_tecnica") + "?error=Técnica no valida")
 
18
  if name_technique == "escalas":
19
  response = PanelCodesController.controllGetEscalas(
20
  req, data_basic)
21
+ elif name_technique == "rata" or name_technique == "cata" or name_technique == "perfil flash" or name_technique == "sort":
22
  response = PanelCodesController.controllGetRATA(
23
  request=req, data=data_basic, name_technique=name_technique)
24
  else:
 
38
  elif name_technique == "perfil flash":
39
  response = PanelCodesController.controllPostPF(
40
  request=req)
41
+ elif name_technique == "sort":
42
+ response = PanelCodesController.controllPostSort(
43
+ request=req)
44
  else:
45
  response = redirect(
46
  reverse("cata_system:seleccion_tecnica") + "?error=Técnica no valida")
tecnicas/views/sessions_config/create_session.py CHANGED
@@ -1,7 +1,7 @@
1
  from django.http import HttpRequest, JsonResponse
2
  from django.shortcuts import render, redirect
3
  from django.urls import reverse
4
- from tecnicas.controllers import PanelCreateController
5
  from tecnicas.utils import deleteDataSession
6
 
7
 
@@ -15,8 +15,16 @@ def createSession(req: HttpRequest):
15
  name_technique = basic_data["name_tecnica"]
16
 
17
  if req.method == "GET":
18
- if name_technique == "escalas" or name_technique == "rata" or name_technique == "cata" or name_technique == "perfil flash":
19
- response = PanelCreateController.controllGetEscalas(req)
 
 
 
 
 
 
 
 
20
  else:
21
  response = redirect(
22
  reverse("cata_system:seleccion_tecnica") + "?error=Técnica no valida")
@@ -24,13 +32,15 @@ def createSession(req: HttpRequest):
24
  return response
25
  if req.method == "POST":
26
  if name_technique == "escalas":
27
- response = PanelCreateController.controllPostEscalas(req)
28
  elif name_technique == "rata":
29
- response = PanelCreateController.controllPostRATA(req)
30
  elif name_technique == "cata":
31
- response = PanelCreateController.controllPostCATA(req)
32
  elif name_technique == "perfil flash":
33
- response = PanelCreateController.controllPostPF(req)
 
 
34
  else:
35
  response = redirect(
36
  reverse("cata_system:seleccion_tecnica") + "?error=Técnica no valida")
 
1
  from django.http import HttpRequest, JsonResponse
2
  from django.shortcuts import render, redirect
3
  from django.urls import reverse
4
+ from tecnicas.controllers import PanelCreateEscalasController, PanelCreateRataController, PanelCreateCataController, PanelCreatePFController, PanelCreateSortController
5
  from tecnicas.utils import deleteDataSession
6
 
7
 
 
15
  name_technique = basic_data["name_tecnica"]
16
 
17
  if req.method == "GET":
18
+ if name_technique == "escalas":
19
+ response = PanelCreateEscalasController.controllGet(req)
20
+ elif name_technique == "rata":
21
+ response = PanelCreateRataController.controllGet(req)
22
+ elif name_technique == "cata":
23
+ response = PanelCreateCataController.controllGet(req)
24
+ elif name_technique == "perfil flash":
25
+ response = PanelCreatePFController.controllGet(req)
26
+ elif name_technique == "sort":
27
+ response = PanelCreateSortController.controllGet(req)
28
  else:
29
  response = redirect(
30
  reverse("cata_system:seleccion_tecnica") + "?error=Técnica no valida")
 
32
  return response
33
  if req.method == "POST":
34
  if name_technique == "escalas":
35
+ response = PanelCreateEscalasController.controllPost(req)
36
  elif name_technique == "rata":
37
+ response = PanelCreateRataController.controllPost(req)
38
  elif name_technique == "cata":
39
+ response = PanelCreateCataController.controllPost(req)
40
  elif name_technique == "perfil flash":
41
+ response = PanelCreatePFController.controllPost(req)
42
+ elif name_technique == "sort":
43
+ response = PanelCreateSortController.controllPost(req)
44
  else:
45
  response = redirect(
46
  reverse("cata_system:seleccion_tecnica") + "?error=Técnica no valida")