summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Godwin2022-11-27 12:37:52 -0700
committerAndrew Godwin2022-11-27 12:37:52 -0700
commit3217569df583829d776bcbaf77b80696d3527005 (patch)
tree8924b33d8dc2e768c1b594d99c9128b698499449
parent03ba96ff26943f11b0ae1a21a0bcc39309b05901 (diff)
downloadtakahe-3217569df583829d776bcbaf77b80696d3527005.tar.gz
takahe-3217569df583829d776bcbaf77b80696d3527005.tar.bz2
takahe-3217569df583829d776bcbaf77b80696d3527005.zip
Link to post pages and show replies there
Fixes #60, #59
-rw-r--r--activities/views/posts.py21
-rw-r--r--static/css/style.css9
-rw-r--r--templates/activities/_post.html2
-rw-r--r--templates/activities/post.html3
4 files changed, 33 insertions, 2 deletions
diff --git a/activities/views/posts.py b/activities/views/posts.py
index 083df30..8fbe361 100644
--- a/activities/views/posts.py
+++ b/activities/views/posts.py
@@ -1,5 +1,6 @@
from django import forms
from django.core.exceptions import PermissionDenied
+from django.db import models
from django.http import JsonResponse
from django.shortcuts import get_object_or_404, redirect, render
from django.utils.decorators import method_decorator
@@ -47,6 +48,26 @@ class Individual(TemplateView):
[self.post_obj],
self.request.identity,
),
+ "replies": Post.objects.filter(
+ models.Q(
+ visibility__in=[
+ Post.Visibilities.public,
+ Post.Visibilities.local_only,
+ Post.Visibilities.unlisted,
+ ]
+ )
+ | models.Q(
+ visibility=Post.Visibilities.followers,
+ author__inbound_follows__source=self.identity,
+ )
+ | models.Q(
+ visibility=Post.Visibilities.mentioned,
+ mentions=self.identity,
+ ),
+ in_reply_to=self.post_obj.object_uri,
+ )
+ .distinct()
+ .order_by("published", "created"),
}
def serve_object(self):
diff --git a/static/css/style.css b/static/css/style.css
index 93ad329..772d527 100644
--- a/static/css/style.css
+++ b/static/css/style.css
@@ -695,10 +695,16 @@ h1.identity small {
.post {
margin-bottom: 20px;
overflow: hidden;
+ cursor: pointer;
}
.post.mini {
font-size: 14px;
+ cursor: inherit;
+}
+
+.post.reply {
+ margin-left: 32px;
}
.left-column .post {
@@ -778,7 +784,8 @@ h1.identity small {
margin-left: 64px;
}
-.post.mini .content, .post.mini .edited {
+.post.mini .content,
+.post.mini .edited {
margin-left: 0px;
}
diff --git a/templates/activities/_post.html b/templates/activities/_post.html
index e294698..7402765 100644
--- a/templates/activities/_post.html
+++ b/templates/activities/_post.html
@@ -1,6 +1,6 @@
{% load static %}
{% load activity_tags %}
-<div class="post" data-takahe-id="{{ post.id }}">
+<div class="post {% if reply %}reply{% endif %}" data-takahe-id="{{ post.id }}" _="on click go url {{ post.urls.view }}">
<a href="{{ post.author.urls.view }}">
<img src="{{ post.author.local_icon_url }}" class="icon">
diff --git a/templates/activities/post.html b/templates/activities/post.html
index eee254f..d27790f 100644
--- a/templates/activities/post.html
+++ b/templates/activities/post.html
@@ -4,4 +4,7 @@
{% block content %}
{% include "activities/_post.html" %}
+ {% for reply in replies %}
+ {% include "activities/_post.html" with post=reply reply=True %}
+ {% endfor %}
{% endblock %}