From 71272e36a608fb315784d9b666d2f98b408e0b7b Mon Sep 17 00:00:00 2001 From: pacnpal <183241239+pacnpal@users.noreply.github.com> Date: Thu, 31 Oct 2024 17:27:31 +0000 Subject: [PATCH] idk man --- parks/__pycache__/models.cpython-312.pyc | Bin 7729 -> 7202 bytes parks/__pycache__/urls.cpython-312.pyc | Bin 1341 -> 1245 bytes parks/__pycache__/views.cpython-312.pyc | Bin 12646 -> 11951 bytes parks/models.py | 30 +++---- parks/urls.py | 1 - parks/views.py | 53 +++++-------- static/css/tailwind.css | 4 + templates/parks/park_detail.html | 11 +-- templates/parks/park_list.html | 96 +++++++++++++++++++---- templates/parks/partials/park_list.html | 2 +- 10 files changed, 119 insertions(+), 78 deletions(-) diff --git a/parks/__pycache__/models.cpython-312.pyc b/parks/__pycache__/models.cpython-312.pyc index 98aaed343acc4e280d2adac8ec0fe3205ba2a335..a2e154aa03d5dec77033665f41369c60d4bf9e5a 100644 GIT binary patch delta 1128 zcmZvbOH30{6o%(cr!U*mQc7n^A67*LqZH+#NQKraQZ+&Z@lmyu(iEhE-YJka)5x+V z8Z$ass@LnC!|jl`pCYU8 zkKu_XF*cJ3&{uIE>2|nl${NPuUJ+VKLd!>?EzeyweO@}}C?N9AxEXbkZ^n%E2#tQC zl2!4Ph`Xr9{Um4dp)h%BdSigPRP_GtLgYT*#O4qg*4bGcB-LiS2DeFQRI!j3yp!0> zHu93MHQeR0CWgr&2@Q~_j@Mw0a=PUX0?XD<-g%ysi`m3)aP}p2J=GaeCJ~8y^cE_pNzJ}jf;c# zBDW(e?j0rfj%8QVP|xu@t^ZVoI9!ICkU?=9;Xi;y>$wM>7qXKQkN^Mx delta 1709 zcmcJPPiz}S6vk(~_QsCac9Yaj6Q}9c(8#M;2}x+7ic9S}NeQ8$A*v86XtiB$jUC5M zXPtnpr4APqM}-uP_;+ekRSFfSDu*7SH$)E*B`DFJI3RA7Qd$r~9GJJpZGzJyBl)-A z&YSmU#`DeIc=2}Bd(Y!(M6A7WFO<5|a@!kr+P=s1QsDK@6ndXCP=<%-?naIn9PMlL z@82s*73aYYj98{s_oDOu zQAj~IU9zlZ6Va}G_Nw1Ni1xPz%iBC^?^y6|xqVB= z7msfV?VG~kHR15}XIG?UX{BemXG7?N;Narm&S3X)_hzVnE!4ju3_v)#7~L6;EJrp& z18bpy4dM9*JQCWsI>c+EUyfeSt#=$<7`k%i7pJGvP!X=Ke(GAm_#{2yE;gTK>$=66 zoSN0iNv6p;`klKMPtrf#cUw5t0l$ai>{vcW%xak4bp=}4DdP+Tb~pO1>i|`q!C}i+ zdpmNkJaA$CXmCrl(qkt)neHhofJ*hFp^_b=B&HLM`}Y~RX0l0Uol=7S>N!*v)%^5@ zbS|AsiQt)t2wutOBBGK@vY2HT@)Db0;z^7>NE`qrBc}ifzz~CEvus0NVOqB_h@#~O zGmz2>^2I!vRtg0zDc5{d3W7yw(%V{=A>|UoJo>pU_`lj?%h$40tQ5cKT=#{4bcV@M zHY??Pr+CW(!*tBo>9@87e`a-uE>JOg*?0fMIgl>^q5yEZ>9(%Hv{ra0pCsp@8@6M5 z{=FZnmd(oYElkE%zuI>nOHGch?JmSOJ+QeP3H*>_a@&%B1Y8cuS`Trv0_rDC{?+y7 zS8dF$qCe&+v%V75{GZ`@`nSIqU#5}3Hxt&XA76Vi0@K5)BzyHRUWSfQz!-yWXZX)W z^}s2_iKbYW^@G*!)*rBNhK(B`s1XLQV diff --git a/parks/__pycache__/urls.cpython-312.pyc b/parks/__pycache__/urls.cpython-312.pyc index b2afbce091c55db094ac96d2478082edb6dc5105..016ae9e834ce0050fd2c3c88faf0faab20b982be 100644 GIT binary patch delta 140 zcmdnXb(d59G%qg~0}vGMQcgd{#K7-GO{vLpOcy5eF^4h=Oip1go_vQnk4qk?j1h>7&rJ?tSumNM RRhwIolb@-PyGRx&3IOPb97q5F delta 199 zcmcc1xtB}*G%qg~0}%W>rM7Y2rx0EGNydmU`p zxv3~y{4>g<86*;xNX*D4%+wgs1o`9_BcWMLoBGKwMiW1vU@-BE?{hbBkX>@Wd*9#h zd7pdl`Saed-PaFWelVL&9J^X?)b{=4&RQHKkqtf==(o3$=G^CYJ@46%YMjAULJzWsLKyhy2BbUT zc2zCufWNB7eXpqmgR30fh-1~F1xE-?a9)a#mfTG#L7wYIww^)Bq9lj*v3h)G(GD+r){-RLl$^OK&u@fG!m!udlEM{_ zf~f811agB2n5MFJB}gPUGlx1_~Ck&*vN0zHJ1)sR;=g6xy|5ANGx* ztrlqHm(|lao1c!rcQq2sx$VN+X!s^v^Ivdln`U!X59$jaeJRUUckO=iE__wHW$Z1q zFw-ZJhBfei(x~e8IC76?ik?UA48l7MmZ#_}k_bmpz|U4wWXBXm$M+VieRuRyu@X{s z9ǃ)tTuY3$W;+%%U4V)ekx+DhnJH_eaokX^T(@Q_~@;74`pM5j&k>O`+i3_t?C z!l;npX$Ztn6PQE1DHcj z(J*gW#tF#n5az{Y9NEu>SGUtP=9q3m*oLs1K}k5?pGv0`wIE7@BFAY@KlL#MXy}yn zA{&HFT5qUzaT@*&ZQ5*HR&*Db$rDZ~E>nyQSh?V(RZI#Fh1UvM)DFXVxFa+n6s=X$ z(QLF}_2;erf;Eu024+SU{EOD+f^}=&x^>aIZNgZD>tR0{i?*rEWTqf`^P;yP*5<|9 znO(Cx7RAPb*qj%e7sbsJdes=}>uYx2)9DpdIi delta 2576 zcmaJ?ZA@F&8NSE&!;bO2zV zh3Q)#m7?rT4h$KlYm+W_Q@Mv6Ltegs&I-w1l<%$9HD0>*MNK!^CHtE5Md9MPYv`}* z$RB*N8N`bo6WL{Hbj5kYhGA|lO)i?q4}2{*hGtoEps0v^%(_^1%tRIft~b0^4l!|= z+~aE=HQ)>bX^gvx3?6Fd{IMNx*m=hIHFo*SM~J&gnhhp!2^C;JKmZ^};W=DJ@jEze zGY(M<+i;i;cq4@zt48D43(HD?Du7L(5Jrakdg4*+14$8p2(Xz#SisdVuc44zHyG>f ziJy!Osd!5_NE-n5Qcwj7e*MF>bea?Uqw&b9c?*>Rg}Oi?$;{i7$paGyCfg_4r<-m# z)3&nY{;y?)@X6K(0^{(!!EZ=Jv=<|qd@R{I&xu*imEv62Ix}1e)!XwYhbD%yQZOY2 zZ|&ElU|MR(O3f*$`OaDGxg(m?oR&JZu5RsUwog2Y)Xkucbc`1pJ`%KTC6;*J>RJv>D0uoWb-P+;SA@yo9BLqo9=wuJ`>I4 z)oEPaTr}?lCv?!O;b%$8?n8&j5B5oPlw6XZLM?Nj%bcmG6SVyl-bc8H4k~1TUw0Pn zB6poZ)JrT%(%%PmU0}!HI+%kyaqBYdBQr`RY9+4~6wH0E96-AVK%<9OQU^!+BO`b) za{62k?#E}SCYJ|sIDS3?x-hHnoU^<%62<2s8T!fD{O#!U+=uyR5K@WH9YDimw|g_{ zBxl@S0nUjB$W?baN{~<7WeAg;`+D995Dx>KBv(8gi3@bP2suXsYcJJL{XS|7=iyUe za~fa}zyScK!Z8Xtr8hPdkB-J8vE!$rz46FU&l!3wP$vLh0UI$A=^gA*)!yjfU?f6a zcbQ6c*X=bNgBixmV2aEMaHN**NRvxdvY=I(QXKehx4O04@oe@gwbt|$NP_HT3Mxl|R!q{kNP=iZ6#_7-ZRGFnXUNmVmEK=~vEgY@tVx+y$kpN+ z;n$%5CHZ~vw9hy$UDGJ*8?D@tMrpL<5Sk`mmNXn62Mh6kBjW^~mB`=;Se^xVG#q#u zWWNG(ZLJ$P#<$ z9%Lo$rRCC!koHO3PO8h+lRpJT^3UM9?zlp!^>55HYg_J$7t9Rvh(>&(MtY*gPQDKo zpnXf*K`PXo>vrpn?XP?B)&H}faRF(Ojk(c+sh{n(%ChTa#ZS+2P8^A7rb_zLR zcpw&!sd_%;1U1@&dk6F$pR+7CQ!-z6&Uu3xhpk3M=?Ru3JsY-F@@w+*$V?_e-zNI_cj(L9Cp1#Un2Gw{(uQ^C z_^DvkL$q!lby?2dJA!d^C>}X+a*)1`s!`zlngZ9K#+3*5v1QGW>2N@}O}A3dk=x;| z1s>mZ+iz@HPesa8k@ZxiJXJGYpE}c?MzUw4S2AOdsZ^A@p=fFrLiZp z`S4PVVe1@6`@Cv&xXWa7Wf=XD9I4!y_`iMEsBXPA>P-qrA79gNfd&BlqJ}8^`wD%! z<>dZ(*T&?*`NDw4x$kp@yyw9VGw*)r)kNZ3}Oi^H/', views.ParkDetailView.as_view(), name='park_detail'), path('/rides/', include('rides.urls', namespace='rides')), ] diff --git a/parks/views.py b/parks/views.py index d7bf5553..c6d19611 100644 --- a/parks/views.py +++ b/parks/views.py @@ -45,24 +45,6 @@ def get_cities(request): ).values_list('name', flat=True)[:10] return JsonResponse(list(cities), safe=False) -def get_locations(request): - query = request.GET.get('q', '') - locations = set() - - # Search countries - countries = Country.objects.filter(name__icontains=query).values_list('name', flat=True)[:5] - locations.update(countries) - - # Search regions - regions = Region.objects.filter(name__icontains=query).values_list('name', flat=True)[:5] - locations.update(regions) - - # Search cities - cities = City.objects.filter(name__icontains=query).values_list('name', flat=True)[:5] - locations.update(cities) - - return JsonResponse(list(locations), safe=False) - class ParkCreateView(LoginRequiredMixin, CreateView): model = Park form_class = ParkForm @@ -163,26 +145,27 @@ class ParkListView(ListView): def get_queryset(self): queryset = Park.objects.select_related('owner', 'country', 'region', 'city').prefetch_related('photos', 'rides') - search = self.request.GET.get('search', '').strip() or None - location = self.request.GET.get('location', '').strip() or None - status = self.request.GET.get('status', '').strip() or None + search = self.request.GET.get('search', '').strip() + country = self.request.GET.get('country', '').strip() + region = self.request.GET.get('region', '').strip() + city = self.request.GET.get('city', '').strip() + status = self.request.GET.get('status', '').strip() if search: queryset = queryset.filter( Q(name__icontains=search) | - Q(location__icontains=search) | - Q(country__name__icontains=search) | - Q(region__name__icontains=search) | - Q(city__name__icontains=search) - ) - if location: - # Try to match against the formatted location or any location field - queryset = queryset.filter( - Q(location__icontains=location) | - Q(country__name__icontains=location) | - Q(region__name__icontains=location) | - Q(city__name__icontains=location) + Q(location__icontains=search) ) + + if country: + queryset = queryset.filter(country__name__icontains=country) + + if region: + queryset = queryset.filter(region__name__icontains=region) + + if city: + queryset = queryset.filter(city__name__icontains=city) + if status: queryset = queryset.filter(status=status) @@ -192,7 +175,9 @@ class ParkListView(ListView): context = super().get_context_data(**kwargs) context['current_filters'] = { 'search': self.request.GET.get('search', ''), - 'location': self.request.GET.get('location', ''), + 'country': self.request.GET.get('country', ''), + 'region': self.request.GET.get('region', ''), + 'city': self.request.GET.get('city', ''), 'status': self.request.GET.get('status', '') } return context diff --git a/static/css/tailwind.css b/static/css/tailwind.css index 8eb604be..9b56c102 100644 --- a/static/css/tailwind.css +++ b/static/css/tailwind.css @@ -3491,6 +3491,10 @@ select { grid-template-columns: repeat(4, minmax(0, 1fr)); } + .lg\:grid-cols-5 { + grid-template-columns: repeat(5, minmax(0, 1fr)); + } + .lg\:text-6xl { font-size: 3.75rem; line-height: 1; diff --git a/templates/parks/park_detail.html b/templates/parks/park_detail.html index 83fc8984..45be2302 100644 --- a/templates/parks/park_detail.html +++ b/templates/parks/park_detail.html @@ -18,8 +18,7 @@ data-field-name="name">{{ park.name }}

- {{ park.location }} + {{ park.get_formatted_location }}

@@ -201,12 +200,10 @@
- Country + Location
-
- {{ park.get_country_name }} +
+ {{ park.get_formatted_location }}
{% if park.opening_date %} diff --git a/templates/parks/park_list.html b/templates/parks/park_list.html index 50f5c05d..7d6ca276 100644 --- a/templates/parks/park_list.html +++ b/templates/parks/park_list.html @@ -16,9 +16,9 @@
-
@@ -29,11 +29,25 @@ placeholder="Search parks...">
- - Country + + placeholder="Select country..."> +
+
+ + +
+
+ +
@@ -84,27 +98,79 @@ {% endblock %} diff --git a/templates/parks/partials/park_list.html b/templates/parks/partials/park_list.html index 9962749f..d6f8e286 100644 --- a/templates/parks/partials/park_list.html +++ b/templates/parks/partials/park_list.html @@ -18,7 +18,7 @@

- {{ park.location }} + {{ park.get_formatted_location }}