Class: Decidim::ContentBlocks::LastActivityCell
- Inherits:
-
ViewModel
- Object
- Cell::ViewModel
- ViewModel
- Decidim::ContentBlocks::LastActivityCell
- Defined in:
- app/cells/decidim/content_blocks/last_activity_cell.rb
Overview
A cell to be rendered as a content block with the latest activities performed in a Decidim Organization.
Direct Known Subclasses
Constant Summary
Constants included from AmendmentsHelper
Instance Method Summary collapse
- #show ⇒ Object
-
#valid_activities ⇒ Object
The activities to be displayed at the content block.
Methods inherited from ViewModel
#call, #current_user, #view_context
Methods included from IconHelper
#component_icon, #manifest_icon, #resource_icon, #resource_type_icon, #resource_type_icon_key, #text_with_resource_icon
Methods included from LayoutHelper
#_icon_classes, #apple_favicon, #application_path, #current_url, #current_user_unread_data, #extended_navigation_bar, #external_icon, #favicon, #icon, #legacy_favicon, #role
Methods included from TooltipHelper
Methods included from ModalHelper
Methods included from OrganizationHelper
#current_organization_name, #organization_colors, #organization_description_label, #organization_name
Methods included from TranslatableAttributes
Methods included from ApplicationHelper
#add_body_classes, #cell, #edit_link, #extra_admin_link, #html_truncate, #present, #prevent_timeout_seconds, #resolve_presenter_class, #text_initials
Methods included from Decidim::CacheHelper
Methods included from AmendmentsHelper
#accept_and_reject_buttons_for, #action_button_card_for, #allowed_to_accept_and_reject?, #allowed_to_promote?, #amend_button_for, #amendments_enabled?, #amendments_form_field_for, #amendments_form_fields_label, #amendments_form_fields_value, #can_participate_in_private_space?, #can_react_to_emendation?, #current_step, #emendation_actions_for, #emendation_announcement_for, #promote_button_for, #render_emendation_body, #total_steps, #wizard_aside_back_url, #wizard_header_title
Methods included from RichTextEditorHelper
Methods included from Decidim::ContextualHelpHelper
Methods included from ScopesHelper
#has_visible_scopes?, #scope_name_for_picker, #scopes_picker_field, #scopes_picker_filter, #scopes_select_field, #scopes_select_tag
Methods included from DecidimFormHelper
#areas_for_select, #base_error_messages, #decidim_form_for, #decidim_form_slug_url, #editor_field_tag, #form_field_has_error?, #form_required_explanation, #name_with_locale, #ordered_scopes_descendants, #ordered_scopes_descendants_for_select, #scopes_picker_field_tag, #tab_element_class_for, #translated_field_tag
Methods included from OmniauthHelper
#normalize_provider_name, #oauth_icon, #provider_name
Methods included from SanitizeHelper
#decidim_escape_translated, #decidim_html_escape, #decidim_sanitize, #decidim_sanitize_admin, #decidim_sanitize_editor, #decidim_sanitize_editor_admin, #decidim_sanitize_newsletter, #decidim_sanitize_translated, #decidim_url_escape, included
Methods included from MarkupHelper
Methods included from ReplaceButtonsHelper
Methods included from ActionAuthorizationHelper
#action_authorized_button_to, #action_authorized_link_to, #logged_button_to, #logged_link_to
Methods included from ResourceHelper
#linked_classes_filter_values_for, #linked_classes_for, #resource_locator
Instance Method Details
#show ⇒ Object
10 11 12 13 14 |
# File 'app/cells/decidim/content_blocks/last_activity_cell.rb', line 10 def show return if valid_activities.empty? render end |
#valid_activities ⇒ Object
The activities to be displayed at the content block.
We need to build the collection this way because an ActionLog has polymorphic relations to different kind of models, and these models might not be available (a proposal might have been hidden or withdrawn).
Since these conditions cannot always be filtered with a database search we ask for more activities than we actually need and then loop until there are enough of them.
Returns an Array of ActionLogs.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/cells/decidim/content_blocks/last_activity_cell.rb', line 27 def valid_activities return @valid_activities if defined?(@valid_activities) valid_activities_count = 0 @valid_activities = [] activities.includes([:user]).each do |activity| break if valid_activities_count == activities_to_show if activity.visible_for?(current_user) @valid_activities << activity valid_activities_count += 1 end end @valid_activities end |