Both iCalendar routes were unusable:
* `/conferences/.../schedule.ics` raised
`NoMethodError: undefined method 'icalendar_proposals'` because the
`ConferenceHelper#icalendar_proposals` helper isn't auto-included in
controllers; the action crashed before rendering.
* `/calendar.ics` silently redirected to `/`. The controller goes
through `load_and_authorize_resource`, which authorises `:calendar`
on `Conference` and is rejected for anonymous visitors because no
ability grants it — CanCan's `AccessDenied` rescue redirects to
root.
The helper is invoked through the controller `helpers` proxy so it
works in both contexts, and the calendar action is opted out of
resource loading and explicitly marked as not requiring authorization
since it serves a public feed across conferences. The helper is also
hardened so that proposals missing a room, difficulty level, track,
event type or scheduled time produce a valid event instead of
crashing the whole feed.
`:fenced_code_blocks:` Blocks delimited with 3 or more ~ or backticks will be considered as code, without the need to be indented. An optional language name may be added at the end of the opening fence for the code block.
`:disable_indented_code_blocks:` Do not parse usual markdown code blocks. Markdown converts text with four spaces at the front of each line to code blocks. This option prevents it from doing so. Recommended to use with fenced_code_blocks: true.
Fixes#2764
Earlier we used active scope to pluck users for booth responsibles, that allows all users except those whose last seen are 3 months or more and are their is_disabled field is false but now we allow all users except those with is_disabled field false to be booth responsible.
* Clean up legacy charting imports
* Update existing donut and line charts
* Create helpers for parsing out existing chart data
* Move chart partials to a more common path
Fold one-used event_status_icon and one-used booth_status_icon into
status_icon, used twice; since there is no conflict on the status-
driven description.
The single query was producing a tremendously large ActiveRecord allocation.
While this isn't nearly as cool as one query, it's still a significant
reduction in SQL trips, and now has the bonus of only loading what is
actually going to be displayed.
values.each and keys.each methods are depreciated, so they have replaced by
each_value and each_key respectively. This has done manually.
Closes https://github.com/openSUSE/osem/issues/1825