Spaces:
Running
Running
Creacion de sesion con perfil flash
Browse files
tecnicas/controllers/views_controller/create_session/panel_codes_controller.py
CHANGED
|
@@ -8,7 +8,8 @@ import json
|
|
| 8 |
|
| 9 |
class PanelCodesController():
|
| 10 |
url_current_panel = "tecnicas/create_sesion/configuracion-panel-codes.html"
|
| 11 |
-
|
|
|
|
| 12 |
|
| 13 |
def __init__(self):
|
| 14 |
pass
|
|
@@ -58,7 +59,7 @@ class PanelCodesController():
|
|
| 58 |
|
| 59 |
codes_sort["sort_codes"] = sorts_code
|
| 60 |
request.session["form_codes"] = codes_sort
|
| 61 |
-
return redirect(reverse(PanelCodesController.
|
| 62 |
else:
|
| 63 |
context_codes_form["error"] = "error en los datos recibidos"
|
| 64 |
|
|
@@ -96,7 +97,7 @@ class PanelCodesController():
|
|
| 96 |
|
| 97 |
if form_codes.is_valid():
|
| 98 |
request.session["form_codes"] = codes
|
| 99 |
-
return redirect(reverse(PanelCodesController.
|
| 100 |
else:
|
| 101 |
context_codes_form["error"] = "error en los datos recibidos"
|
| 102 |
|
|
@@ -114,3 +115,27 @@ class PanelCodesController():
|
|
| 114 |
}
|
| 115 |
|
| 116 |
return render(request, PanelCodesController.url_current_panel, context_codes_form)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
|
| 9 |
class PanelCodesController():
|
| 10 |
url_current_panel = "tecnicas/create_sesion/configuracion-panel-codes.html"
|
| 11 |
+
url_words = "cata_system:panel_configuracion_words"
|
| 12 |
+
url_create_session = "cata_system:creando_sesion"
|
| 13 |
|
| 14 |
def __init__(self):
|
| 15 |
pass
|
|
|
|
| 59 |
|
| 60 |
codes_sort["sort_codes"] = sorts_code
|
| 61 |
request.session["form_codes"] = codes_sort
|
| 62 |
+
return redirect(reverse(PanelCodesController.url_words))
|
| 63 |
else:
|
| 64 |
context_codes_form["error"] = "error en los datos recibidos"
|
| 65 |
|
|
|
|
| 97 |
|
| 98 |
if form_codes.is_valid():
|
| 99 |
request.session["form_codes"] = codes
|
| 100 |
+
return redirect(reverse(PanelCodesController.url_words))
|
| 101 |
else:
|
| 102 |
context_codes_form["error"] = "error en los datos recibidos"
|
| 103 |
|
|
|
|
| 115 |
}
|
| 116 |
|
| 117 |
return render(request, PanelCodesController.url_current_panel, context_codes_form)
|
| 118 |
+
|
| 119 |
+
@staticmethod
|
| 120 |
+
def controllPostPF(request: HttpRequest):
|
| 121 |
+
codes = []
|
| 122 |
+
context_codes_form = {}
|
| 123 |
+
|
| 124 |
+
for name, value in request.POST.items():
|
| 125 |
+
if name.__contains__("producto_"):
|
| 126 |
+
codes.append(value)
|
| 127 |
+
|
| 128 |
+
form_codes = CodesForm(request.POST, codes=codes)
|
| 129 |
+
|
| 130 |
+
context_codes_form = {
|
| 131 |
+
"form_codes": form_codes,
|
| 132 |
+
"use_technique": "perfil flash"
|
| 133 |
+
}
|
| 134 |
+
|
| 135 |
+
if form_codes.is_valid():
|
| 136 |
+
request.session["form_codes"] = codes
|
| 137 |
+
return redirect(reverse(PanelCodesController.url_create_session))
|
| 138 |
+
else:
|
| 139 |
+
context_codes_form["error"] = "error en los datos recibidos"
|
| 140 |
+
|
| 141 |
+
return render(request, PanelCodesController.url_current_panel, context_codes_form)
|
tecnicas/controllers/views_controller/create_session/panel_create_controller.py
CHANGED
|
@@ -444,3 +444,104 @@ class PanelCreateController():
|
|
| 444 |
return general_error(f"Error: {e}")
|
| 445 |
else:
|
| 446 |
return general_error("No se ha establecido acción")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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") or not request.session.get("form_tags"):
|
| 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 with their tags #
|
| 459 |
+
#
|
| 460 |
+
# ////////////////////////////////////////////////////// #
|
| 461 |
+
data_basic = request.session["form_basic"]
|
| 462 |
+
data_basic["numero_repeticiones"] = 0
|
| 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"],
|
| 470 |
+
limite_catadores=data_basic["numero_catadores"],
|
| 471 |
+
instrucciones=data_basic["instrucciones"] or "Espere instrucciones del Presentador",
|
| 472 |
+
)
|
| 473 |
+
|
| 474 |
+
if not technique:
|
| 475 |
+
raise ValueError("Error al guardar la técnica")
|
| 476 |
+
|
| 477 |
+
data_scale = {
|
| 478 |
+
"id_scale": data_basic["tipo_escala"],
|
| 479 |
+
"size": data_basic["tamano_escala"],
|
| 480 |
+
"technique": technique
|
| 481 |
+
}
|
| 482 |
+
|
| 483 |
+
controllerScale = EscalaController(data=data_scale)
|
| 484 |
+
|
| 485 |
+
scale = controllerScale.saveScale()
|
| 486 |
+
if isinstance(scale, dict):
|
| 487 |
+
raise ValueError(scale["error"])
|
| 488 |
+
|
| 489 |
+
dict_tags = request.session["form_tags"]
|
| 490 |
+
saved_related_tags = controllerScale.realteTags(dict_tags)
|
| 491 |
+
if "error" in saved_related_tags:
|
| 492 |
+
raise ValueError(saved_related_tags["error"])
|
| 493 |
+
|
| 494 |
+
# ////////////////////////////////////////////// #
|
| 495 |
+
#
|
| 496 |
+
# Second step: Create productos with their codes #
|
| 497 |
+
#
|
| 498 |
+
# ////////////////////////////////////////////// #
|
| 499 |
+
codes = request.session["form_codes"]
|
| 500 |
+
|
| 501 |
+
if not codes:
|
| 502 |
+
raise ValueError("No hay códigos de productos")
|
| 503 |
+
|
| 504 |
+
products_without_save = []
|
| 505 |
+
for code in codes:
|
| 506 |
+
product = Producto(
|
| 507 |
+
codigoProducto=code,
|
| 508 |
+
id_tecnica=technique
|
| 509 |
+
)
|
| 510 |
+
products_without_save.append(product)
|
| 511 |
+
|
| 512 |
+
Producto.objects.bulk_create(products_without_save)
|
| 513 |
+
|
| 514 |
+
# /////////////////////////////////////////////////////// #
|
| 515 |
+
#
|
| 516 |
+
# Third step: Create session and relat with the technique #
|
| 517 |
+
#
|
| 518 |
+
# /////////////////////////////////////////////////////// #
|
| 519 |
+
session = SesionSensorial.objects.create(
|
| 520 |
+
nombre_sesion=data_basic["nombre_sesion"] if data_basic["nombre_sesion"] != "" else None,
|
| 521 |
+
tecnica=technique,
|
| 522 |
+
creadoPor=request.user.user_presentador
|
| 523 |
+
)
|
| 524 |
+
|
| 525 |
+
if not session:
|
| 526 |
+
raise ValueError("Error al crear sesion sensorial")
|
| 527 |
+
|
| 528 |
+
context = {
|
| 529 |
+
"message": "sesión creada",
|
| 530 |
+
"data": {
|
| 531 |
+
"codigo_sesion": session.codigo_sesion,
|
| 532 |
+
"nombre_sesion": session.nombre_sesion
|
| 533 |
+
}
|
| 534 |
+
}
|
| 535 |
+
|
| 536 |
+
# ////////////////////////////////// #
|
| 537 |
+
#
|
| 538 |
+
# Final step: Delete date en session #
|
| 539 |
+
#
|
| 540 |
+
# ////////////////////////////////// #
|
| 541 |
+
deleteDataSession(request)
|
| 542 |
+
return JsonResponse(context)
|
| 543 |
+
|
| 544 |
+
except ValueError as e:
|
| 545 |
+
return general_error(f"Error: {e}")
|
| 546 |
+
else:
|
| 547 |
+
return general_error("No se ha establecido acción")
|
tecnicas/views/sessions_config/configuration_panel_codes.py
CHANGED
|
@@ -35,6 +35,9 @@ def configurationPanelCodes(req: HttpRequest):
|
|
| 35 |
elif name_technique == "cata":
|
| 36 |
response = PanelCodesController.controllPostRATA(
|
| 37 |
request=req, is_rata=False)
|
|
|
|
|
|
|
|
|
|
| 38 |
else:
|
| 39 |
response = redirect(
|
| 40 |
reverse("cata_system:seleccion_tecnica") + "?error=Técnica no valida")
|
|
|
|
| 35 |
elif name_technique == "cata":
|
| 36 |
response = PanelCodesController.controllPostRATA(
|
| 37 |
request=req, is_rata=False)
|
| 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")
|
tecnicas/views/sessions_config/create_session.py
CHANGED
|
@@ -15,7 +15,7 @@ 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":
|
| 19 |
response = PanelCreateController.controllGetEscalas(req)
|
| 20 |
else:
|
| 21 |
response = redirect(
|
|
@@ -29,6 +29,8 @@ def createSession(req: HttpRequest):
|
|
| 29 |
response = PanelCreateController.controllPostRATA(req)
|
| 30 |
elif name_technique == "cata":
|
| 31 |
response = PanelCreateController.controllPostCATA(req)
|
|
|
|
|
|
|
| 32 |
else:
|
| 33 |
response = redirect(
|
| 34 |
reverse("cata_system:seleccion_tecnica") + "?error=Técnica no valida")
|
|
|
|
| 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(
|
|
|
|
| 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")
|