Norberto Montalvo García commited on
Commit
681cfb7
·
unverified ·
2 Parent(s): 7facb3f cb53e82

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 = 9
48
 
49
  try:
50
  creator = Presentador.objects.get(nombre_usuario=user_name)
51
  except Presentador.DoesNotExist:
52
  return controller_error("presentador invalido")
53
 
54
- try:
55
- queryset = SesionSensorial.objects.select_related(
 
 
56
  "tecnica",
57
  "tecnica__tipo_tecnica",
58
  "tecnica__id_estilo"
59
- ).only(
 
60
  "codigo_sesion",
61
  "nombre_sesion",
62
  "fechaCreacion",
 
63
  "tecnica__tipo_tecnica__nombre_tecnica",
64
  "tecnica__id_estilo__nombre_estilo"
65
  )
 
 
66
 
67
- paginator = Paginator(queryset, elements_by_page)
68
- sessions_in_page = paginator.get_page(page)
69
-
70
- return sessions_in_page
71
  except PageNotAnInteger:
72
- return controller_error("indice invalido")
73
  except EmptyPage:
74
- return controller_error("sin registros de sessiones")
 
 
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 class="card bg-surface-card shadow-lg text-black sm:max-w-80 w-full flex justify-center items-center">
 
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
- <button class="join-item btn bg-btn-secondary">
66
- <img class="h-full" src="{% static 'img/less-than.svg' %}" alt="menor que">
67
- </button>
68
- <button class="join-item btn bg-btn-secondary">Page {{ page }}</button>
69
- <button class="join-item btn bg-btn-secondary">
70
- <img class="h-full" src="{% static 'img/greater-than.svg' %}" alt="mayor que">
71
- </button>
 
 
 
 
 
 
 
 
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 = {"page": page}
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")