"Start thread" page has reached a feature parity with Misago 0.39. Last missing piece was option to post locked/hidden/pinned thread:
That looks incredible!!
Let's make another estimate!
I am guessing that I'll finish thread views late June/early July. Then I'll do new search feature over July. With search done, last threads pain point to do will be a post markup update logic that will replace old attachments syntax with a new one. This should take a few weeks to get done. Then, during August I would like to rewrite user profiles. September is for finishing all blockers for Misago 0.40 Alpha 1, which I would like to ship in October.November and December for testing, polishing, fixing, and Misago 0.40 sometime late December, so I have time for fixes and tweaks over the holidays.
Cheers!
It's an ambitious programme that you have undertaken. I really appreciate your commitment and desire to continually evolve misago.
Moderation actions for threads have been completed, and so is the moderation framework for Misago 0.40.
Misago 0.40 introduces a single new moderation action: an option to flag a thread to require moderator's approval of new posts. It also lets a moderator specify a reason for hiding a thread. Oh, and "close/open" naming has been replaced with "lock/unlock".
The biggest change is the architectural one: Misago 0.40 splits moderation actions into low-level operations like lock_thread, move_thread or delete_thread that can be used outside of the context of moderation, and actual high-level moderation actions that implement validation, use those operations to mutate the state, but also create thread update objects and return moderation results that are then used to build HTTP responses.
Moderation actions for posts have been completed.
The only new features for post moderation are the option to merge posts across pages and the ability to merge older posts into newer ones.
There are still some quirks and bugs in moderation actions that I'll have to fix before moving on to polishing thread pages, but it won't be long now!
Misago 0.40 brings redesigned thread headers, that include new meta bars:
Those meta bars are populated using the code, making them very quick to extend from Python:
items: list = [
UserDatetimeMetadata(
id="thread-started",
user=thread.starter if thread.starter else thread.starter_name,
datetime=thread.started_at,
url=self.get_thread_url(thread) + f"#post-{thread.first_post_id}",
),
]
if thread.replies:
items.append(
NumberMetadata(
id="thread-replies",
icon="tabler/messages.svg",
text=npgettext(
"thread meta bar replies",
"%(number)s reply",
"%(number)s replies",
thread.replies,
),
number=thread.replies,
)
)
items.append(
DatetimeMetadata(
id="thread-last-reply",
icon="tabler/calendar.svg",
text="Last reply: %(datetime)s",
datetime=thread.last_posted_at,
is_sentence=False,
url=self.get_post_last_url(thread),
)
)