I’ve just merged a feature which creates a new linked topic automatically when a topic is auto-closed based on auto close topics post count site setting.
This feature is especially useful for automatically splitting and managing megatopics.
Here’s how it works
Let’s say auto close topics post count setting is set to 10000 posts and a topic (with title “Introduce yourself!”) just reached that limit.
Now we’ll close that topic and create a new linked topic to continue the discussion. The first post of new topic will link to all prior discussions (topics).
I’d recommend replacing [title](url) with just url, and relying on existing Discourse functionality that displays the title of the topic from the URL. If I’m not mistaken, this would have the bonus of auto-updating the topic title displayed if the topic is renamed, which I think would be a nice touch.
This won’t work as well when you’re continuing the discussion from an access-restricted topic into another category without the exact same access restrictions.
Is that a likely use case? It seems like generally the continuing topic would stay in the same category as the original topic. If this situation does happen, you say it won’t work as well, but what specifically would the behavior be?
Even without the linking issue, I’d expect the continuing topic to have inherited the exact same access restrictions. I’d see it as a bug if it didn’t.
How do we change the “Part” (1, 2 and so on) text? In English based forums is probably fine, but we would like to be able to change it.
The category of the new topic. We’ve just got our first automatically linked topic and it was “uncategorized”. What we would like is the new topic to assume the category of the previously automatically closed topic.
@elijah apparently you want the topic notification status (watching, tracking, muted, etc) for every single user in the old topic, to be copied across to the new topic, yes?
I see the rationale, but my worry is that could be a bit invasive for some of the users … long topics can involve hundreds or thousands of people. Anyone else have thoughts about this, pros and cons?
Yeah, let me repeat my suggestions here, for context.
On megatopics I was proposing either of two ways to make splitting more seamless for the less-than-regular user.
Method Watchlist Copy: when splitting a topic, copy over muted / tracking / watching status for the new topic. (And if the last topic only had copied, not set originally there: unset the the tracking status for the now closed one.) Rational: If the user hasn’t been around to read the topic for a while, but is generally interested in it, help them catchup by not highlighting the unread posts in the old topic, only the new.
Method Top Split: when splitting a topic, facilitate having posts 2 to N moved post 1 copied to a new topic (closed on creation), and replace those moved posts with a linked topic message. Rational: mucking with watch settings is messy. This allows archiving old content without breaking external links (bookmark, RSS, baked into an app, etc) or internal watch settings.
I like the top split method better, but either seems a way to help users out who are interested in very long (or long term but split) topics.
I’m using WP and Discourse to do audio education and group reflection, and was thinking how helpful it might be if when the WP plugin creates a new topic on Discourse, an event triggers to create a linked topic as the reflection topic for that main topic. That way, it’d allow me to maintain the original topic as read-only, so people don’t see the reflections before they listen to the audio, and have the linked topic be where they go to reflect.
Similar to this:
Am I correct in assuming it may just take slightly tweaking this code here to make it happen in a new plugin?
if SiteSetting.auto_close_topics_create_linked_topic?
# enqueue a job to create a linked topic
Jobs.enqueue_in(5.seconds, :create_linked_topic, post_id: @post.id)
end
Also, I’m curious if there are enough applications for automatically creating a linked topic where it’d make sense to have it as part of Discourse Automation?