mirror of
https://github.com/ae-utbm/sith.git
synced 2025-12-25 01:03:21 +00:00
Don't craft urls in pedagogy frontend
This commit is contained in:
@@ -50,4 +50,4 @@ class UeController(ControllerBase):
|
||||
)
|
||||
@paginate(PageNumberPaginationExtra, page_size=100)
|
||||
def fetch_ue_list(self, search: Query[UeFilterSchema]):
|
||||
return search.filter(UE.objects.order_by("code").values())
|
||||
return search.filter(UE.objects.order_by("code"))
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from typing import Annotated, Literal
|
||||
|
||||
from django.db.models import Q
|
||||
from django.urls import reverse
|
||||
from django.utils import html
|
||||
from haystack.query import SearchQuerySet
|
||||
from ninja import FilterLookup, FilterSchema, ModelSchema, Schema
|
||||
@@ -85,6 +86,22 @@ class SimpleUeSchema(ModelSchema):
|
||||
"department",
|
||||
]
|
||||
|
||||
detail_url: str
|
||||
edit_url: str
|
||||
delete_url: str
|
||||
|
||||
@staticmethod
|
||||
def resolve_detail_url(obj: UE) -> str:
|
||||
return reverse("pedagogy:ue_detail", kwargs={"ue_id": obj.id})
|
||||
|
||||
@staticmethod
|
||||
def resolve_edit_url(obj: UE) -> str:
|
||||
return reverse("pedagogy:ue_update", kwargs={"ue_id": obj.id})
|
||||
|
||||
@staticmethod
|
||||
def resolve_delete_url(obj: UE) -> str:
|
||||
return reverse("pedagogy:ue_delete", kwargs={"ue_id": obj.id})
|
||||
|
||||
|
||||
class UeSchema(ModelSchema):
|
||||
"""Our complete representation of an UE"""
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
<tbody :aria-busy="loading">
|
||||
<template x-for="ue in ues.results" :key="ue.id">
|
||||
<tr
|
||||
@click="window.location.href = `/pedagogy/ue/${ue.id}`"
|
||||
@click="window.location.href = ue.detail_url"
|
||||
class="clickable"
|
||||
:class="{closed: ue.semester === 'CLOSED'}"
|
||||
>
|
||||
@@ -122,10 +122,10 @@
|
||||
<td><i :class="ue.semester.includes('AUTUMN') && 'fa fa-leaf'"></i></td>
|
||||
<td><i :class="ue.semester.includes('SPRING') && 'fa-regular fa-sun'"></i></td>
|
||||
{%- if user.has_perm("pedagogy.change_ue") -%}
|
||||
<td><a :href="`/pedagogy/ue/${ue.id}/edit`">{% trans %}Edit{% endtrans %}</a></td>
|
||||
<td><a :href="ue.edit_url">{% trans %}Edit{% endtrans %}</a></td>
|
||||
{%- endif -%}
|
||||
{%- if user.has_perm("pedagogy.delete_ue") -%}
|
||||
<td><a :href="`/pedagogy/ue/${ue.id}/delete`">{% trans %}Delete{% endtrans %}</a></td>
|
||||
<td><a :href="ue.delete_url">{% trans %}Delete{% endtrans %}</a></td>
|
||||
{%- endif -%}
|
||||
</tr>
|
||||
</template>
|
||||
|
||||
@@ -107,6 +107,13 @@ class TestUESearch(TestCase):
|
||||
"credit_type": ue.credit_type,
|
||||
"semester": ue.semester,
|
||||
"department": ue.department,
|
||||
"detail_url": reverse(
|
||||
"pedagogy:ue_detail", kwargs={"ue_id": ue.id}
|
||||
),
|
||||
"edit_url": reverse("pedagogy:ue_update", kwargs={"ue_id": ue.id}),
|
||||
"delete_url": reverse(
|
||||
"pedagogy:ue_delete", kwargs={"ue_id": ue.id}
|
||||
),
|
||||
}
|
||||
],
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user