From bfd592299c08befaf24733fdbf83b156565fc958 Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Thu, 17 Feb 2022 17:23:05 -0800 Subject: [PATCH 1/3] change: display default package search parameter values in its form The previous behavior was carried over from PHP. It has been requested that we use the true defaults when rendering the default form, making search a bit more sensible. Closes #269 Signed-off-by: Kevin Morris --- aurweb/routers/packages.py | 9 +---- templates/partials/packages/search.html | 6 +++ .../partials/packages/search_results.html | 40 +++++++++++-------- 3 files changed, 31 insertions(+), 24 deletions(-) diff --git a/aurweb/routers/packages.py b/aurweb/routers/packages.py index d4e85d20..34c09d86 100644 --- a/aurweb/routers/packages.py +++ b/aurweb/routers/packages.py @@ -40,7 +40,7 @@ async def packages_get(request: Request, context: Dict[str, Any], search_by = context["SeB"] = request.query_params.get("SeB", "nd") # Query sort by. - sort_by = context["SB"] = request.query_params.get("SB", "p") + sort_by = request.query_params.get("SB", None) # Query sort order. sort_order = request.query_params.get("SO", None) @@ -93,13 +93,6 @@ async def packages_get(request: Request, context: Dict[str, Any], # Apply user-specified specified sort column and ordering. search.sort_by(sort_by, sort_order) - # If no SO was given, default the context SO to 'a' (Ascending). - # By default, if no SO is given, the search should sort by 'd' - # (Descending), but display "Ascending" for the Sort order select. - if sort_order is None: - sort_order = "a" - context["SO"] = sort_order - # Insert search results into the context. results = search.results().with_entities( models.Package.ID, diff --git a/templates/partials/packages/search.html b/templates/partials/packages/search.html index 33bc6132..3db5c7a4 100644 --- a/templates/partials/packages/search.html +++ b/templates/partials/packages/search.html @@ -34,6 +34,9 @@
+ {% if not SB %} + {% set SB = 'p' %} + {% endif %} diff --git a/templates/partials/packages/search_results.html b/templates/partials/packages/search_results.html index c3b4427c..84c39079 100644 --- a/templates/partials/packages/search_results.html +++ b/templates/partials/packages/search_results.html @@ -1,3 +1,5 @@ +{% set reverse_order = "d" if SO == "a" else "a" %} + @@ -5,9 +7,10 @@ {% endif %} {% if request.user.is_authenticated() %} From dcaf407536993cce9ae37482d3fbb9c699477a4b Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Thu, 17 Feb 2022 17:42:24 -0800 Subject: [PATCH 2/3] fix: /packages search result count We need to query for this after we've applied all filters. Signed-off-by: Kevin Morris --- aurweb/routers/packages.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/aurweb/routers/packages.py b/aurweb/routers/packages.py index 34c09d86..bc12455d 100644 --- a/aurweb/routers/packages.py +++ b/aurweb/routers/packages.py @@ -61,11 +61,6 @@ async def packages_get(request: Request, context: Dict[str, Any], for keyword in keywords: search.search_by(search_by, keyword) - # Collect search result count here; we've applied our keywords. - # Including more query operations below, like ordering, will - # increase the amount of time required to collect a count. - num_packages = search.count() - flagged = request.query_params.get("outdated", None) if flagged: # If outdated was given, set it up in the context. @@ -90,7 +85,12 @@ async def packages_get(request: Request, context: Dict[str, Any], search.query = search.query.filter( models.PackageBase.MaintainerUID.is_(None)) - # Apply user-specified specified sort column and ordering. + # Collect search result count here; we've applied our keywords. + # Including more query operations below, like ordering, will + # increase the amount of time required to collect a count. + num_packages = search.count() + + # Apply user-specified sort column and ordering. search.sort_by(sort_by, sort_order) # Insert search results into the context. From b2508e5bf860320d3e2644c0b87bae13acdd9ca9 Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Thu, 17 Feb 2022 18:27:00 -0800 Subject: [PATCH 3/3] upgrade: bump to v6.0.15 Signed-off-by: Kevin Morris --- aurweb/config.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/aurweb/config.py b/aurweb/config.py index eea156f5..6284f794 100644 --- a/aurweb/config.py +++ b/aurweb/config.py @@ -6,7 +6,7 @@ from typing import Any # Publicly visible version of aurweb. This is used to display # aurweb versioning in the footer and must be maintained. # Todo: Make this dynamic/automated. -AURWEB_VERSION = "v6.0.14" +AURWEB_VERSION = "v6.0.15" _parser = None diff --git a/pyproject.toml b/pyproject.toml index 50691228..cc6e9d2e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ # [tool.poetry] name = "aurweb" -version = "v6.0.14" +version = "v6.0.15" license = "GPL-2.0-only" description = "Source code for the Arch User Repository's website" homepage = "https://aur.archlinux.org"
- {% set order = SO %} {% if SB == "n" %} - {% set order = "d" if order == "a" else "a" %} + {% set order = reverse_order %} + {% else %} + {% set order = SO %} {% endif %} {{ "Name" | tr }} @@ -15,35 +18,39 @@ {{ "Version" | tr }} - {% set order = SO %} {% if SB == "v" %} - {% set order = "d" if order == "a" else "a" %} + {% set order = reverse_order %} + {% else %} + {% set order = SO %} {% endif %} {{ "Votes" | tr }} - {% set order = SO %} {% if SB == "p" %} - {% set order = "d" if order == "a" else "a" %} + {% set order = reverse_order %} + {% else %} + {% set order = SO %} {% endif %} {{ "Popularity" | tr }}? - {% set order = SO %} {% if SB == "w" %} - {% set order = "d" if order == "a" else "a" %} + {% set order = reverse_order %} + {% else %} + {% set order = SO %} {% endif %} {{ "Voted" | tr }} - {% set order = SO %} {% if SB == "o" %} - {% set order = "d" if order == "a" else "a" %} + {% set order = reverse_order %} + {% else %} + {% set order = SO %} {% endif %} {{ "Notify" | tr }} @@ -52,13 +59,14 @@ {% endif %} {{ "Description" | tr }} + {% if SB == "m" %} + {% set order = reverse_order %} + {% else %} {% set order = SO %} - {% if SB == "m" %} - {% set order = "d" if order == "a" else "a" %} - {% endif %} - - {{ "Maintainer" | tr }} - + {% endif %} + + {{ "Maintainer" | tr }} +