Steve Howell
d50462568b
refactor: Avoid update_calculated_fields() calls.
...
This change should make live-update code less brittle,
or at least less cumbersome.
Instead of having to re-compute calculated fields for
every change to a stream message, we now just compute
the fields right before we render stream settings UI.
2021-04-05 09:52:19 -07:00
Steve Howell
36632637dc
refactor: Remove foo_display fields on subs.
...
Also add a helpful comment explaining how these work.
2021-04-05 09:52:19 -07:00
Steve Howell
5624ed2afe
refactor: Extract stream_data.clean_up_description().
...
We use this in the few places where update_calculated_fields()
could plausibly be dealing with a new rendered description.
2021-04-05 09:52:19 -07:00
Steve Howell
99b177dc7d
minor: Avoid reliance on is_old_stream.
2021-04-05 09:52:19 -07:00
Steve Howell
430fadfb0b
refactor: Extract stream_data.can_subscribe_others().
2021-04-05 09:52:19 -07:00
Steve Howell
36fd76dc20
refactor: Extract can_view_subscribers().
...
We also remove some needless uses of the calculated
field in the node tests.
2021-04-05 09:52:19 -07:00
Steve Howell
ea972569a3
refactor: Extract stream_data.can_change_permissions().
2021-04-05 09:52:19 -07:00
Steve Howell
b27ff978c7
minor: Extract can_preview() helper.
2021-04-05 09:52:19 -07:00
Steve Howell
93471ed3e4
refactor: Extract can_toggle_subscription(sub).
...
We don't want to rely so much on calculated fields,
and the `should_display_subscription_button` name
is a bit misleading in certain contexts.
2021-04-05 09:52:19 -07:00
Steve Howell
4380fe4eaf
refactor: Extract stream_settings_data.
...
This is mostly a pure code move.
In passing I remove an unneeded call to
update_calculated_fields in the dispatch code,
plus some tests that don't need them.
2021-04-05 09:52:19 -07:00