roundabout,
created on Thursday, 7 March 2024, 08:19:22 (1709799562),
received on Wednesday, 31 July 2024, 06:54:42 (1722408882)
Author identity: vlad <vlad.muntoiu@gmail.com>
e86d8071f3443ad8117f3069160c0a643b1b34a4
models.py
@@ -189,6 +189,7 @@ with (app.app_context()):
vote_sum = db.Column(db.Integer, nullable=False, default=0) parent_id = db.Column(db.String(109), db.ForeignKey("post.identifier"), nullable=True) root_id = db.Column(db.String(109), db.ForeignKey("post.identifier"), nullable=True)state = db.Column(db.SmallInteger, nullable=True, default=1) date = db.Column(db.DateTime, default=datetime.now)
@@ -197,8 +198,16 @@ with (app.app_context()):
message = db.Column(db.UnicodeText) repo = db.relationship("Repo", back_populates="posts") owner = db.relationship("User", back_populates="posts") parent = db.relationship("Post", back_populates="children", remote_side="Post.identifier")children = db.relationship("Post", back_populates="parent", remote_side="Post.parent_id")parent = db.relationship("Post", back_populates="children", primaryjoin="Post.parent_id==Post.identifier", foreign_keys="[Post.parent_id]", remote_side="Post.identifier") root = db.relationship("Post", primaryjoin="Post.root_id==Post.identifier", foreign_keys="[Post.root_id]", remote_side="Post.identifier") children = db.relationship("Post", remote_side="Post.parent_id", primaryjoin="Post.identifier==Post.parent_id", foreign_keys="[Post.parent_id]")def __init__(self, owner, repo, parent, subject, message): self.identifier = f"{repo.route}/{repo.last_post_id}"
@@ -210,6 +219,7 @@ with (app.app_context()):
self.subject = subject self.message = message self.parent = parent self.root = parent.parent if parent.parent else parentrepo.last_post_id += 1 def update_date(self):
static/style.css
@@ -323,4 +323,17 @@ x-buttonbox.segmented > * {
.reply-area[open] > summary { box-shadow: var(--shadow-card); } .post-author { color: inherit; text-decoration: inherit; } .post-details { color: var(--color-caption-text); } #forum-banner { background: #37474f;}
templates/post.html
@@ -10,12 +10,12 @@
</x-hbox> </a> {% endif %} <p class="post-details"><a href="/{{ post.owner.username }}" class="post-author">{{ post.owner.username }}</a> • {{ post.date | strftime("%A, %e %B %Y, %H:%M:%S") }}</p>{% if level %} <h2><a href="{{ post.number }}">{{ post.subject }}</a></h2> {% else %} <h2>{{ post.subject }}</h2> {% endif %} <p><a href="/{{ post.owner.username }}">{{ post.owner.username }}</a> • {{ post.date | strftime("%A, %e %B %Y, %H:%M:%S") }}</p><p> {{ post.message }} </p>
templates/repository/repo-forum-thread.html
@@ -8,6 +8,9 @@
{% block content %} <script src="/static/voting.js"></script> <x-vbox> <div id="forum-banner"> <h1></h1> </div><x-frame style="--width: 896px;" class="flexible-space"> <x-vbox> {% set post = parent %}
templates/repository/repo-forum.html
@@ -8,18 +8,22 @@
<x-vbox> <x-frame style="--width: 896px;" class="flexible-space"> <x-vbox> <form method="POST" action="new"><x-vbox><x-vbox class="nopad"><label for="subject">Subject</label><input id="subject" name="subject" required><details class="reply-area"> <summary>Post topic</summary> <form method="POST" action="new"> <x-vbox> <x-vbox class="nopad"> <label for="subject">Subject</label> <input id="subject" name="subject" required> </x-vbox> <textarea name="message" style="box-sizing: border-box;" rows="8" required></textarea> <x-buttonbox> <button type="submit">Submit</button> </x-buttonbox></x-vbox> <textarea name="message" style="box-sizing: border-box;" rows="8" required></textarea><x-buttonbox><button type="submit">Add new topic</button></x-buttonbox></x-vbox></form></form> </details>{% for post in Post.query.filter_by(repo=repo_data, parent=none).order_by(Post.last_updated.desc()) %} <article class="card card-horizontal"> <figure class="branch-icon">