From 6a27f0eab0eddb01bba0677357d0eab97c4e8f4b Mon Sep 17 00:00:00 2001 From: pacnpal <183241239+pacnpal@users.noreply.github.com> Date: Wed, 30 Oct 2024 08:50:42 -0400 Subject: [PATCH] update urls mainly, fix domain.com/rides to work still needs done, filtering --- parks/__pycache__/urls.cpython-312.pyc | Bin 705 -> 972 bytes parks/urls.py | 5 +- rides/__pycache__/urls.cpython-312.pyc | Bin 567 -> 711 bytes rides/__pycache__/views.cpython-312.pyc | Bin 8646 -> 10092 bytes rides/urls.py | 1 + rides/views.py | 58 +++++++--- templates/base/base.html | 2 +- templates/companies/manufacturer_detail.html | 52 ++++----- templates/home.html | 4 +- templates/parks/park_detail.html | 13 ++- templates/parks/park_list.html | 11 +- templates/rides/partials/ride_list.html | 109 ++++++++++--------- templates/rides/ride_form.html | 13 ++- templates/rides/ride_list.html | 52 ++++++--- templates/search_results.html | 7 +- thrillwiki/__pycache__/urls.cpython-312.pyc | Bin 2648 -> 2572 bytes thrillwiki/urls.py | 1 - 17 files changed, 195 insertions(+), 133 deletions(-) diff --git a/parks/__pycache__/urls.cpython-312.pyc b/parks/__pycache__/urls.cpython-312.pyc index f91255555beb7a4cc96d2a9d01d484f7bb0052f3..309d0c1889b877f8d8263c05cb8ad7fe6fdf1d9c 100644 GIT binary patch delta 608 zcmZ9Ize~eF6vywbm&7!!KboRq#6gsjMRzHJlS@@_a0rM5FVw_KEs0fh5%C{TG6+sO z2!am&2|DYbD2NB*;N&8LgOlJ(Y9sW9_da>=`~7mcYw1?mxyk3V2+p24T>Zfay~Q7` zqy53xJZugTLkx4|V+;GlA{a5kGCbo`ivlA?x#Y{13@lj+K@MiJL%r@+*nju*ln=fO zrgG77o@q`JmkO?8sz|}p4?c{(Y@1jEi|iF(W#-yedC2Ka?I|QVJDqLfF32IQoAq22 z&Ph|->Q%|gZRuw5Jsz7x(7L_8A{4i_%p1&kho?a%7Se|6Y=!{2d6zjAH(XzUfspEU zuo?;^)EJgH%t1q=IcyZ<0F>dlP;Jha5{_JK@a?{G$Q#v(#1PZucvHBYP5M|P;GvKb zhAg#a`%YN5mz`NNFEr-awdz`;3F21`Xk65|$WVmV%t&qz>% delta 361 zcmX@ZevmcoG%qg~0}z~FpqQ@9$iVOz#DM{JDC6@7AY(d13PTEG4nr*PA7 zr4nL5Cdk0zEFkfLnURt4E`!Wn2I0we%#O-(GeoaT>Ry!8y)J2bQPT9Xr1_5AD=a=A O*jf0Q8o7%^fLZ{yvPi`M diff --git a/parks/urls.py b/parks/urls.py index 89ff7afc..5a215ac3 100644 --- a/parks/urls.py +++ b/parks/urls.py @@ -1,10 +1,13 @@ -from django.urls import path +from django.urls import path, include from . import views +from rides.views import RideListView app_name = 'parks' urlpatterns = [ path('', views.ParkListView.as_view(), name='park_list'), path('create/', views.ParkCreateView.as_view(), name='park_create'), + path('rides/', RideListView.as_view(), name='all_rides'), # Global rides list path('/', views.ParkDetailView.as_view(), name='park_detail'), + path('/rides/', include('rides.urls', namespace='rides')), ] diff --git a/rides/__pycache__/urls.cpython-312.pyc b/rides/__pycache__/urls.cpython-312.pyc index e5ed3298eea9fc28526b4ca58c8063e8ae1e282e..19d4d3ff00378f5df853e0773a0fc18f4a356293 100644 GIT binary patch delta 196 zcmdnaa-3EDG%qg~0}%XHS4uZxWMFs<;=lkql=1n)MD>+iObn@vDO{<{SppNM=?inO zVPDM*kxyri;;iJ+yDzhX?_5&1ma@<$stVMJRew@`I#EIi-dqe01>GZ_W%F@ diff --git a/rides/__pycache__/views.cpython-312.pyc b/rides/__pycache__/views.cpython-312.pyc index e15de14f1e7fbaf7c56580d16dc468303de9db76..5d84849294da82505fe400bded70c45d0de73275 100644 GIT binary patch delta 4087 zcma)9YitzP6`q-$nVsF8eR&^a@A|c1Y!>qf5TJ2LNWc)B1fw>D21D2^J8QGHvCW-v z!R``U3R0F7f}N`fELAnBA{7@$O_WMORaB)_)K+Sw?#8sNR;Wp&_FpSG;4~;d+MaXA zYa4JMBkh?x=iGblz326v{mrhwwR?W=b~`zErq-*RIY zS*63Si)XnGMVEj&7*__aGsm6gJ6z9kaXbB3XtH}tVqfw^n%)&k`z6rnh2I?l@nr?D9d##^es6s!dC%nTDT@y zk}Q{4m_5Wz+1g8vfh6fk7`=mCalRz7w_K8p!GSb^SK1sLAgGo2ft2K)Q%TZgltf%K zCBgi3Z)eF)(kBPghFKC(NH*Y1M`SG|W?cOQ9kcILgp6LYb)`*OvbSs`Ye5hf$tIjGcJ`AKQlCUFG=o_WasizdM}oIC`@qRp?0F>^NTNIG%qtbEBbq#@mxu zddN1=o?6IK_`tYfaYv}f`6zwMtx-=!fWGPsbbO;dU<^HNCNsTL0y9X-fo5W1PKXDM_6f0xA0< z@XF~`b{c)h*T8?9e(HM(Hrwo96+VcoQ9C(=)8}K9_WAetzKaZuEXYIeYO;-f>>po& zOo$+i>m^}+&)QQJt$YXluwqLC=31O@kGn|%=f8v`i3FX)>_<{G6o_v=iQnj8avI4n zk~ES|AnZ`{?mdo7Bu~&Yf%U%lKV(sIS{_3#9Tmb1*`w?4M|Jis0iG|9?Ec`|=a!-o z-WyMO=SM*Pe`MDIw-O6_bRNn{xbk}(X)qn2hdn0iL~w}05&c2DUsylH4RHiZJ46uX zECXW8>?{lyV4iFQ=^|=dslZUX0yFek2*O3oM#CEDK+MVXvY=fIR_4U>j-o4kxnZ(- zqPgH&b*nNy-SF;#4-UU~_@iiH%f1_x?YY(qZL>B`ZG5mGEfm#J2IjP0tD}EbL-c%b zr%bA|d^f&wW0u|)pQ2j#ME)9u#;x?hg4E&9Ulny0WiyYH0nNdog1306!y7th?cny~@wpA3~3 zWrf8V=2EV!yl&Xeapf`G+XfxSyp=*W0CG%Bct9d9N&@1vdx=Cs37w6G_IRefOZYsL zf1g$Ui3v(b4Um#NaJ=8_H=u?xG?$HZlBAB4$8iEHEOqn^ZIgn-I8W;6Ct8i7TAABU zztkENtlACYbj1IX?Wx@dSYd=F)Fhb!f)QV`r%$JP2le!P4J3Uy|11(~4;lb`&yo`P!g+5rHL!z%&|(31@8d zq&JMQZ?j^b{>fYCJ7Y85po~2r@M0e-*`~#7JRKJ!@J~dyP0NeHD0GK#M$JNkl${Lw z*tdfgh|@4jlsBX%pRVYRaszm;!11cImEyFj@5`1I9#b5%VjbNCSMAnI3pdVDPYGWJ4Hx9t-T&F9%*kBs zipe7rNAgOf=<>3FjBUOdYbnH9J`#WH_?06cYnh2XomXrBva+eD*4|Vb3u@!_*1Xy{ zqdxhWzj{2Hui1EA9E;BQAN$N-HC{>SaEU#6r9a6 z4C^|UtMn)s_T5wIp)GlfepCDK2*Y6YzW^|*|2`7L3xWw}Au-!+SrC31=OB3re#SZ= zcbE29#YikKYIC9}?dNYt)TmTB*P=<<*PA41%Pa@P!t0mc|FEu`Uw0gqGi6p6g2!bA zprmX+(XS8orXMFi0Up*r;{<&!w#~bN*YcsJtC2YlMsvsLM6A}ohv&D9ed{X@-%S0# E0Tf27*Z=?k delta 2765 zcmaJ@YitzP6`s5E+@0N>UGK|p_F-d>DF#xWhNM;?U=*_<2}P|@v@APovu16>o!J6m zDQ=3A=H7Ge*CpC!B@_T#1yyD6!>Yc#}m1X{hcq3kkTO)zyd%t$1p!sq~u%GC)W z_ID{vY8t*y^WR1{+b*kBEqh5;NR&;*x3f?r#y$^+TvjU#+gM2sMXk7F3&34c?HOX( z#cqmG*J#qQ>jSWBucEPNBuv&NZzxUr6Hlzp+9rmlwoUE(DyOS#RY|BVFo(7xw6nN7 zo!Exm9RRkQ7L0tRSTHR;WXm*vp_Df*`V9NI`+0>Q$y>IoV6gwV`?__(7R-Ec*cOH- z=om$xZI4+xGgdIo!o;|VmmG)2{vsS?Bc3jQ6a?l$aBPxWRyFpK=UB(G8hfC&ET}EF z58qc)OQ~)5q=nR;2dTb=R9|KAc67lTUt)gsw_P(YE_Uo))b`CQ`&M8ZF1L0+*ykkp zIRSr@dAtvXH_c`I8e&bn+j=1RsamPXdx#jZ|l>D1eN>QU%jc|c9iZ0nB*R6(W$FT?9)gx-0NB8 z_<;I|pW=H)40|U-VfLYFwSGU64q6ixN%yxk5+>$pi`NC4TXY$x%m&>0c zlZPKGjbh)*PC9aBK1<>^_I^T>x8!m}SmfcD!|*p~u!wmiL7bmX~wj&mPx+{ zGF`DnvvfXB?Es#Vn;5t9m#mDDwX)UAYlBHNfY1+MOT&dC>|l$-1!`Kef^(k~4YuXA z#kM<>$rZDvnaR{LXi~1;&{_6wr~|C~UFbB})fw)LzKA=cA@pT{T431e@ZkXZV~PNi z+>+J`m-UPAbaD{JI=>!QdK?7xYYUM>loBuHGT+H2)kJ>+Uslkw35~<NGHW7+Z2a5iU^DCB>pV2+oH zMP03CLO=Uu>*k?7FxBRdyl}#KdhjePS~yP&Af;|p$@xpUV#&zsQZ?yMqvi@i^;qno zX(o~x(q?>(VqRn4X=|781)BR=u1zP)?0;=N?0(yilCe#yRvL0c-493Zd{iYe{ydFpuaP2o8mxgWeM!tkK|&WbzP2#XkYQf}+z9 zo921P@OZ@)vudI=sbL$IfdGsjA<=sCX*+Mqfj4Sk<`*3x_3ujih=Jg$QV@ z*#+>`#-h2@oR}A4kA;ZXxY`>MV_)`YqPXi32T*0+i=UkC93@*FZg%!^Y6;rtcw#FD z#wLtXG5;LB12TLE<~jD|<~>>`QRgFFGtH|U^j6dC*{*hNH`z6{_X`d_&gTCIxk7T_ diff --git a/rides/urls.py b/rides/urls.py index e7a90588..ad9b31ed 100644 --- a/rides/urls.py +++ b/rides/urls.py @@ -6,4 +6,5 @@ app_name = 'rides' urlpatterns = [ path('', views.RideListView.as_view(), name='ride_list'), path('create/', views.RideCreateView.as_view(), name='ride_create'), + path('/', views.RideDetailView.as_view(), name='ride_detail'), ] diff --git a/rides/views.py b/rides/views.py index be3e22a5..cd628b51 100644 --- a/rides/views.py +++ b/rides/views.py @@ -15,11 +15,17 @@ from moderation.models import EditSubmission class RideCreateView(LoginRequiredMixin, CreateView): model = Ride template_name = 'rides/ride_form.html' - fields = ['name', 'park', 'park_area', 'category', 'manufacturer', 'model_name', 'status', + fields = ['name', 'park_area', 'category', 'manufacturer', 'model_name', 'status', 'opening_date', 'closing_date', 'status_since', 'min_height_in', 'max_height_in', 'accessibility_options', 'capacity_per_hour', 'ride_duration_seconds', 'description'] + def setup(self, request, *args, **kwargs): + super().setup(request, *args, **kwargs) + self.park = get_object_or_404(Park, slug=self.kwargs['park_slug']) + def form_valid(self, form): + form.instance.park = self.park + # If user is moderator or above, save directly if self.request.user.role in ['MODERATOR', 'ADMIN', 'SUPERUSER']: self.object = form.save() @@ -27,9 +33,8 @@ class RideCreateView(LoginRequiredMixin, CreateView): # Otherwise, create a submission cleaned_data = form.cleaned_data.copy() + cleaned_data['park'] = self.park.id # Convert model instances to IDs for JSON serialization - if cleaned_data.get('park'): - cleaned_data['park'] = cleaned_data['park'].id if cleaned_data.get('park_area'): cleaned_data['park_area'] = cleaned_data['park_area'].id if cleaned_data.get('manufacturer'): @@ -43,14 +48,19 @@ class RideCreateView(LoginRequiredMixin, CreateView): reason=self.request.POST.get('reason', ''), source=self.request.POST.get('source', '') ) - return HttpResponseRedirect(reverse('ride_list')) + return HttpResponseRedirect(reverse('parks:rides:ride_list', kwargs={'park_slug': self.park.slug})) def get_success_url(self): - return reverse('ride_detail', kwargs={ - 'park_slug': self.object.park.slug, + return reverse('parks:rides:ride_detail', kwargs={ + 'park_slug': self.park.slug, 'ride_slug': self.object.slug }) + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context['park'] = self.park + return context + class RideDetailView(SlugRedirectMixin, EditSubmissionMixin, PhotoSubmissionMixin, InlineEditMixin, HistoryMixin, DetailView): model = Ride template_name = 'rides/ride_detail.html' @@ -75,7 +85,7 @@ class RideDetailView(SlugRedirectMixin, EditSubmissionMixin, PhotoSubmissionMixi return context def get_redirect_url_pattern(self): - return 'ride_detail' + return 'parks:rides:ride_detail' def get_redirect_url_kwargs(self): return { @@ -88,36 +98,52 @@ class RideListView(ListView): template_name = 'rides/ride_list.html' context_object_name = 'rides' + def setup(self, request, *args, **kwargs): + super().setup(request, *args, **kwargs) + self.park = None + if 'park_slug' in self.kwargs: + self.park = get_object_or_404(Park, slug=self.kwargs['park_slug']) + def get_queryset(self): queryset = Ride.objects.select_related('park', 'coaster_stats', 'manufacturer').prefetch_related('photos') + # Filter by park if viewing park-specific rides + if self.park: + queryset = queryset.filter(park=self.park) + search = self.request.GET.get('search', '').strip() or None category = self.request.GET.get('category', '').strip() or None status = self.request.GET.get('status', '').strip() or None manufacturer = self.request.GET.get('manufacturer', '').strip() or None if search: - queryset = queryset.filter( - Q(name__icontains=search) | - Q(park__name__icontains=search) - ) + if self.park: + queryset = queryset.filter(name__icontains=search) + else: + queryset = queryset.filter( + Q(name__icontains=search) | + Q(park__name__icontains=search) + ) if category: queryset = queryset.filter(category=category) if status: queryset = queryset.filter(status=status) if manufacturer: - # Example: Exclude null manufacturers in RideListView - queryset = Ride.objects.exclude(manufacturer__isnull=True) + queryset = queryset.exclude(manufacturer__isnull=True) return queryset def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) + context['park'] = self.park - # Exclude cases where manufacturer is null or an empty string + # Get manufacturers for the filter dropdown + manufacturer_query = Ride.objects + if self.park: + manufacturer_query = manufacturer_query.filter(park=self.park) + context['manufacturers'] = list( - Ride.objects.exclude(manufacturer__isnull=True) - .exclude(manufacturer__isnull=True) + manufacturer_query.exclude(manufacturer__isnull=True) .values_list('manufacturer__name', flat=True) .distinct().order_by('manufacturer__name') ) diff --git a/templates/base/base.html b/templates/base/base.html index b3de5d28..92671297 100644 --- a/templates/base/base.html +++ b/templates/base/base.html @@ -66,7 +66,7 @@ Parks - + Rides diff --git a/templates/companies/manufacturer_detail.html b/templates/companies/manufacturer_detail.html index dbaa8256..769d7750 100644 --- a/templates/companies/manufacturer_detail.html +++ b/templates/companies/manufacturer_detail.html @@ -4,22 +4,22 @@ {% block title %}{{ manufacturer.name }} - ThrillWiki{% endblock %} {% block content %} -
+
-
-
+
+
-

