mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 19:11:08 -05:00
Add comprehensive audit reports, design assessment, and non-authenticated features testing for ThrillWiki application
- Created critical functionality audit report identifying 7 critical issues affecting production readiness. - Added design assessment report highlighting exceptional design quality and minor cosmetic fixes needed. - Documented non-authenticated features testing results confirming successful functionality and public access. - Implemented ride search form with autocomplete functionality and corresponding templates for search results. - Developed tests for ride autocomplete functionality, ensuring proper filtering and authentication checks.
This commit is contained in:
@@ -4,6 +4,9 @@ from django.views.generic.list import ListView
|
||||
from django_filters import FilterSet
|
||||
from .filters import create_model_filter, LocationFilterMixin, RatingFilterMixin, DateRangeFilterMixin
|
||||
|
||||
import autocomplete
|
||||
from rides.models import Ride
|
||||
|
||||
class FilterableViewMixin:
|
||||
"""
|
||||
Mixin to add filtering capabilities to any ListView
|
||||
@@ -84,4 +87,35 @@ class RideListView(HTMXFilterableMixin, ListView):
|
||||
model = Ride
|
||||
filter_class = CustomRideFilter
|
||||
template_name = 'rides/ride_list.html'
|
||||
"""
|
||||
"""
|
||||
|
||||
|
||||
@autocomplete.register
|
||||
class RideAutocomplete(autocomplete.ModelAutocomplete):
|
||||
"""Autocomplete for searching rides.
|
||||
|
||||
Features:
|
||||
- Name-based search with partial matching
|
||||
- Includes park name in results for context
|
||||
- Prefetches related park data for performance
|
||||
- Formats results as "Ride Name - Park Name"
|
||||
- Limited to 10 results for performance
|
||||
"""
|
||||
model = Ride
|
||||
search_attrs = ['name'] # We'll match on ride names
|
||||
max_results = 10 # Limit to 10 for performance
|
||||
|
||||
def get_search_results(self, search, context):
|
||||
"""Return search results with related park data."""
|
||||
return (Ride.objects
|
||||
.filter(name__icontains=search)
|
||||
.select_related('park')
|
||||
.order_by('name')[:self.max_results])
|
||||
|
||||
def format_result(self, ride):
|
||||
"""Format each ride result with park name for context."""
|
||||
return {
|
||||
'key': str(ride.pk),
|
||||
'label': ride.name,
|
||||
'extra': f"at {ride.park.name}"
|
||||
}
|
||||
Reference in New Issue
Block a user