Spaces:
Sleeping
Sleeping
Merge pull request #14 from CascoArcilla/HU6
Browse files
tecnicas/controllers/models_controller/sesion_controller.py
CHANGED
|
@@ -44,34 +44,41 @@ class SesionController():
|
|
| 44 |
|
| 45 |
@staticmethod
|
| 46 |
def getSessionsSavesByCretor(user_name: str, page: int):
|
| 47 |
-
elements_by_page =
|
| 48 |
|
| 49 |
try:
|
| 50 |
creator = Presentador.objects.get(nombre_usuario=user_name)
|
| 51 |
except Presentador.DoesNotExist:
|
| 52 |
return controller_error("presentador invalido")
|
| 53 |
|
| 54 |
-
|
| 55 |
-
|
|
|
|
|
|
|
| 56 |
"tecnica",
|
| 57 |
"tecnica__tipo_tecnica",
|
| 58 |
"tecnica__id_estilo"
|
| 59 |
-
)
|
|
|
|
| 60 |
"codigo_sesion",
|
| 61 |
"nombre_sesion",
|
| 62 |
"fechaCreacion",
|
|
|
|
| 63 |
"tecnica__tipo_tecnica__nombre_tecnica",
|
| 64 |
"tecnica__id_estilo__nombre_estilo"
|
| 65 |
)
|
|
|
|
|
|
|
| 66 |
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
return sessions_in_page
|
| 71 |
except PageNotAnInteger:
|
| 72 |
-
return controller_error("
|
| 73 |
except EmptyPage:
|
| 74 |
-
return controller_error("sin registros de
|
|
|
|
|
|
|
| 75 |
|
| 76 |
@staticmethod
|
| 77 |
def getSessionByCodePanelTester(code: str):
|
|
|
|
| 44 |
|
| 45 |
@staticmethod
|
| 46 |
def getSessionsSavesByCretor(user_name: str, page: int):
|
| 47 |
+
elements_by_page = 6
|
| 48 |
|
| 49 |
try:
|
| 50 |
creator = Presentador.objects.get(nombre_usuario=user_name)
|
| 51 |
except Presentador.DoesNotExist:
|
| 52 |
return controller_error("presentador invalido")
|
| 53 |
|
| 54 |
+
queryset = (
|
| 55 |
+
SesionSensorial.objects
|
| 56 |
+
.filter(creadoPor=creator)
|
| 57 |
+
.select_related(
|
| 58 |
"tecnica",
|
| 59 |
"tecnica__tipo_tecnica",
|
| 60 |
"tecnica__id_estilo"
|
| 61 |
+
)
|
| 62 |
+
.only(
|
| 63 |
"codigo_sesion",
|
| 64 |
"nombre_sesion",
|
| 65 |
"fechaCreacion",
|
| 66 |
+
"activo",
|
| 67 |
"tecnica__tipo_tecnica__nombre_tecnica",
|
| 68 |
"tecnica__id_estilo__nombre_estilo"
|
| 69 |
)
|
| 70 |
+
.order_by("-fechaCreacion")
|
| 71 |
+
)
|
| 72 |
|
| 73 |
+
paginator = Paginator(queryset, elements_by_page)
|
| 74 |
+
try:
|
| 75 |
+
sessions_in_page = paginator.page(page)
|
|
|
|
| 76 |
except PageNotAnInteger:
|
| 77 |
+
return controller_error("índice inválido")
|
| 78 |
except EmptyPage:
|
| 79 |
+
return controller_error("sin registros de sesiones")
|
| 80 |
+
|
| 81 |
+
return (sessions_in_page, not sessions_in_page.number < paginator.num_pages)
|
| 82 |
|
| 83 |
@staticmethod
|
| 84 |
def getSessionByCodePanelTester(code: str):
|
tecnicas/templates/tecnicas/manage_sesions/sesiones-panel.html
CHANGED
|
@@ -19,9 +19,13 @@
|
|
| 19 |
</div>
|
| 20 |
</header>
|
| 21 |
|
|
|
|
|
|
|
|
|
|
| 22 |
<section class="grid grid-cols-3 max-lg:grid-cols-2 max-sm:grid-cols-1 w-full gap-4 justify-center">
|
| 23 |
{% for sesion in sessions %}
|
| 24 |
-
<div
|
|
|
|
| 25 |
<div class="card-body flex flex-col justify-between w-full">
|
| 26 |
<div class="flex flex-col gap-1 [&>*]:first:text-xl [&>*]:first:font-bold [&>*]:first:border-b">
|
| 27 |
{% if sesion.nombre_sesion %}
|
|
@@ -47,6 +51,16 @@
|
|
| 47 |
<li>
|
| 48 |
{{ sesion.fechaCreacion }}
|
| 49 |
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
</ul>
|
| 51 |
<div class="mt-6">
|
| 52 |
<a href="{% url 'cata_system:detalles_sesion' session_code=sesion.codigo_sesion %}">
|
|
@@ -61,16 +75,25 @@
|
|
| 61 |
</section>
|
| 62 |
|
| 63 |
<section class="flex justify-center items-center gap-2">
|
| 64 |
-
<div class="join">
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
</div>
|
| 73 |
</section>
|
|
|
|
| 74 |
</article>
|
| 75 |
</article>
|
| 76 |
{% endblock %}
|
|
|
|
| 19 |
</div>
|
| 20 |
</header>
|
| 21 |
|
| 22 |
+
{% if error %}
|
| 23 |
+
{% include "../components/error-message.html" with message=error %}
|
| 24 |
+
{% else %}
|
| 25 |
<section class="grid grid-cols-3 max-lg:grid-cols-2 max-sm:grid-cols-1 w-full gap-4 justify-center">
|
| 26 |
{% for sesion in sessions %}
|
| 27 |
+
<div
|
| 28 |
+
class='card {{ sesion.activo|yesno:"bg-surface-ligt,bg-surface-card" }} shadow-lg text-black sm:max-w-80 w-full flex justify-center items-center'>
|
| 29 |
<div class="card-body flex flex-col justify-between w-full">
|
| 30 |
<div class="flex flex-col gap-1 [&>*]:first:text-xl [&>*]:first:font-bold [&>*]:first:border-b">
|
| 31 |
{% if sesion.nombre_sesion %}
|
|
|
|
| 51 |
<li>
|
| 52 |
{{ sesion.fechaCreacion }}
|
| 53 |
</li>
|
| 54 |
+
<li>
|
| 55 |
+
Estado:
|
| 56 |
+
<span class="uppercase font-bold">
|
| 57 |
+
{% if sesion.activo %}
|
| 58 |
+
Activo
|
| 59 |
+
{% else %}
|
| 60 |
+
No activo
|
| 61 |
+
{% endif %}
|
| 62 |
+
</span>
|
| 63 |
+
</li>
|
| 64 |
</ul>
|
| 65 |
<div class="mt-6">
|
| 66 |
<a href="{% url 'cata_system:detalles_sesion' session_code=sesion.codigo_sesion %}">
|
|
|
|
| 75 |
</section>
|
| 76 |
|
| 77 |
<section class="flex justify-center items-center gap-2">
|
| 78 |
+
<div class="join space-x-2">
|
| 79 |
+
{% if num_page != 1 %}
|
| 80 |
+
<a href="{% url 'cata_system:panel_sesiones' page=num_page|add:-1 %}" class="w-fit">
|
| 81 |
+
<button class="join-item btn bg-btn-secondary py-1">
|
| 82 |
+
<img class="h-full" src="{% static 'img/less-than.svg' %}" alt="menor que">
|
| 83 |
+
</button>
|
| 84 |
+
</a>
|
| 85 |
+
{% endif %}
|
| 86 |
+
<button class="join-item btn bg-btn-secondary">Page {{ num_page }}</button>
|
| 87 |
+
{% if not last_page %}
|
| 88 |
+
<a href="{% url 'cata_system:panel_sesiones' page=num_page|add:1 %}"class="w-fit">
|
| 89 |
+
<button class="join-item btn bg-btn-secondary py-1">
|
| 90 |
+
<img class="h-full" src="{% static 'img/greater-than.svg' %}" alt="mayor que">
|
| 91 |
+
</button>
|
| 92 |
+
</a>
|
| 93 |
+
{% endif %}
|
| 94 |
</div>
|
| 95 |
</section>
|
| 96 |
+
{% endif %}
|
| 97 |
</article>
|
| 98 |
</article>
|
| 99 |
{% endblock %}
|
tecnicas/views/sessions_management/sessions_panel.py
CHANGED
|
@@ -3,9 +3,9 @@ from ...controllers import SesionController
|
|
| 3 |
|
| 4 |
|
| 5 |
def sesionsPanel(req, page: int):
|
| 6 |
-
context = {"
|
| 7 |
|
| 8 |
-
sessions_in_page = SesionController.getSessionsSavesByCretor(
|
| 9 |
user_name="aguBido", page=page)
|
| 10 |
|
| 11 |
if isinstance(sessions_in_page, dict):
|
|
@@ -13,6 +13,7 @@ def sesionsPanel(req, page: int):
|
|
| 13 |
return render(req, "tecnicas/manage_sesions/sesiones-panel.html", context=context)
|
| 14 |
|
| 15 |
context["sessions"] = sessions_in_page
|
|
|
|
| 16 |
|
| 17 |
number_pages = SesionController.getNumberSessionsByCreator(
|
| 18 |
user_name="aguBido")
|
|
|
|
| 3 |
|
| 4 |
|
| 5 |
def sesionsPanel(req, page: int):
|
| 6 |
+
context = {"num_page": page}
|
| 7 |
|
| 8 |
+
(sessions_in_page, last_page) = SesionController.getSessionsSavesByCretor(
|
| 9 |
user_name="aguBido", page=page)
|
| 10 |
|
| 11 |
if isinstance(sessions_in_page, dict):
|
|
|
|
| 13 |
return render(req, "tecnicas/manage_sesions/sesiones-panel.html", context=context)
|
| 14 |
|
| 15 |
context["sessions"] = sessions_in_page
|
| 16 |
+
context["last_page"] = last_page
|
| 17 |
|
| 18 |
number_pages = SesionController.getNumberSessionsByCreator(
|
| 19 |
user_name="aguBido")
|