{{ manufacturer.name }}

+

{{ manufacturer.name }}

{% if manufacturer.headquarters %}

- {{ manufacturer.headquarters }} + {{ manufacturer.headquarters }}

{% endif %}
{% if manufacturer.website %} - Visit Website + class="mt-4 btn-secondary md:mt-0"> + Visit Website {% endif %}
@@ -32,54 +32,54 @@
-
-
+
+
{{ rides.count }}
-
Total Rides
+
Total Rides
-
+
{{ rides|filter:"type='ROLLER_COASTER'"|length }}
-
Roller Coasters
+
Roller Coasters
-
+
{{ rides|regroup:"park"|length }}
-
Parks with Rides
+
Parks with Rides
-
-

Rides

+
+

Rides

-
+
{% for ride in rides %} -
+
{% if ride.photos.exists %} {{ ride.name }} + class="object-cover w-full h-48"> {% else %} -
+
No image available
{% endif %}
-

- + {{ ride.name }}

-

+

at {{ ride.park.name }}

@@ -105,8 +105,8 @@ {% endif %} {% if ride.average_rating %} -
- +
+ {{ ride.average_rating|floatformat:1 }}/10 @@ -115,7 +115,7 @@
{% empty %} -
+

No rides found for this manufacturer.

{% endfor %} diff --git a/templates/home.html b/templates/home.html index 08b3ae78..30a8f36a 100644 --- a/templates/home.html +++ b/templates/home.html @@ -18,7 +18,7 @@ class="px-8 py-3 text-lg btn-primary"> Explore Parks - View Rides @@ -93,7 +93,7 @@ Popular Rides {% for ride in popular_rides %} -
{{ ride.name }} diff --git a/templates/parks/park_detail.html b/templates/parks/park_detail.html index 588e122b..83fc8984 100644 --- a/templates/parks/park_detail.html +++ b/templates/parks/park_detail.html @@ -69,12 +69,12 @@
- +
@@ -134,12 +134,17 @@
-

