Add workspace due indicators and todo assignment
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
from datetime import datetime, time
|
||||
|
||||
from django.db.models import Q
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
from .models import UserPreference, WorkspaceMembership, get_or_create_personal_workspace
|
||||
from .models import Item, UserPreference, WorkspaceMembership, get_or_create_personal_workspace
|
||||
|
||||
|
||||
def active_workspace_navigation(request):
|
||||
@@ -13,9 +17,16 @@ def active_workspace_navigation(request):
|
||||
membership = WorkspaceMembership.objects.select_related('workspace').filter(user=request.user, workspace_id=workspace_id).first()
|
||||
if membership:
|
||||
workspace = membership.workspace
|
||||
memberships = list(WorkspaceMembership.objects.filter(user=request.user).select_related('workspace').order_by('workspace__name'))
|
||||
today_end = timezone.make_aware(datetime.combine(timezone.localdate(), time(23, 59, 59)))
|
||||
for membership in memberships:
|
||||
team_ids = request.user.team_memberships.filter(team__workspace=membership.workspace).values_list('team_id', flat=True)
|
||||
membership.due_count = Item.objects.filter(
|
||||
workspace=membership.workspace, kind=Item.Kind.TODO, is_done=False, due_at__lte=today_end,
|
||||
).filter(Q(owner=request.user) | Q(assignee=request.user) | Q(team_id__in=team_ids) | Q(visibility=Item.Visibility.PUBLIC)).distinct().count()
|
||||
return {
|
||||
'active_workspace': workspace,
|
||||
'workspace_memberships': WorkspaceMembership.objects.filter(user=request.user).select_related('workspace').order_by('workspace__name'),
|
||||
'workspace_memberships': memberships,
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user