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(