Attractions

+
+

Attractions

+ + View All + +
{% for ride in rides %}

- {{ ride.name }} diff --git a/templates/parks/park_list.html b/templates/parks/park_list.html index 4bb3fcf9..2476b646 100644 --- a/templates/parks/park_list.html +++ b/templates/parks/park_list.html @@ -8,7 +8,7 @@

Parks

{% if user.is_authenticated %} - + Add Park {% endif %} @@ -70,7 +70,7 @@ {% endif %}

- {{ park.name }} @@ -95,9 +95,10 @@ {% endif %}

-
- {{ park.rides.count }} attractions -
+ + {{ park.rides.count }} attractions + {% if park.owner %} diff --git a/templates/rides/partials/ride_list.html b/templates/rides/partials/ride_list.html index 0369d074..f58b8ff7 100644 --- a/templates/rides/partials/ride_list.html +++ b/templates/rides/partials/ride_list.html @@ -1,60 +1,63 @@ {% for ride in rides %} -
- {% if ride.photos.first %} - {{ ride.name }} - {% else %} -
- No image available -
- {% endif %} - -
-

- {{ ride.name }} -

-

- at {{ ride.park.name }} -

-
- {{ ride.get_category_display }} - {% if ride.average_rating %} -
- - {{ ride.average_rating|floatformat:1 }}/10 +
+ {% if ride.photos.exists %} +
+ {{ ride.name }} +
+ {% endif %} +
+

