The home and splash page render a link to the schedule based purely on
the `schedule_public` flag, even when an admin has not yet selected a
schedule or scheduled any events. Following that link rendered the
schedule view, which then failed inside `_carousel.html.haml` because
`@rooms` (and the selected schedule) had no data — a 500 error instead
of a graceful response.
Treat `schedule_public` as an allowance rather than an unchecked
control: introduce `Program#any_published_schedule?` (true only when
the flag is on *and* there is at least one event in a selected
schedule) and use it to decide whether to render the link from the
home and splash pages. The schedule controller now returns 404 when no
event has been scheduled, so bookmarked URLs surface as "not found"
instead of an internal server error.
We did not set this in ProposalController#create so it was empty
if we the event validation failed and we rendered :new.
It makes little sense to assign this instance variable anyway, we already have
@program.
Font Awesome icon elements are intended to be empty. Extending the icon
elements around adjacent text caused the text to be displayed in an
irregular font.
When fragment caching is enabled—
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -27 +26,0 @@
- config.action_controller.perform_caching = false
@@ -29 +27,0 @@
- config.cache_store = :null_store
—the test of voting fails with:
expected to find visible css ".rating.bright" … 0 times, found 3 matches
expected to find visible css ".rating:not(.bright)" … 5 times, found 2 matches
# ./spec/features/voting_spec.rb:21
# ./spec/features/voting_spec.rb:21
# ./spec/features/voting_spec.rb:57
i.e. the vote displayed in the event proposal tab is another user’s
vote, because the fragment’s cache dependencies don’t include the
current user.
resolves#2767
When fragment caching is enabled—
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -27 +26,0 @@
- config.action_controller.perform_caching = false
@@ -29 +27,0 @@
- config.cache_store = :null_store
—the test of voting fails with:
expected to find text "Not rated" in "…You voted: 3/5…"
# ./spec/features/voting_spec.rb:15
# ./spec/features/voting_spec.rb:13
# ./spec/features/voting_spec.rb:57
i.e. the vote displayed on the event index is another user’s vote,
because the fragment’s cache dependencies don’t include the current
user.
re #2767