Class: Decidim::Initiatives::OpenDataInitiativeSerializer

Inherits:
Exporters::ParticipatorySpaceSerializer show all
Defined in:
decidim-initiatives/app/serializers/decidim/initiatives/open_data_initiative_serializer.rb

Constant Summary

Constants included from AmendmentsHelper

AmendmentsHelper::TOTAL_STEPS

Instance Attribute Summary

Attributes inherited from Exporters::Serializer

#resource

Instance Method Summary collapse

Methods inherited from Exporters::ParticipatorySpaceSerializer

#initialize

Methods included from TranslationsHelper

empty_translatable, ensure_translatable, multi_translation, translated_in_current_locale?

Methods included from TranslatableAttributes

#attachment?, #default_locale?

Methods included from ResourceHelper

#linked_classes_filter_values_for, #linked_classes_for, #resource_locator

Methods included from ApplicationHelper

#add_body_classes, #cell, #edit_link, #extra_admin_link, #html_truncate, #layout_item_classes, #present, #prevent_timeout_seconds, #resolve_presenter_class, #text_initials

Methods included from CacheHelper

#cache

Methods included from AmendmentsHelper

#accept_and_reject_buttons_for, #action_button_card_for, #allowed_to_accept_and_reject?, #allowed_to_promote?, #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

included, #text_editor_for

Methods included from ContextualHelpHelper

#floating_help

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, #tab_element_class_for, #translated_field_tag

Methods included from OmniauthHelper

#normalize_provider_name, #oauth_icon, #provider_name

Methods inherited from Exporters::Serializer

#event_name, #finalize, #initialize, #run

Constructor Details

This class inherits a constructor from Decidim::Exporters::ParticipatorySpaceSerializer

Instance Method Details

#serializeObject

Public: Exports a hash with the serialized data for this initiative.

Note that we do not merge the original serialize method here, as the Initiative model does not have the same attributes as the other Spaces models.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'decidim-initiatives/app/serializers/decidim/initiatives/open_data_initiative_serializer.rb', line 10

def serialize
  {
    reference: resource.reference,
    title: resource.title,
    url: EngineRouter.main_proxy(resource).initiative_url(resource),
    description: resource.description,
    state: resource.state,
    created_at: resource.created_at,
    updated_at: resource.updated_at,
    published_at: resource.published_at,
    signature_start_date: resource.signature_start_date,
    signature_end_date: resource.signature_end_date,
    signature_type: resource.signature_type,
    signatures: resource.supports_count,
    answer: resource.answer,
    answered_at: resource.answered_at,
    answer_url: resource.answer_url,
    hashtag: resource.hashtag,
    first_progress_notification_at: resource.first_progress_notification_at,
    second_progress_notification_at: resource.second_progress_notification_at,
    online_votes: resource.online_votes,
    offline_votes: resource.offline_votes,
    comments_count: resource.comments_count,
    follows_count: resource.follows_count,
    scope: {
      id: resource.scope.try(:id),
      name: resource.scope.try(:name) || empty_translatable
    },
    type: {
      id: resource.type&.id,
      title: resource.type&.title
    },
    authors: {
      id: resource.author_users.map(&:id),
      name: resource.author_users.map(&:name)
    },
    area: {
      id: resource.area.try(:id),
      name: resource.area.try(:name) || empty_translatable
    }
  }
end