+ + {{ ride.name }} + +

+ {% if not park %} +

+ at + {{ ride.park.name }} + +

+ {% endif %} +
+ + {{ ride.get_category_display }} + + + {{ ride.get_status_display }} + + {% if ride.average_rating %} + + + {{ ride.average_rating|floatformat:1 }}/10 + + {% endif %} +
+ {% if ride.coaster_stats %} +
+ {% if ride.coaster_stats.height_ft %} +
+ Height: {{ ride.coaster_stats.height_ft }}ft +
+ {% endif %} + {% if ride.coaster_stats.speed_mph %} +
+ Speed: {{ ride.coaster_stats.speed_mph }}mph +
+ {% endif %}
{% endif %}
- {% if ride.category == 'RC' and ride.coaster_stats %} -
- {% if ride.coaster_stats.height_ft %} -
Height: {{ ride.coaster_stats.height_ft|floatformat:0 }}ft
- {% endif %} - {% if ride.coaster_stats.speed_mph %} -
Speed: {{ ride.coaster_stats.speed_mph|floatformat:0 }}mph
- {% endif %} -
Inversions: {{ ride.coaster_stats.inversions }}
-
- {% endif %} - {% if ride.status != 'OPERATING' %} -
- - {{ ride.get_status_display }} - -
- {% endif %}
-
{% empty %} -
-

