fix: Replace jank way of sorting/pagination/searching for all/featured/winners in projects pages with an even jankier way
Signed-off-by: Skylar "The Cobra" Widulski <cobra@vern.cc>
This commit is contained in:
parent
3f602c6342
commit
c8f041cf36
12
main.py
12
main.py
|
@ -117,18 +117,16 @@ def search(path, head, args, query='*', teachers=False):
|
|||
if not type_ == '':
|
||||
category = "+%26%26+" + category
|
||||
|
||||
channel = f"{'channel' if not teachers else 'teachers'}%3A%20" + quote(head) #\
|
||||
# if len(split_path) > 2 and \
|
||||
# split_path[2] != '' and \
|
||||
# split_path[2] != 'projects' and \
|
||||
# not split_path[2].startswith("?x") \
|
||||
# else ''
|
||||
channel = f"{'channel' if not teachers else 'teachers'}%3A%20" + quote(head) \
|
||||
if head != '' \
|
||||
else ''
|
||||
if not type_ == '' or not category == '':
|
||||
channel = "+%26%26+" + channel
|
||||
|
||||
search_url += f"&filter_by={type_}{category}{channel}&per_page=60"
|
||||
search_data = requests.get(search_url, headers={"X-Typesense-API-Key": typesense_key})
|
||||
|
||||
print(search_data.text)
|
||||
if search_data.status_code != 200:
|
||||
return Response(render_template(str(search_data.status_code) + ".html"), status=search_data.status_code)
|
||||
|
||||
|
@ -219,7 +217,7 @@ def project_list(path, head, args=None, realpath=None, teachers=False):
|
|||
page = searched[1]
|
||||
pages = searched[2]
|
||||
|
||||
return render_template("projects.html", data=[header, ibles, realpath, page, pages], sub=re.sub)
|
||||
return render_template("projects.html", data=[header, ibles, realpath, page, pages], subn=re.subn, str=str)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -11,15 +11,15 @@
|
|||
{% include "header.html" %}
|
||||
<center>
|
||||
<h1>{{ data[0] }}</h1>
|
||||
<span><a href="{{ sub("[&?]projects=[^&]*", '', data[2]) }}&projects=all">All</a></span>
|
||||
<span><a href="{{ sub("[&?]projects=[^&]*", '', data[2]) }}&projects=featured">Featured</a></span>
|
||||
<span><a href="{{ sub("[&?]projects=[^&]*", '', data[2]) }}&projects=winners">Winners</a></span>
|
||||
<span><a href="{{ subn("([&?])projects=[^&]*", '\\1projects=all', data[2])[0] }}{{ "&projects=all" if subn("([&?])projects=[^&]*", '\\1projects=all', data[2])[1] == 0 else '' }}">All</a></span>
|
||||
<span><a href="{{ subn("([&?])projects=[^&]*", '\\1projects=featured', data[2])[0] }}{{ "&projects=featured" if subn("([&?])projects=[^&]*", '\\1projects=featured', data[2])[1] == 0 else '' }}">Featured</a></span>
|
||||
<span><a href="{{ subn("([&?])projects=[^&]*", '\\1projects=winners', data[2])[0] }}{{ "&projects=winners" if subn("([&?])projects=[^&]*", '\\1projects=winners', data[2])[1] == 0 else '' }}">Winners</a></span>
|
||||
<br>
|
||||
<span>Sort by:</span>
|
||||
<span><a href="{{ sub("[&?]sort=[^&]*", '', data[2]) }}&sort=Newest">Date</a></span>
|
||||
<span><a href="{{ sub("[&?]sort=[^&]*", '', data[2]) }}&sort=Views">Views</a></span>
|
||||
<span><a href="{{ sub("[&?]sort=[^&]*", '', data[2]) }}&sort=Favorites">Favorites</a></span>
|
||||
<span><a href="{{ sub("[&?]sort=[^&]*", '', data[2]) }}&sort=I+Made+Its">I Made Its</a></span>
|
||||
<span><a href="{{ subn("([&?])sort=[^&]*", '\\1sort=Newest', data[2])[0] }}{{ "&sort=Newest" if subn("([&?])sort=[^&]*", '\\1sort=Newest', data[2])[1] == 0 else '' }}">Date</a></span>
|
||||
<span><a href="{{ subn("([&?])sort=[^&]*", '\\1sort=Views', data[2])[0] }}{{ "&sort=Views" if subn("([&?])sort=[^&]*", '\\1sort=Views', data[2])[1] == 0 else '' }}">Views</a></span>
|
||||
<span><a href="{{ subn("([&?])sort=[^&]*", '\\1sort=Favorites', data[2])[0] }}{{ "&sort=Favorites" if subn("([&?])sort=[^&]*", '\\1sort=Favorites', data[2])[1] == 0 else '' }}">Favorites</a></span>
|
||||
<span><a href="{{ subn("([&?])sort=[^&]*", '\\1sort=I+Made+Its', data[2])[0] }}{{ "&sort=I+Made+Its" if subn("([&?])sort=[^&]*", '\\1sort=I+Made+Its', data[2])[1] == 0 else '' }}">I Made Its</a></span>
|
||||
<br>
|
||||
|
||||
<div style="max-width:90%;">
|
||||
|
@ -38,12 +38,12 @@
|
|||
{% if data[3] == 1 %}
|
||||
<li class="arrow arrow-prev disabled"><a>Previous</a></li>
|
||||
{% else %}
|
||||
<li class="arrow arrow-prev"><a href="{{ data[2] }}&page={{ data[3] - 1 }}">Previous</a></li>
|
||||
<li class="arrow arrow-prev"><a href="{{ subn("([&?])page=[^&]*", '\\1page=' + str(data[3] - 1), data[2])[0] }}{{ "&page=" + str(data[3] - 1) if subn("([&?])page=[^&]*", '\\1page=' + str(data[3] - 1), data[2])[1] == 0 else '' }}">Previous</a></li>
|
||||
{% endif %}
|
||||
{% for page in range(1, data[4] + 1) %}
|
||||
{% if ((data[3] - page < 3) and (data[3] - page > -3)) or (page == 1 or page == data[4]) %}
|
||||
{% if page != data[3] %}
|
||||
<li><a href="{{ data[2] }}&page={{ page }}">{{ page }}</a></li>
|
||||
<li><a href="{{ subn("([&?])page=[^&]*", '\\1page=' + str(page), data[2])[0] }}{{ "&page=" + str(page) if subn("([&?])page=[^&]*", '\\1page=' + str(page), data[2])[1] == 0 else '' }}">{{ page }}</a></li>
|
||||
{% else %}
|
||||
<li class="active"><a>{{ page }}</a></li>
|
||||
{% endif %}
|
||||
|
@ -52,7 +52,7 @@
|
|||
{% if data[3] == data[4] %}
|
||||
<li class="arrow arrow-next disabled"><a>Next</a></li>
|
||||
{% else %}
|
||||
<li class="arrow arrow-next"><a href="{{ data[2] }}&page={{ data[3] + 1 }}">Next</a></li>
|
||||
<li class="arrow arrow-next"><a href="{{ subn("([&?])page=[^&]*", '\\1page=' + str(data[3] + 1), data[2])[0] }}{{ "&page=" + str(data[3] + 1) if subn("([&?])page=[^&]*", '\\1page=' + str(data[3] + 1), data[2])[1] == 0 else '' }}">Next</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</center>
|
||||
|
|
Loading…
Reference in New Issue