This repository has been archived on 2023-09-24. You can view files and clone it, but cannot push or open issues or pull requests.
takahe/activities/views/follows.py

40 lines
1.2 KiB
Python
Raw Normal View History

from django.db.models import Q
2022-11-18 04:04:01 +01:00
from django.utils.decorators import method_decorator
from django.views.generic import ListView
2022-11-18 04:04:01 +01:00
from users.decorators import identity_required
from users.models import Follow, FollowStates
2022-11-18 04:04:01 +01:00
@method_decorator(identity_required, name="dispatch")
class Follows(ListView):
2022-11-18 04:04:01 +01:00
"""
Shows followers/follows.
"""
template_name = "activities/follows.html"
extra_context = {
"section": "follows",
}
paginate_by = 50
2022-11-18 04:04:01 +01:00
def get_queryset(self):
return Follow.objects.filter(
Q(source=self.request.identity) | Q(target=self.request.identity),
state__in=FollowStates.group_active(),
).order_by("-created")
2022-11-18 04:04:01 +01:00
def get_context_data(self):
context = super().get_context_data()
identities = []
for follow in context["page_obj"].object_list:
if follow.source == self.request.identity:
identity = follow.target
follow_type = "outbound"
else:
identity = follow.source
follow_type = "inbound"
identities.append((identity, follow_type))
context["page_obj"].object_list = identities
return context