No rides found matching your criteria.

-
+
+

No rides found matching your criteria.

+
{% endfor %} diff --git a/templates/rides/ride_form.html b/templates/rides/ride_form.html index 30f70b6b..98b44a89 100644 --- a/templates/rides/ride_form.html +++ b/templates/rides/ride_form.html @@ -1,18 +1,24 @@ {% extends 'base/base.html' %} {% load static %} -{% block title %}Add Ride - ThrillWiki{% endblock %} +{% block title %}Add Ride at {{ park.name }} - ThrillWiki{% endblock %} {% block content %}
-

Add Ride

+
+

Add Ride at {{ park.name }}

+ + Back to {{ park.name }} Rides + +
{% csrf_token %} {% for field in form %} + {% if field.name != 'park' %}
{% endif %}
+ {% endif %} {% endfor %} {% if not user.role == 'MODERATOR' and not user.role == 'ADMIN' and not user.role == 'SUPERUSER' %} @@ -78,7 +85,7 @@ {% endif %}
- + Cancel -
-
+
{% for ride in rides %}
{% if ride.photos.exists %} @@ -71,17 +85,19 @@ {% endif %}

- {{ ride.name }}

-

- at - {{ ride.park.name }} - -

+ {% if not park %} +

+ at + {{ ride.park.name }} + +

