Refactor park list view and update template targets for improved functionality; remove unused CSS class from Tailwind styles; add local settings for unraid configuration.

This commit is contained in:
pacnpal
2025-08-18 15:27:37 -04:00
parent cc990ee003
commit 274ba650b3
5 changed files with 17 additions and 10 deletions

View File

@@ -12,7 +12,7 @@
<fieldset class="flex items-center space-x-2 bg-gray-100 rounded-lg p-1"> <fieldset class="flex items-center space-x-2 bg-gray-100 rounded-lg p-1">
<legend class="sr-only">View mode selection</legend> <legend class="sr-only">View mode selection</legend>
<button hx-get="{% url 'parks:park_list' %}?view_mode=grid{% if request.GET.search %}&search={{ request.GET.search }}{% endif %}" <button hx-get="{% url 'parks:park_list' %}?view_mode=grid{% if request.GET.search %}&search={{ request.GET.search }}{% endif %}"
hx-target="#park-results" hx-target="#results-container"
hx-push-url="true" hx-push-url="true"
class="p-2 rounded transition-colors duration-200 {% if request.GET.view_mode == 'grid' or not request.GET.view_mode %}bg-white shadow-sm{% endif %}" class="p-2 rounded transition-colors duration-200 {% if request.GET.view_mode == 'grid' or not request.GET.view_mode %}bg-white shadow-sm{% endif %}"
aria-label="Grid view" aria-label="Grid view"
@@ -22,7 +22,7 @@
</svg> </svg>
</button> </button>
<button hx-get="{% url 'parks:park_list' %}?view_mode=list{% if request.GET.search %}&search={{ request.GET.search }}{% endif %}" <button hx-get="{% url 'parks:park_list' %}?view_mode=list{% if request.GET.search %}&search={{ request.GET.search }}{% endif %}"
hx-target="#park-results" hx-target="#results-container"
hx-push-url="true" hx-push-url="true"
class="p-2 rounded transition-colors duration-200 {% if request.GET.view_mode == 'list' %}bg-white shadow-sm{% endif %}" class="p-2 rounded transition-colors duration-200 {% if request.GET.view_mode == 'list' %}bg-white shadow-sm{% endif %}"
aria-label="List view" aria-label="List view"
@@ -100,7 +100,7 @@
<form id="filter-form" <form id="filter-form"
x-ref="filterForm" x-ref="filterForm"
hx-get="{% url 'parks:park_list' %}" hx-get="{% url 'parks:park_list' %}"
hx-target="#park-results" hx-target="#results-container"
hx-push-url="true" hx-push-url="true"
hx-trigger="change, submit" hx-trigger="change, submit"
class="mt-4"> class="mt-4">

View File

@@ -14,7 +14,7 @@ app_name = "parks"
urlpatterns = [ urlpatterns = [
# Park views with autocomplete search # Park views with autocomplete search
path("", views_search.ParkSearchView.as_view(), name="park_list"), path("", views.ParkListView.as_view(), name="park_list"),
path("create/", views.ParkCreateView.as_view(), name="park_create"), path("create/", views.ParkCreateView.as_view(), name="park_create"),
# Add park button endpoint (moved before park detail pattern) # Add park button endpoint (moved before park detail pattern)

View File

@@ -235,7 +235,7 @@ class ParkListView(HTMXFilterableMixin, ListView):
queryset = self.model.objects.none() queryset = self.model.objects.none()
# Always initialize filterset, even if queryset failed # Always initialize filterset, even if queryset failed
self.filterset = self.get_filter_class()(self.request.GET, queryset=queryset) self.filterset = self.filter_class(self.request.GET, queryset=queryset)
return self.filterset.qs return self.filterset.qs
def get_context_data(self, **kwargs: Any) -> dict[str, Any]: def get_context_data(self, **kwargs: Any) -> dict[str, Any]:
@@ -243,7 +243,7 @@ class ParkListView(HTMXFilterableMixin, ListView):
try: try:
# Initialize filterset even if queryset fails # Initialize filterset even if queryset fails
if not hasattr(self, 'filterset'): if not hasattr(self, 'filterset'):
self.filterset = self.get_filter_class()( self.filterset = self.filter_class(
self.request.GET, self.request.GET,
queryset=self.model.objects.none() queryset=self.model.objects.none()
) )
@@ -259,7 +259,7 @@ class ParkListView(HTMXFilterableMixin, ListView):
messages.error(self.request, f"Error applying filters: {str(e)}") messages.error(self.request, f"Error applying filters: {str(e)}")
# Ensure filterset exists in error case # Ensure filterset exists in error case
if not hasattr(self, 'filterset'): if not hasattr(self, 'filterset'):
self.filterset = self.get_filter_class()( self.filterset = self.filter_class(
self.request.GET, self.request.GET,
queryset=self.model.objects.none() queryset=self.model.objects.none()
) )

View File

@@ -0,0 +1,10 @@
{
"permissions": {
"additionalDirectories": [
"/Users/talor/thrillwiki_django_no_react"
],
"allow": [
"Bash(uv run:*)"
]
}
}

View File

@@ -1572,9 +1572,6 @@
.text-yellow-800 { .text-yellow-800 {
color: var(--color-yellow-800); color: var(--color-yellow-800);
} }
.capitalize {
text-transform: capitalize;
}
.lowercase { .lowercase {
text-transform: lowercase; text-transform: lowercase;
} }