From 7b8e33a12279825befcce329cf94bcffd29c31ca Mon Sep 17 00:00:00 2001
From: Jennifer Kuenning <72825410+jkueloc@users.noreply.github.com>
Date: Thu, 31 Mar 2022 11:33:27 -0400
Subject: [PATCH] 1556 profile pages worked on (#1658)
* restore profile html filter on campaign
* added class row to pagination div for consistency
* black formatting update
* updated profile qs sort and pagination
* updated profile qs sort and pagination
* move all sorting to queryset - post black format
---
concordia/templates/account/profile.html | 2 +-
concordia/views.py | 13 ++++++-------
2 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/concordia/templates/account/profile.html b/concordia/templates/account/profile.html
index a1152dc6e..d3d84f4af 100644
--- a/concordia/templates/account/profile.html
+++ b/concordia/templates/account/profile.html
@@ -118,7 +118,7 @@
Pages worked on
- {{ asset.last_interaction_time }} |
+ {{ asset.latest_activity }} |
{{ asset.item.title }} |
{{ asset.sequence }} |
{{ asset.last_interaction_type.title }} |
diff --git a/concordia/views.py b/concordia/views.py
index 064774924..786092bee 100644
--- a/concordia/views.py
+++ b/concordia/views.py
@@ -28,6 +28,7 @@
from django.core.paginator import Paginator
from django.db import connection
from django.db.models import Case, Count, IntegerField, Max, OuterRef, Q, Subquery, When
+from django.db.models.functions import Greatest
from django.db.transaction import atomic
from django.http import Http404, HttpResponse, JsonResponse
from django.shortcuts import get_object_or_404, redirect, render
@@ -501,11 +502,11 @@ def get_queryset(self):
assets = Asset.objects.filter(
transcription__in=transcriptions,
item__project__campaign__pk=campaignSlug,
- ).order_by("-latest_date", "-id")
+ ).order_by("-latest_activity", "-id")
else:
campaignSlug = -1
assets = Asset.objects.filter(transcription__in=transcriptions).order_by(
- "-latest_date", "-id"
+ "-latest_activity", "-id"
)
assets = assets.select_related(
@@ -521,8 +522,9 @@ def get_queryset(self):
"transcription__updated_on",
filter=Q(transcription__reviewed_by=self.request.user),
),
- latest_date=Max(
- "transcription__updated_on",
+ latest_activity=Greatest(
+ "last_transcribed",
+ "last_reviewed",
filter=Q(transcription__user=self.request.user)
| Q(transcription__reviewed_by=self.request.user),
),
@@ -544,10 +546,8 @@ def get_context_data(self, *args, **kwargs):
for asset in obj_list:
if asset.last_reviewed:
- asset.last_interaction_time = asset.last_reviewed
asset.last_interaction_type = "reviewed"
else:
- asset.last_interaction_time = asset.last_transcribed
asset.last_interaction_type = "transcribed"
if int(campaignSlug) == -1:
@@ -557,7 +557,6 @@ def get_context_data(self, *args, **kwargs):
object_list.append((asset))
user = self.request.user
- object_list.sort(key=lambda x: x.last_interaction_time, reverse=True)
contributed_campaigns = (
Campaign.objects.annotate(