+ {% endif %}
{{ ride.get_category_display }} diff --git a/templates/search_results.html b/templates/search_results.html index 35076d4a..9a533cd7 100644 --- a/templates/search_results.html +++ b/templates/search_results.html @@ -43,9 +43,10 @@

{{ park.location }}

- + {{ park.rides.count }} attractions - + {% if park.average_rating %}
@@ -81,7 +82,7 @@

- {{ ride.name }} diff --git a/thrillwiki/__pycache__/urls.cpython-312.pyc b/thrillwiki/__pycache__/urls.cpython-312.pyc index d50711a0d6c1297c2d67dc1e92eac26a1b076fca..573a9b0475293f787dfeb2042ddccd6db51728a2 100644 GIT binary patch delta 461 zcmca1(j%gNnwOW00SIh0l+x8X7#JRdI4~dvWqiIfQT_X5113>+VJ3!DmJ|^Xn^AOf z0i$BF*czVI%n)@zIp!2`AjzAh0y6?Zr%0@kT+ImKr%0jclE$e^W{u?JeT=fqEGhC} z7s!EKpa5cPDyDL0sUd8Du~L-KOjn+q$7C$1f+ng87F9zNRiFHg$v9L4O;i(TlMc*$ z1f8OVrcN8|I-L~VH3F-dAnIUry1?W*W?x3V$!C}yrS)KHuxhftin>Q*_bP>49CRpJK2^U^Np&9gI#FoE*pO%V;=x4YQ-PAxyN2 zmw_QlJjEzVHpMtfuF^!)bTS9a8Y#A-%#_q({VFantyfx` diff --git a/thrillwiki/urls.py b/thrillwiki/urls.py index 94870535..9d4241ce 100644 --- a/thrillwiki/urls.py +++ b/thrillwiki/urls.py @@ -14,7 +14,6 @@ urlpatterns = [ # Parks URLs path('parks/', include('parks.urls', namespace='parks')), - path('rides/', include('rides.urls', namespace='rides')), # Other URLs path('reviews/', include('reviews.urls')),