mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 18:51:07 -05:00
major changes, including tailwind v4
This commit is contained in:
@@ -9,16 +9,14 @@ from django.contrib import messages
|
||||
from django.http import HttpRequest, HttpResponse, Http404
|
||||
from django.db.models import Count
|
||||
from .models import (
|
||||
Ride, RollerCoasterStats, RideModel, RideEvent,
|
||||
CATEGORY_CHOICES
|
||||
Ride, RollerCoasterStats, RideModel,
|
||||
CATEGORY_CHOICES, Company
|
||||
)
|
||||
from .forms import RideForm
|
||||
from parks.models import Park
|
||||
from core.views import SlugRedirectMixin
|
||||
from moderation.mixins import EditSubmissionMixin, PhotoSubmissionMixin, HistoryMixin
|
||||
from moderation.models import EditSubmission
|
||||
from manufacturers.models import Manufacturer
|
||||
from designers.models import Designer
|
||||
|
||||
|
||||
class ParkContextRequired:
|
||||
@@ -64,11 +62,6 @@ class RideDetailView(HistoryMixin, DetailView):
|
||||
context['park_slug'] = self.kwargs['park_slug']
|
||||
context['park'] = self.object.park
|
||||
|
||||
# Add history records
|
||||
context['history'] = RideEvent.objects.filter(
|
||||
pgh_obj_id=self.object.id
|
||||
).order_by('-pgh_created_at')
|
||||
|
||||
return context
|
||||
|
||||
|
||||
@@ -107,9 +100,9 @@ class RideCreateView(LoginRequiredMixin, ParkContextRequired, CreateView):
|
||||
if manufacturer_name and not form.cleaned_data.get('manufacturer'):
|
||||
EditSubmission.objects.create(
|
||||
user=self.request.user,
|
||||
content_type=ContentType.objects.get_for_model(Manufacturer),
|
||||
content_type=ContentType.objects.get_for_model(Company),
|
||||
submission_type="CREATE",
|
||||
changes={"name": manufacturer_name},
|
||||
changes={"name": manufacturer_name, "roles": ["MANUFACTURER"]},
|
||||
)
|
||||
|
||||
# Check for new designer
|
||||
@@ -117,9 +110,9 @@ class RideCreateView(LoginRequiredMixin, ParkContextRequired, CreateView):
|
||||
if designer_name and not form.cleaned_data.get('designer'):
|
||||
EditSubmission.objects.create(
|
||||
user=self.request.user,
|
||||
content_type=ContentType.objects.get_for_model(Designer),
|
||||
content_type=ContentType.objects.get_for_model(Company),
|
||||
submission_type="CREATE",
|
||||
changes={"name": designer_name},
|
||||
changes={"name": designer_name, "roles": ["DESIGNER"]},
|
||||
)
|
||||
|
||||
# Check for new ride model
|
||||
@@ -179,9 +172,9 @@ class RideUpdateView(LoginRequiredMixin, ParkContextRequired, EditSubmissionMixi
|
||||
if manufacturer_name and not form.cleaned_data.get('manufacturer'):
|
||||
EditSubmission.objects.create(
|
||||
user=self.request.user,
|
||||
content_type=ContentType.objects.get_for_model(Manufacturer),
|
||||
content_type=ContentType.objects.get_for_model(Company),
|
||||
submission_type="CREATE",
|
||||
changes={"name": manufacturer_name}
|
||||
changes={"name": manufacturer_name, "roles": ["MANUFACTURER"]}
|
||||
)
|
||||
|
||||
# Check for new designer
|
||||
@@ -189,9 +182,9 @@ class RideUpdateView(LoginRequiredMixin, ParkContextRequired, EditSubmissionMixi
|
||||
if designer_name and not form.cleaned_data.get('designer'):
|
||||
EditSubmission.objects.create(
|
||||
user=self.request.user,
|
||||
content_type=ContentType.objects.get_for_model(Designer),
|
||||
content_type=ContentType.objects.get_for_model(Company),
|
||||
submission_type="CREATE",
|
||||
changes={"name": designer_name}
|
||||
changes={"name": designer_name, "roles": ["DESIGNER"]}
|
||||
)
|
||||
|
||||
# Check for new ride model
|
||||
@@ -314,40 +307,26 @@ class SingleCategoryListView(ListView):
|
||||
ParkSingleCategoryListView = SingleCategoryListView
|
||||
|
||||
|
||||
def search_manufacturers(request: HttpRequest) -> HttpResponse:
|
||||
"""Search manufacturers and return results for HTMX"""
|
||||
query = request.GET.get("q", "").strip()
|
||||
|
||||
# Show all manufacturers on click, filter on input
|
||||
manufacturers = Manufacturer.objects.all().order_by("name")
|
||||
|
||||
def search_companies(request: HttpRequest) -> HttpResponse:
|
||||
"""Search companies and return results for HTMX"""
|
||||
query = request.GET.get("q", "").strip()
|
||||
role = request.GET.get("role", "").upper()
|
||||
|
||||
companies = Company.objects.all().order_by("name")
|
||||
if role:
|
||||
companies = companies.filter(roles__contains=[role])
|
||||
if query:
|
||||
manufacturers = manufacturers.filter(name__icontains=query)
|
||||
manufacturers = manufacturers[:10]
|
||||
companies = companies.filter(name__icontains=query)
|
||||
companies = companies[:10]
|
||||
|
||||
return render(
|
||||
request,
|
||||
"rides/partials/manufacturer_search_results.html",
|
||||
{"manufacturers": manufacturers, "search_term": query},
|
||||
"rides/partials/company_search_results.html",
|
||||
{"companies": companies, "search_term": query},
|
||||
)
|
||||
|
||||
|
||||
def search_designers(request: HttpRequest) -> HttpResponse:
|
||||
"""Search designers and return results for HTMX"""
|
||||
query = request.GET.get("q", "").strip()
|
||||
|
||||
# Show all designers on click, filter on input
|
||||
designers = Designer.objects.all().order_by("name")
|
||||
if query:
|
||||
designers = designers.filter(name__icontains=query)
|
||||
designers = designers[:10]
|
||||
|
||||
return render(
|
||||
request,
|
||||
"rides/partials/designer_search_results.html",
|
||||
{"designers": designers, "search_term": query},
|
||||
)
|
||||
|
||||
|
||||
def search_ride_models(request: HttpRequest) -> HttpResponse:
|
||||
"""Search ride models and return results for HTMX"""
|
||||
query = request.GET.get("q", "").strip()
|
||||
|
||||
Reference in New Issue
Block a user