Enhance filtering functionality and UI consistency across user-related views by implementing a generic search filter and updating filter display in templates.

This commit is contained in:
Ross
2025-11-03 10:47:40 +00:00
parent 2d0098b2b6
commit 83a60203f7
5 changed files with 63 additions and 39 deletions
+15 -15
View File
@@ -151,7 +151,7 @@ class FirstImageColumn(tables.Column):
return format_html('<span title="{}">Invalid image url<span>', image_object)
class CidUserTable(tables.Table):
class CidUserTable(SelectionTable):
cid = tables.LinkColumn(
"cid_scores", args=[A("cid"), A("passcode")], orderable=True
)
@@ -163,7 +163,7 @@ class CidUserTable(tables.Table):
# anatomy_exams = tables.ManyToManyColumn(verbose_name="Anatomy Exams")
group = tables.Column(linkify=True)
selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
#selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
emails = tables.Column(empty_values=(), orderable=False)
@@ -171,7 +171,7 @@ class CidUserTable(tables.Table):
"generic:update_cid", text="Edit", args=[A("pk")], orderable=True
)
class Meta:
class Meta(SelectionTable.Meta):
model = CidUser
template_name = "django_tables2/bootstrap4.html"
fields = (
@@ -199,7 +199,7 @@ class CidUserTable(tables.Table):
return format_html(record.email)
class CidUserExamTable(tables.Table):
class CidUserExamTable(SelectionTable):
cid = tables.LinkColumn(
"cid_scores", args=[A("cid"), A("passcode")], orderable=True
)
@@ -210,7 +210,7 @@ class CidUserExamTable(tables.Table):
longs_exams = tables.ManyToManyColumn(verbose_name="Long Exams")
anatomy_exams = tables.ManyToManyColumn(verbose_name="Anatomy Exams")
selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
#selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
emails = tables.Column(empty_values=(), orderable=False)
@@ -218,7 +218,7 @@ class CidUserExamTable(tables.Table):
"generic:update_cid", text="Edit", args=[A("pk")], orderable=True
)
class Meta:
class Meta(SelectionTable.Meta):
model = CidUser
template_name = "django_tables2/bootstrap4.html"
fields = (
@@ -256,7 +256,7 @@ class CidUserExamTable(tables.Table):
# return format_html("""<a href="#" onclick="return window.create_popup_window('/longs/series/{}', 'Series')" >Popup</a>""", record.pk)
class UserUserTable(tables.Table):
class UserUserTable(SelectionTable):
user = tables.Column(
linkify={"viewname": "account_profile", "args": [A("username")]},
@@ -275,7 +275,7 @@ class UserUserTable(tables.Table):
accessor=A("userprofile__supervisor"),
)
selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
#selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
edit = tables.Column(
empty_values=(),
@@ -294,7 +294,7 @@ class UserUserTable(tables.Table):
date_joined = tables.DateTimeColumn(format="Y/m/d")
class Meta:
class Meta(SelectionTable.Meta):
model = User
template_name = "django_tables2/bootstrap4.html"
fields = (
@@ -348,7 +348,7 @@ class UserUserTable(tables.Table):
record.email,
)
class ExaminationTable(tables.Table):
class ExaminationTable(SelectionTable):
examination = tables.Column(
linkify=("generic:examination_detail", {"pk": tables.A("pk")}),
verbose_name="Condition",
@@ -360,19 +360,19 @@ class ExaminationTable(tables.Table):
delete = tables.LinkColumn(
"generic:examination_delete", text="Delete", args=[A("pk")], orderable=False
)
selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
#selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
# synonym = tables.ManyToManyColumn(verbose_name="Synonyms")
#synonym = tables.Column(empty_values=())
#parent = tables.ManyToManyColumn(verbose_name="Parents")
class Meta:
class Meta(SelectionTable.Meta):
model = Examination
template_name = "django_tables2/bootstrap4.html"
#fields = ("primary", "subspecialty")
sequence = ("examination",)
class SupervisorTable(tables.Table):
class SupervisorTable(SelectionTable):
name = tables.Column(
linkify=("generic:supervisor_detail", {"pk": tables.A("pk")}),
verbose_name="Name",
@@ -383,13 +383,13 @@ class SupervisorTable(tables.Table):
accessor="pk", orderable=False
)
class Meta:
class Meta(SelectionTable.Meta):
model = Supervisor
template_name = "django_tables2/bootstrap4.html"
sequence = ("name", "email")
exclude = ("id",)
attrs = {"id": "supervisor-table"}
SelectionTable.Meta.attrs.update({"id": "supervisor-table"})
def render_edit(self, value, record):
url = f"{reverse("generic:supervisor_edit", args=[record.pk])}?redirect={self.request.path}"