mirror of https://github.com/zulip/zulip.git
814aed7cbe
A stream is vacant when it has no subscribers and occupied when it has at least one subscriber. We have a slightly odd model where stream creation is conflated with subscription creation. Streams are created by attempting to subscribe to a stream that doesn't exist. We also hide streams with no subscribers from users to make it seem like they've gone away. However, we can't actually remove those streams because we want to preserve history. This commit moves us towards a separation of these two concepts. By sending events for stream creation, occupation, vacancy, and deletion, we allow clients to directly observe the global state of streams rather than indirectly observing subscription information. A more complete solution would involve adding a view for explicitly creating streams without subscribing to them. This commit does not handle the intricacies of invite-only streams. We currently simply do not send these events for invite-only streams. (imported from commit 5430e5a5eecefafcdba4f5d4f9aa665556fcc559) |
||
---|---|---|
.. | ||
fixtures | ||
lib | ||
management | ||
migrations | ||
templatetags | ||
tests/frontend | ||
views | ||
worker | ||
__init__.py | ||
context_processors.py | ||
decorator.py | ||
exceptions.py | ||
filters.py | ||
finders.py | ||
forms.py | ||
handlers.py | ||
middleware.py | ||
models.py | ||
openid.py | ||
retention_policy.py | ||
static_header.txt | ||
storage.py | ||
test_bugdown.py | ||
test_decorators.py | ||
test_events.py | ||
test_external.py | ||
test_hooks.py | ||
test_messages.py | ||
test_signup.py | ||
test_subs.py | ||
test_unread.py | ||
tests.py | ||
tornado_callbacks.py | ||
tornadoviews.py |