decidim-core 0.21.0 → 0.22.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim-core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/config/decidim_core_manifest.js +3 -0
- data/app/assets/fonts/decidim/Roboto-Regular.svg +1 -10520
- data/app/assets/fonts/decidim/Source_Sans_Pro_400.svg +1 -345
- data/app/assets/fonts/decidim/Source_Sans_Pro_600.svg +1 -339
- data/app/assets/fonts/decidim/Source_Sans_Pro_900.svg +1 -342
- data/app/assets/images/decidim/avatar-multiuser.png +0 -0
- data/app/assets/images/decidim/brands/google.svg +1 -1
- data/app/assets/images/decidim/decidim-logo.svg +1 -71
- data/app/assets/images/decidim/default-avatar.svg +1 -14
- data/app/assets/images/decidim/gamification/badges/followers.svg +1 -115
- data/app/assets/images/decidim/gamification/badges/invitations.svg +1 -117
- data/app/assets/images/decidim/icons.svg +1 -259
- data/app/assets/images/decidim/placeholder.jpg +0 -0
- data/app/assets/javascripts/decidim.js.es6 +23 -1
- data/app/assets/javascripts/decidim/ajax_modals.js.es6 +3 -0
- data/app/assets/javascripts/decidim/assets.js.erb +5 -0
- data/app/assets/javascripts/decidim/callout.js.es6 +18 -0
- data/app/assets/javascripts/decidim/configuration.js.es6 +23 -0
- data/app/assets/javascripts/decidim/confirm.js.es6 +178 -0
- data/app/assets/javascripts/decidim/conversations.js.es6 +17 -0
- data/app/assets/javascripts/decidim/core/bundle.js +1 -1
- data/app/assets/javascripts/decidim/core/bundle.js.map +1 -1
- data/app/assets/javascripts/decidim/core/extrapoly.js +6 -0
- data/app/assets/javascripts/decidim/data_picker.js.es6 +128 -50
- data/app/assets/javascripts/decidim/diff_mode_dropdown.js.es6 +5 -7
- data/app/assets/javascripts/decidim/dropdowns_menus.js.es6 +32 -0
- data/app/assets/javascripts/decidim/external_link.js.es6 +69 -0
- data/app/assets/javascripts/decidim/floating_help.js.es6 +7 -0
- data/app/assets/javascripts/decidim/form_filter.component.js.es6 +1 -1
- data/app/assets/javascripts/decidim/form_filter.component.test.js +4 -4
- data/app/assets/javascripts/decidim/form_validator.es6 +61 -0
- data/app/assets/javascripts/decidim/foundation.js.es6 +28 -28
- data/app/assets/javascripts/decidim/icon.js.es6 +42 -0
- data/app/assets/javascripts/decidim/identity_selector_dialog.js.es6 +61 -0
- data/app/assets/javascripts/decidim/input_character_counter.js.es6 +115 -0
- data/app/assets/javascripts/decidim/input_mentions.js.es6 +34 -9
- data/app/assets/javascripts/decidim/input_multiple_mentions.js.es6 +195 -0
- data/app/assets/javascripts/decidim/map.js.es6 +40 -3
- data/app/assets/javascripts/decidim/orders.js.es6 +9 -28
- data/app/assets/javascripts/decidim/responsive_horizontal_tabs.js.es6 +12 -0
- data/app/assets/javascripts/decidim/results_listing.js.es6 +44 -0
- data/app/assets/javascripts/decidim/start_conversation_dialog.js +13 -0
- data/app/assets/javascripts/decidim/vizzs.js.es6 +1 -0
- data/app/assets/stylesheets/decidim/_decidim-settings.scss +5 -0
- data/app/assets/stylesheets/decidim/_decidim.scss +13 -11
- data/app/assets/stylesheets/decidim/_properties.scss +25 -0
- data/app/assets/stylesheets/decidim/_variables.scss +6 -24
- data/app/assets/stylesheets/decidim/application.scss.erb +2 -2
- data/app/assets/stylesheets/decidim/editor.scss +2 -2
- data/app/assets/stylesheets/decidim/email.scss +1771 -0
- data/app/assets/stylesheets/decidim/extras/_external-links.scss +29 -0
- data/app/assets/stylesheets/decidim/extras/_extras.scss +17 -0
- data/app/assets/stylesheets/decidim/extras/_label-required.scss +9 -0
- data/app/assets/stylesheets/decidim/extras/_process_stats.scss +1 -1
- data/app/assets/stylesheets/decidim/extras/_quill.scss +5 -0
- data/app/assets/stylesheets/decidim/extras/_results-per-page.scss +8 -0
- data/app/assets/stylesheets/decidim/layouts/_home.scss +31 -7
- data/app/assets/stylesheets/decidim/layouts/_layouts.scss +5 -0
- data/app/assets/stylesheets/decidim/layouts/_logo.scss +26 -0
- data/app/assets/stylesheets/decidim/layouts/_user.scss +4 -0
- data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +9 -13
- data/app/assets/stylesheets/decidim/modules/_buttons.scss +198 -26
- data/app/assets/stylesheets/decidim/modules/_cards.scss +174 -23
- data/app/assets/stylesheets/decidim/modules/_collapsible-list.scss +21 -0
- data/app/assets/stylesheets/decidim/modules/_comments.scss +25 -1
- data/app/assets/stylesheets/decidim/modules/_conference-programme.scss +0 -1
- data/app/assets/stylesheets/decidim/modules/_confirm.scss +5 -0
- data/app/assets/stylesheets/decidim/modules/_conversation.scss +50 -0
- data/app/assets/stylesheets/decidim/modules/_data-picker.scss +9 -11
- data/app/assets/stylesheets/decidim/modules/_definition-data.scss +6 -1
- data/app/assets/stylesheets/decidim/modules/_docs-manager.scss +0 -1
- data/app/assets/stylesheets/decidim/modules/_extra.scss +0 -2
- data/app/assets/stylesheets/decidim/modules/_filters.scss +25 -1
- data/app/assets/stylesheets/decidim/modules/_floating-helper.scss +20 -8
- data/app/assets/stylesheets/decidim/modules/_footer.scss +8 -4
- data/app/assets/stylesheets/decidim/modules/_forms.scss +63 -4
- data/app/assets/stylesheets/decidim/modules/_horizontal-tabs.scss +64 -1
- data/app/assets/stylesheets/decidim/modules/_inline-filters.scss +6 -3
- data/app/assets/stylesheets/decidim/modules/_input-gallery.scss +10 -0
- data/app/assets/stylesheets/decidim/modules/_input-mentions.scss +25 -7
- data/app/assets/stylesheets/decidim/modules/_input-multiple-mentions.scss +5 -0
- data/app/assets/stylesheets/decidim/modules/_map.scss +11 -0
- data/app/assets/stylesheets/decidim/modules/_margins.scss +8 -7
- data/app/assets/stylesheets/decidim/modules/_messages.scss +18 -18
- data/app/assets/stylesheets/decidim/modules/_modules.scss +75 -72
- data/app/assets/stylesheets/decidim/modules/_navbar.scss +176 -26
- data/app/assets/stylesheets/decidim/modules/_notification.scss +5 -0
- data/app/assets/stylesheets/decidim/modules/_order-by.scss +5 -0
- data/app/assets/stylesheets/decidim/modules/_process-nav.scss +5 -2
- data/app/assets/stylesheets/decidim/modules/_process-phase.scss +2 -4
- data/app/assets/stylesheets/decidim/modules/_process-stats.scss +2 -2
- data/app/assets/stylesheets/decidim/modules/_progress-bar.scss +1 -1
- data/app/assets/stylesheets/decidim/modules/_reveal.scss +6 -0
- data/app/assets/stylesheets/decidim/modules/_signup.scss +6 -5
- data/app/assets/stylesheets/decidim/modules/_static-pages.scss +0 -1
- data/app/assets/stylesheets/decidim/modules/_sticky.scss +5 -0
- data/app/assets/stylesheets/decidim/modules/_tags.scss +4 -0
- data/app/assets/stylesheets/decidim/modules/_timeline.scss +1 -2
- data/app/assets/stylesheets/decidim/modules/_typography.scss +47 -8
- data/app/assets/stylesheets/decidim/modules/_versions.scss +0 -1
- data/app/assets/stylesheets/decidim/utils/_helpers.scss +8 -0
- data/app/assets/stylesheets/decidim/utils/_mixins.scss +86 -7
- data/app/assets/stylesheets/decidim/utils/_settings.scss +81 -69
- data/app/assets/stylesheets/decidim/vizzs.scss +8 -0
- data/app/assets/stylesheets/decidim/vizzs/_areachart.scss +0 -1
- data/app/assets/stylesheets/decidim/vizzs/_linechart.scss +0 -1
- data/app/assets/stylesheets/decidim/vizzs/_rowchart.scss +0 -1
- data/app/assets/stylesheets/decidim/vizzs/_vizzs.scss +5 -0
- data/app/assets/stylesheets/foundation-overrides/components/_button-group.scss +319 -0
- data/app/cells/decidim/activity/show.erb +24 -21
- data/app/cells/decidim/activity_cell.rb +2 -0
- data/app/cells/decidim/address_cell.rb +1 -1
- data/app/cells/decidim/amendable/amend_button_card_cell.rb +1 -5
- data/app/cells/decidim/amendable/promote_button_card_cell.rb +1 -1
- data/app/cells/decidim/announcement/show.erb +1 -1
- data/app/cells/decidim/author/comments.erb +1 -1
- data/app/cells/decidim/author/endorsements.erb +6 -0
- data/app/cells/decidim/author/flag.erb +5 -2
- data/app/cells/decidim/author/profile_inline.erb +0 -1
- data/app/cells/decidim/author/show.erb +2 -0
- data/app/cells/decidim/author/withdraw.erb +2 -2
- data/app/cells/decidim/author_cell.rb +9 -13
- data/app/cells/decidim/badge/show.erb +6 -6
- data/app/cells/decidim/badge/small.erb +2 -1
- data/app/cells/decidim/card/show.erb +4 -4
- data/app/cells/decidim/card_m/comments_counter.erb +1 -1
- data/app/cells/decidim/card_m/header.erb +4 -4
- data/app/cells/decidim/card_m/image.erb +1 -1
- data/app/cells/decidim/card_m/show.erb +2 -2
- data/app/cells/decidim/card_m_cell.rb +3 -2
- data/app/cells/decidim/collapsible_list/show.erb +3 -3
- data/app/cells/decidim/content_blocks/footer_sub_hero/show.erb +4 -4
- data/app/cells/decidim/content_blocks/hero_settings_form/show.erb +2 -2
- data/app/cells/decidim/content_blocks/how_to_participate/show.erb +8 -8
- data/app/cells/decidim/content_blocks/last_activity_cell.rb +1 -1
- data/app/cells/decidim/content_blocks/stats/show.erb +1 -1
- data/app/cells/decidim/content_blocks/sub_hero/show.erb +3 -3
- data/app/cells/decidim/diff/attribute.erb +10 -10
- data/app/cells/decidim/diff_cell.rb +11 -1
- data/app/cells/decidim/endorsement_buttons/select_identity_button.erb +10 -0
- data/app/cells/decidim/endorsement_buttons/show.erb +4 -0
- data/app/cells/decidim/endorsement_buttons_cell.rb +208 -0
- data/app/cells/decidim/endorsers_list/show.erb +16 -0
- data/app/cells/decidim/endorsers_list_cell.rb +29 -0
- data/app/cells/decidim/fingerprint_cell.rb +1 -0
- data/app/cells/decidim/follow_button/show.erb +13 -5
- data/app/cells/decidim/follow_button_cell.rb +29 -5
- data/app/cells/decidim/navbar_admin_link/show.erb +1 -1
- data/app/cells/decidim/navbar_admin_link_cell.rb +6 -0
- data/app/cells/decidim/newsletter_templates/base_cell.rb +30 -0
- data/app/cells/decidim/newsletter_templates/base_settings_form_cell.rb +13 -0
- data/app/cells/decidim/newsletter_templates/basic_only_text/show.erb +86 -0
- data/app/cells/decidim/newsletter_templates/basic_only_text_cell.rb +21 -0
- data/app/cells/decidim/newsletter_templates/basic_only_text_settings_form/show.erb +7 -0
- data/app/cells/decidim/newsletter_templates/basic_only_text_settings_form_cell.rb +8 -0
- data/app/cells/decidim/newsletter_templates/image_text_cta/show.erb +125 -0
- data/app/cells/decidim/newsletter_templates/image_text_cta_cell.rb +61 -0
- data/app/cells/decidim/newsletter_templates/image_text_cta_settings_form/show.erb +17 -0
- data/app/cells/decidim/newsletter_templates/image_text_cta_settings_form_cell.rb +8 -0
- data/app/cells/decidim/notifications/show.erb +1 -1
- data/app/cells/decidim/profile/show.erb +2 -2
- data/app/cells/decidim/profile/user_group_tabs.erb +10 -5
- data/app/cells/decidim/profile/user_tabs.erb +16 -14
- data/app/cells/decidim/profile_cell.rb +18 -0
- data/app/cells/decidim/profile_sidebar/show.erb +16 -16
- data/app/cells/decidim/profile_sidebar_cell.rb +1 -0
- data/app/cells/decidim/search_results_section/show.erb +1 -1
- data/app/cells/decidim/tags_cell.rb +32 -2
- data/app/cells/decidim/user_activity/show.erb +19 -1
- data/app/cells/decidim/user_activity_cell.rb +6 -0
- data/app/cells/decidim/user_conversation/conversation_header.erb +14 -0
- data/app/cells/decidim/user_conversation/messages.erb +15 -0
- data/app/cells/decidim/user_conversation/new.erb +15 -0
- data/app/cells/decidim/user_conversation/reply.erb +17 -0
- data/app/cells/decidim/user_conversation/show.erb +20 -0
- data/app/cells/decidim/user_conversation_cell.rb +75 -0
- data/app/cells/decidim/user_conversations/add_conversation_users.erb +25 -0
- data/app/cells/decidim/user_conversations/conversation_item.erb +38 -0
- data/app/cells/decidim/user_conversations/show.erb +58 -0
- data/app/cells/decidim/user_conversations_cell.rb +40 -0
- data/app/cells/decidim/user_group_admin_membership_profile/footer.erb +3 -3
- data/app/cells/decidim/user_profile/footer.erb +1 -1
- data/app/cells/decidim/user_profile/unlinked_user_data.erb +16 -0
- data/app/cells/decidim/user_profile/user_data.erb +1 -1
- data/app/cells/decidim/user_profile_cell.rb +7 -1
- data/app/cells/decidim/user_timeline_cell.rb +4 -0
- data/app/cells/decidim/version/show.erb +31 -0
- data/app/{views/decidim/shared/_version_author.html.erb → cells/decidim/version_author/show.erb} +1 -1
- data/app/cells/decidim/version_author_cell.rb +9 -0
- data/app/cells/decidim/version_cell.rb +83 -0
- data/app/cells/decidim/versions_list/show.erb +32 -0
- data/app/cells/decidim/versions_list_cell.rb +64 -0
- data/app/cells/decidim/versions_list_item/show.erb +20 -0
- data/app/cells/decidim/versions_list_item_cell.rb +51 -0
- data/app/cells/decidim/wizard_step_form/wizard_aside.erb +1 -1
- data/app/cells/decidim/wizard_step_form/wizard_header.erb +2 -2
- data/app/cells/decidim/wizard_step_form_cell.rb +4 -1
- data/app/commands/decidim/attachment_methods.rb +40 -0
- data/app/commands/decidim/create_registration.rb +2 -1
- data/app/commands/decidim/create_user_group.rb +12 -0
- data/app/commands/decidim/destroy_account.rb +12 -0
- data/app/commands/decidim/endorse_resource.rb +64 -0
- data/app/commands/decidim/gallery_methods.rb +64 -0
- data/app/commands/decidim/invite_user_again.rb +2 -4
- data/app/commands/decidim/messaging/reply_to_conversation.rb +34 -3
- data/app/commands/decidim/messaging/start_conversation.rb +36 -5
- data/app/commands/decidim/unendorse_resource.rb +38 -0
- data/app/commands/decidim/update_notifications_settings.rb +1 -0
- data/app/commands/decidim/update_user_group.rb +14 -1
- data/app/controllers/concerns/decidim/impersonate_users.rb +13 -0
- data/app/controllers/concerns/decidim/resource_versions_concern.rb +28 -0
- data/app/controllers/decidim/devise/registrations_controller.rb +2 -4
- data/app/controllers/decidim/devise/sessions_controller.rb +5 -0
- data/app/controllers/decidim/endorsements_controller.rb +71 -0
- data/app/controllers/decidim/messaging/conversations_controller.rb +52 -12
- data/app/controllers/decidim/newsletters_controller.rb +2 -2
- data/app/controllers/decidim/profiles_controller.rb +6 -0
- data/app/controllers/decidim/scopes_controller.rb +1 -0
- data/app/controllers/decidim/user_activities_controller.rb +19 -2
- data/app/controllers/decidim/user_conversations_controller.rb +142 -0
- data/app/controllers/decidim/user_timeline_controller.rb +19 -2
- data/app/events/decidim/resource_endorsed_event.rb +35 -0
- data/app/events/decidim/user_group_admin_event.rb +37 -0
- data/app/events/decidim/user_group_created_event.rb +6 -0
- data/app/events/decidim/user_group_updated_event.rb +6 -0
- data/app/forms/decidim/attachment_form.rb +1 -0
- data/app/forms/decidim/messaging/conversation_form.rb +10 -4
- data/app/forms/decidim/notifications_settings_form.rb +6 -0
- data/app/forms/decidim/registration_form.rb +1 -0
- data/app/functions/decidim/core/component_finder_base.rb +10 -3
- data/app/functions/decidim/core/component_list_base.rb +8 -2
- data/app/functions/decidim/core/user_entity_finder.rb +33 -0
- data/app/functions/decidim/core/user_entity_list.rb +31 -0
- data/app/helpers/concerns/decidim/flash_helper_extensions.rb +47 -0
- data/app/helpers/decidim/action_authorization_helper.rb +24 -2
- data/app/helpers/decidim/amendments_helper.rb +5 -3
- data/app/helpers/decidim/application_helper.rb +7 -1
- data/app/helpers/decidim/check_boxes_tree_helper.rb +4 -5
- data/app/helpers/decidim/cta_button_helper.rb +1 -1
- data/app/helpers/decidim/decidim_form_helper.rb +23 -0
- data/app/helpers/decidim/endorsable_helper.rb +93 -0
- data/app/helpers/decidim/filters_helper.rb +15 -5
- data/app/helpers/decidim/followable_helper.rb +11 -0
- data/app/helpers/decidim/layout_helper.rb +23 -5
- data/app/helpers/decidim/map_helper.rb +15 -2
- data/app/helpers/decidim/markup_helper.rb +9 -0
- data/app/helpers/decidim/messaging/conversation_helper.rb +61 -7
- data/app/helpers/decidim/orders_helper.rb +10 -1
- data/app/helpers/decidim/participatory_space_helpers.rb +1 -1
- data/app/helpers/decidim/resource_versions_helper.rb +24 -7
- data/app/helpers/decidim/rich_text_editor_helper.rb +1 -0
- data/app/helpers/decidim/sanitize_helper.rb +10 -2
- data/app/helpers/decidim/tooltip_helper.rb +1 -1
- data/app/helpers/decidim/traceability_helper.rb +2 -8
- data/app/helpers/decidim/user_profile_helper.rb +1 -1
- data/app/helpers/decidim/widget_urls_helper.rb +4 -2
- data/app/jobs/decidim/event_publisher_job.rb +1 -1
- data/app/mailers/concerns/decidim/multitenant_asset_host.rb +33 -0
- data/app/mailers/decidim/application_mailer.rb +1 -0
- data/app/mailers/decidim/messaging/conversation_mailer.rb +53 -4
- data/app/mailers/decidim/newsletter_mailer.rb +22 -4
- data/app/middleware/decidim/strip_x_forwarded_host.rb +14 -0
- data/app/models/decidim/action_log.rb +1 -1
- data/app/models/decidim/amendment.rb +0 -18
- data/app/models/decidim/authorization.rb +24 -0
- data/app/models/decidim/component.rb +7 -0
- data/app/models/decidim/content_block.rb +5 -3
- data/app/models/decidim/endorsement.rb +30 -0
- data/app/models/decidim/messaging/conversation.rb +39 -11
- data/app/models/decidim/messaging/message.rb +31 -5
- data/app/models/decidim/messaging/participation.rb +1 -1
- data/app/models/decidim/messaging/receipt.rb +8 -0
- data/app/models/decidim/newsletter.rb +7 -1
- data/app/models/decidim/organization.rb +16 -7
- data/app/models/decidim/user.rb +32 -0
- data/app/models/decidim/user_group.rb +23 -0
- data/app/permissions/decidim/permissions.rb +19 -6
- data/app/presenters/decidim/admin_log/user_presenter.rb +1 -1
- data/app/presenters/decidim/metric_charts_presenter.rb +33 -13
- data/app/presenters/decidim/nil_presenter.rb +29 -0
- data/app/presenters/decidim/resource_locator_presenter.rb +2 -1
- data/app/presenters/decidim/user_group_presenter.rb +1 -1
- data/app/presenters/decidim/user_presenter.rb +6 -0
- data/app/queries/decidim/metric_manage.rb +5 -0
- data/app/queries/decidim/metrics/followers_metric_manage.rb +1 -6
- data/app/queries/decidim/user_groups/admin_memberships.rb +3 -3
- data/app/services/decidim/activity_search.rb +1 -0
- data/app/services/decidim/base_diff_renderer.rb +25 -3
- data/app/services/decidim/events_manager.rb +4 -1
- data/app/types/decidim/core/decidim_type.rb +0 -4
- data/app/types/decidim/core/has_endorsable_input_sort.rb +17 -0
- data/app/types/decidim/core/has_timestamp_input_filter.rb +52 -0
- data/app/types/decidim/core/has_timestamp_input_sort.rb +12 -0
- data/app/types/decidim/core/user_entity_input_filter.rb +81 -0
- data/app/types/decidim/core/user_entity_input_sort.rb +24 -0
- data/app/types/decidim/core/user_group_type.rb +17 -5
- data/app/types/decidim/core/user_type.rb +17 -6
- data/app/uploaders/decidim/attachment_uploader.rb +1 -1
- data/app/uploaders/decidim/avatar_uploader.rb +4 -0
- data/app/uploaders/decidim/image_uploader.rb +28 -4
- data/app/uploaders/decidim/newsletter_template_image_uploader.rb +36 -0
- data/app/views/decidim/account/delete.html.erb +6 -3
- data/app/views/decidim/account/show.html.erb +17 -10
- data/app/views/decidim/amendments/_edit_form_fields.html.erb +2 -0
- data/app/views/decidim/amendments/_similar_emendation.html.erb +4 -4
- data/app/views/decidim/amendments/compare_draft.html.erb +2 -2
- data/app/views/decidim/amendments/edit_draft.html.erb +2 -2
- data/app/views/decidim/amendments/new.html.erb +2 -2
- data/app/views/decidim/amendments/preview_draft.html.erb +2 -2
- data/app/views/decidim/amendments/review.html.erb +3 -3
- data/app/views/decidim/application/_collection.html.erb +2 -2
- data/app/views/decidim/application/_document.html.erb +4 -4
- data/app/views/decidim/application/_documents.html.erb +1 -1
- data/app/views/decidim/application/_photos.html.erb +1 -1
- data/app/views/decidim/authorization_modals/show.html.erb +1 -1
- data/app/views/decidim/data_portability/show.html.erb +3 -0
- data/app/views/decidim/devise/confirmations/new.html.erb +3 -3
- data/app/views/decidim/devise/invitations/edit.html.erb +13 -13
- data/app/views/decidim/devise/omniauth_registrations/new.html.erb +5 -3
- data/app/views/decidim/devise/passwords/edit.html.erb +5 -3
- data/app/views/decidim/devise/passwords/new.html.erb +3 -3
- data/app/views/decidim/devise/registrations/edit.html.erb +2 -1
- data/app/views/decidim/devise/registrations/new.html.erb +7 -8
- data/app/views/decidim/devise/sessions/new.html.erb +4 -6
- data/app/views/decidim/devise/shared/_newsletter_modal.html.erb +3 -3
- data/app/views/decidim/devise/shared/_omniauth_buttons.html.erb +3 -1
- data/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb +4 -1
- data/app/views/decidim/devise/unlocks/new.html.erb +3 -3
- data/app/views/decidim/doorkeeper/authorizations/new.html.erb +2 -2
- data/app/views/decidim/endorsements/_identity.html.erb +9 -0
- data/app/views/decidim/endorsements/identities.html.erb +12 -0
- data/app/views/decidim/endorsements/update_buttons_and_counters.js.erb +20 -0
- data/app/views/decidim/errors/internal_server_error.html.erb +2 -2
- data/app/views/decidim/errors/not_found.html.erb +2 -2
- data/app/views/decidim/gamification/badges/index.html.erb +4 -4
- data/app/views/decidim/group_admins/index.html.erb +6 -4
- data/app/views/decidim/group_invites/index.html.erb +5 -2
- data/app/views/decidim/group_members/index.html.erb +6 -4
- data/app/views/decidim/groups/_form.html.erb +2 -0
- data/app/views/decidim/groups/edit.html.erb +4 -2
- data/app/views/decidim/groups/new.html.erb +2 -2
- data/app/views/decidim/last_activities/index.html.erb +2 -0
- data/app/views/decidim/messaging/conversation_mailer/comanagers_new_conversation.html.erb +17 -0
- data/app/views/decidim/messaging/conversation_mailer/comanagers_new_message.html.erb +17 -0
- data/app/views/decidim/messaging/conversation_mailer/new_conversation.html.erb +2 -2
- data/app/views/decidim/messaging/conversation_mailer/new_group_conversation.html.erb +17 -0
- data/app/views/decidim/messaging/conversation_mailer/new_group_message.html.erb +17 -0
- data/app/views/decidim/messaging/conversation_mailer/new_message.html.erb +2 -2
- data/app/views/decidim/messaging/conversations/_add_conversation_users.html.erb +24 -0
- data/app/views/decidim/messaging/conversations/_conversation.html.erb +54 -0
- data/app/views/decidim/messaging/conversations/_messages.html.erb +15 -0
- data/app/views/decidim/messaging/conversations/_new_conversation_button.html.erb +33 -0
- data/app/views/decidim/messaging/conversations/_reply.html.erb +3 -3
- data/app/views/decidim/messaging/conversations/_show.html.erb +34 -15
- data/app/views/decidim/messaging/conversations/_start.html.erb +7 -1
- data/app/views/decidim/messaging/conversations/create.js.erb +1 -1
- data/app/views/decidim/messaging/conversations/index.html.erb +34 -29
- data/app/views/decidim/messaging/conversations/new.html.erb +1 -1
- data/app/views/decidim/messaging/conversations/show.html.erb +8 -4
- data/app/views/decidim/messaging/conversations/update.js.erb +1 -1
- data/app/views/decidim/newsletter_mailer/newsletter.html.erb +2 -2
- data/app/views/decidim/newsletters/show.html.erb +8 -1
- data/app/views/decidim/notifications/index.html.erb +4 -2
- data/app/views/decidim/notifications_settings/show.html.erb +14 -1
- data/app/views/decidim/own_user_groups/index.html.erb +4 -0
- data/app/views/decidim/pages/_standalone.html.erb +1 -1
- data/app/views/decidim/pages/_tabbed.html.erb +5 -5
- data/app/views/decidim/pages/index.html.erb +22 -13
- data/app/views/decidim/profiles/_user_follow.erb +3 -3
- data/app/views/decidim/profiles/show.html.erb +2 -0
- data/app/views/decidim/scopes/_scopes_picker_input.html.erb +11 -4
- data/app/views/decidim/scopes/picker.html.erb +26 -16
- data/app/views/decidim/searches/_count.html.erb +14 -11
- data/app/views/decidim/searches/_filters.html.erb +2 -2
- data/app/views/decidim/searches/index.html.erb +5 -3
- data/app/views/decidim/shared/_check_boxes_tree.html.erb +5 -3
- data/app/views/decidim/shared/_confirm_modal.html.erb +18 -0
- data/app/views/decidim/shared/_embed_modal.html.erb +4 -1
- data/app/views/decidim/shared/_extended_navigation_bar.html.erb +2 -2
- data/app/views/decidim/shared/_filter_form_help.erb +8 -0
- data/app/views/decidim/shared/_floating_help.html.erb +7 -7
- data/app/views/decidim/shared/_login_modal.html.erb +4 -4
- data/app/views/decidim/shared/_orders.html.erb +16 -5
- data/app/views/decidim/shared/_results_per_page.html.erb +16 -6
- data/app/views/decidim/shared/_share_modal.html.erb +8 -4
- data/app/views/decidim/shared/_static_map.html.erb +1 -1
- data/app/views/decidim/shared/participatory_space_filters/_filters.html.erb +1 -1
- data/app/views/decidim/user_activities/index.html.erb +4 -0
- data/app/views/decidim/user_activities/index.js.erb +14 -0
- data/app/views/decidim/user_conversations/index.html.erb +4 -0
- data/app/views/decidim/user_conversations/show.html.erb +4 -0
- data/app/views/decidim/user_conversations/update.js.erb +8 -0
- data/app/views/decidim/user_interests/_scopes.html.erb +12 -10
- data/app/views/decidim/user_interests/show.html.erb +4 -1
- data/app/views/decidim/user_timeline/index.html.erb +5 -1
- data/app/views/decidim/user_timeline/index.js.erb +14 -0
- data/app/views/kaminari/decidim/_first_page.html.erb +5 -1
- data/app/views/kaminari/decidim/_last_page.html.erb +5 -1
- data/app/views/kaminari/decidim/_next_page.html.erb +6 -1
- data/app/views/kaminari/decidim/_page.html.erb +2 -2
- data/app/views/kaminari/decidim/_paginator.html.erb +16 -14
- data/app/views/kaminari/decidim/_prev_page.html.erb +6 -1
- data/app/views/layouts/decidim/_application.html.erb +4 -2
- data/app/views/layouts/decidim/_cookie_warning.html.erb +1 -1
- data/app/views/layouts/decidim/_edit_link.html.erb +0 -0
- data/app/views/layouts/decidim/_head.html.erb +2 -0
- data/app/views/layouts/decidim/_js_configuration.html.erb +28 -0
- data/app/views/layouts/decidim/_language_chooser.html.erb +10 -5
- data/app/views/layouts/decidim/_logo.html.erb +2 -22
- data/app/views/layouts/decidim/_mailer_logo.html.erb +2 -22
- data/app/views/layouts/decidim/_main_footer.html.erb +3 -1
- data/app/views/layouts/decidim/_mini_footer.html.erb +7 -7
- data/app/views/layouts/decidim/_omnipresent_banner.html.erb +1 -1
- data/app/views/layouts/decidim/_organization_colors.html.erb +4 -3
- data/app/views/layouts/decidim/_social_media_links.html.erb +15 -10
- data/app/views/layouts/decidim/_topbar_search.html.erb +12 -2
- data/app/views/layouts/decidim/_user_menu.html.erb +6 -6
- data/app/views/layouts/decidim/_wrapper.html.erb +21 -16
- data/app/views/layouts/decidim/newsletter_base.html.erb +46 -0
- data/app/views/layouts/decidim/user_profile.html.erb +8 -3
- data/app/views/layouts/decidim/widget.html.erb +1 -0
- data/config/initializers/devise.rb +11 -3
- data/config/initializers/invisible_captcha.rb +1 -0
- data/config/initializers/omniauth.rb +7 -1
- data/config/initializers/rack_attack.rb +25 -16
- data/config/locales/ar.yml +7 -5
- data/config/locales/bg-BG.yml +1512 -0
- data/config/locales/ca.yml +258 -6
- data/config/locales/cs.yml +297 -37
- data/config/locales/da-DK.yml +9 -0
- data/config/locales/de.yml +279 -5
- data/config/locales/el.yml +1443 -5
- data/config/locales/en.yml +263 -11
- data/config/locales/es-MX.yml +257 -5
- data/config/locales/es-PY.yml +257 -5
- data/config/locales/es.yml +257 -5
- data/config/locales/et-EE.yml +9 -0
- data/config/locales/eu.yml +7 -2
- data/config/locales/fi-plain.yml +258 -6
- data/config/locales/fi.yml +319 -67
- data/config/locales/fr-CA.yml +1585 -0
- data/config/locales/fr.yml +263 -5
- data/config/locales/ga-IE.yml +9 -0
- data/config/locales/gl.yml +7 -2
- data/config/locales/hr-HR.yml +9 -0
- data/config/locales/hu.yml +87 -5
- data/config/locales/id-ID.yml +7 -2
- data/config/locales/is-IS.yml +1 -0
- data/config/locales/it.yml +279 -27
- data/config/locales/ja-JP.yml +1578 -0
- data/config/locales/lt-LT.yml +9 -0
- data/config/locales/lv-LV.yml +1485 -0
- data/config/locales/mt-MT.yml +9 -0
- data/config/locales/nl.yml +261 -6
- data/config/locales/no.yml +117 -41
- data/config/locales/pl.yml +755 -406
- data/config/locales/pt-BR.yml +8 -4
- data/config/locales/pt.yml +875 -536
- data/config/locales/ro-RO.yml +1603 -0
- data/config/locales/ru.yml +6 -1
- data/config/locales/sk-SK.yml +1426 -0
- data/config/locales/sk.yml +1441 -0
- data/config/locales/sl.yml +71 -0
- data/config/locales/sr-CS.yml +129 -0
- data/config/locales/sv.yml +323 -24
- data/config/locales/tr-TR.yml +7 -2
- data/config/locales/uk.yml +6 -1
- data/config/routes.rb +5 -0
- data/db/migrate/20180810092428_move_organization_fields_to_hero_content_block.rb +2 -2
- data/db/migrate/20191130151925_create_decidim_endorsements.rb +13 -0
- data/db/migrate/20191204075509_add_session_token_to_users.rb +7 -0
- data/db/migrate/20200211173227_add_direct_message_types_to_users.rb +12 -0
- data/db/migrate/20200320105904_index_foreign_keys_in_decidim_action_logs.rb +9 -0
- data/db/migrate/20200320105905_index_foreign_keys_in_decidim_amendments.rb +7 -0
- data/db/migrate/20200320105909_index_foreign_keys_in_decidim_authorizations.rb +7 -0
- data/db/migrate/20200320105917_index_foreign_keys_in_decidim_contextual_help_sections.rb +7 -0
- data/db/migrate/20200320105919_index_foreign_keys_in_decidim_endorsements.rb +7 -0
- data/db/migrate/20200320105923_index_foreign_keys_in_decidim_notifications.rb +7 -0
- data/db/migrate/20200320105927_index_foreign_keys_in_oauth_access_grants.rb +7 -0
- data/db/migrate/20200323094443_add_id_to_content_blocks_scope.rb +7 -0
- data/db/migrate/20200326102407_rename_scope_column.rb +7 -0
- data/db/migrate/20200327082257_migrate_newsletters_to_templates.rb +33 -0
- data/db/migrate/20200327082954_remove_newsletter_body.rb +7 -0
- data/db/migrate/20200401073419_add_index_on_content_block_scope_id.rb +11 -0
- data/db/seeds.rb +1 -1
- data/{app/controllers/concerns → lib}/decidim/action_authorization.rb +0 -0
- data/lib/decidim/api/author_interface.rb +4 -0
- data/lib/decidim/api/endorsable_interface.rb +22 -0
- data/lib/decidim/api/participatory_space_interface.rb +2 -0
- data/lib/decidim/api/timestamps_interface.rb +2 -2
- data/lib/decidim/coauthorable.rb +1 -1
- data/lib/decidim/component_manifest.rb +14 -0
- data/lib/decidim/content_parsers.rb +1 -0
- data/lib/decidim/content_parsers/user_group_parser.rb +61 -0
- data/lib/decidim/content_parsers/user_parser.rb +3 -5
- data/lib/decidim/content_renderers.rb +1 -0
- data/lib/decidim/content_renderers/user_group_renderer.rb +30 -0
- data/lib/decidim/core.rb +65 -21
- data/lib/decidim/core/api.rb +1 -0
- data/lib/decidim/core/engine.rb +88 -6
- data/lib/decidim/core/test.rb +8 -0
- data/lib/decidim/core/test/factories.rb +103 -3
- data/lib/decidim/core/test/shared_examples/admin_resource_gallery_examples.rb +79 -0
- data/lib/decidim/core/test/shared_examples/back_to_list_button_examples.rb +17 -0
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +17 -2
- data/lib/decidim/core/test/shared_examples/edit_link_shared_examples.rb +5 -1
- data/lib/decidim/core/test/shared_examples/endorsable_interface_examples.rb +22 -0
- data/lib/decidim/core/test/shared_examples/endorsements_controller_shared_context.rb +22 -0
- data/lib/decidim/core/test/shared_examples/follows_examples.rb +1 -1
- data/lib/decidim/core/test/shared_examples/input_sort_examples.rb +21 -0
- data/lib/decidim/core/test/shared_examples/logo_email.rb +20 -0
- data/lib/decidim/core/test/shared_examples/metric_manage_shared_context.rb +9 -0
- data/lib/decidim/core/test/shared_examples/permissions.rb +143 -0
- data/lib/decidim/core/test/shared_examples/reports_examples.rb +4 -4
- data/lib/decidim/core/test/shared_examples/rich_text_editor_examples.rb +3 -3
- data/lib/decidim/core/test/shared_examples/simple_event.rb +1 -0
- data/lib/decidim/core/test/shared_examples/system_endorse_resource_examples.rb +165 -0
- data/lib/decidim/core/test/shared_examples/traceable_interface_examples.rb +3 -3
- data/lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb +89 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/endorsable.rb +25 -0
- data/lib/decidim/events.rb +1 -0
- data/lib/decidim/events/user_group_event.rb +45 -0
- data/lib/decidim/exporters/csv.rb +1 -1
- data/lib/decidim/filter_form_builder.rb +15 -6
- data/lib/decidim/form_builder.rb +209 -23
- data/lib/decidim/has_attachments.rb +1 -1
- data/lib/decidim/participable.rb +6 -0
- data/lib/decidim/participatory_space_manifest.rb +15 -0
- data/lib/decidim/query_extensions.rb +9 -15
- data/lib/decidim/settings_manifest.rb +15 -1
- data/lib/decidim/view_model.rb +4 -0
- data/lib/tasks/decidim_tasks.rake +1 -0
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ro.js +15 -0
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.sk.js +14 -0
- data/vendor/assets/javascripts/svg4everybody.min.js +1 -2
- data/vendor/assets/javascripts/tribute.js +11 -4
- metadata +187 -31
- data/app/assets/javascripts/decidim/vizzs/orgchart.js.es6 +0 -699
- data/app/assets/stylesheets/decidim/email.css +0 -1403
- data/app/assets/stylesheets/decidim/modules/_input-hashtags.scss +0 -124
- data/app/resolvers/decidim/core/user_resolver.rb +0 -61
- data/app/views/decidim/messaging/conversations/_message.html.erb +0 -14
data/config/locales/tr-TR.yml
CHANGED
@@ -206,6 +206,7 @@ tr:
|
|
206
206
|
explanation: '"A" ile başlayan bir pasaport numarası girerek doğrulanın.'
|
207
207
|
fields:
|
208
208
|
passport_number: Pasaport numarası
|
209
|
+
postal_code: Posta kodu
|
209
210
|
name: Başka bir örnek yetkilendirme
|
210
211
|
dummy_authorization_handler:
|
211
212
|
explanation: '"X" ile biten bir belge numarası girerek doğrulanmış olsun'
|
@@ -384,6 +385,8 @@ tr:
|
|
384
385
|
this_application_will_not_be_able_to: 'Bu uygulama mümkün olmayacaktır:'
|
385
386
|
update_profile: profilinizi güncelleyin
|
386
387
|
wants_to_use_your_account_html: "<strong>%{application_name}</strong> hesabınızı kullanmak istiyor"
|
388
|
+
endorsable:
|
389
|
+
endorsements: Cirolar
|
387
390
|
errors:
|
388
391
|
internal_server_error:
|
389
392
|
title: Sunucumuzla ilgili bir sorun oluştu
|
@@ -725,6 +728,7 @@ tr:
|
|
725
728
|
create:
|
726
729
|
error: Konuşma başlamadı. Daha sonra tekrar deneyin
|
727
730
|
index:
|
731
|
+
close: Yakın kalıcı
|
728
732
|
no_conversations: Henüz konuşma yok
|
729
733
|
title: Konuşmalar
|
730
734
|
reply:
|
@@ -990,8 +994,6 @@ tr:
|
|
990
994
|
close_window: Pencereyi kapat
|
991
995
|
share: Pay
|
992
996
|
share_link: Linki paylaş
|
993
|
-
version_author:
|
994
|
-
deleted: Silinmiş kullanıcı
|
995
997
|
user_activity:
|
996
998
|
index:
|
997
999
|
no_activities_warning: Bu kullanıcının henüz herhangi bir etkinliği olmadı.
|
@@ -1004,6 +1006,9 @@ tr:
|
|
1004
1006
|
update:
|
1005
1007
|
error: İlgi alanlarınız güncellenirken bir hata oluştu.
|
1006
1008
|
success: İlgi alanlarınız başarıyla güncellendi.
|
1009
|
+
version_author:
|
1010
|
+
show:
|
1011
|
+
deleted: Silinmiş kullanıcı
|
1007
1012
|
welcome_notification:
|
1008
1013
|
default_body: <p>Merhaba {{name}}, {{organization}} katıldığınız için teşekkürler ve hoş geldiniz!</p><ul><li>Burada neler yapabileceğiniz hakkında hızlı bir fikir edinmek istiyorsanız, <a href="{{help_url}}">Yardım</a> bölümüne bakın.</li><li>Okuduktan sonra ilk rozetinizi alacaksınız. İşte bu <a href="{{badges_url}}">tüm rozetlerle listesi</a> size katılmak olarak alabilirsiniz {{organization}}</li><li>onlarla Son ama en az, diğer insanları birleştirmek, paylaşmak yapan ve katılan olma deneyimi {{organization}}. Öneriler, yorumlar, tartışmalar yapın, ortak iyiliğe nasıl katkıda bulunacağınızı düşünün, ikna edeceğiniz argümanlar sunun, ikna olun, ikna olun, fikirlerinizi somut ve doğrudan bir şekilde ifade edin, sabır ve kararla karşılık verin, fikirlerinizi savunun ve saklayın. İşbirliği yapmak ve diğer insanların fikirlerine katılmak için açık bir zihin.</li></ul>
|
1009
1014
|
default_subject: '{{organization}}katıldığınız için teşekkürler!'
|
data/config/locales/uk.yml
CHANGED
@@ -138,6 +138,7 @@ uk:
|
|
138
138
|
explanation: Підтвердьте свою особу, ввівши номер паспорта, що починається з "А"
|
139
139
|
fields:
|
140
140
|
passport_number: Номер паспорта
|
141
|
+
postal_code: Поштовий індекс
|
141
142
|
name: Ще один приклад підтвердження особи
|
142
143
|
dummy_authorization_handler:
|
143
144
|
explanation: Підтвердьте особу, ввівши номер документа, що закінчується на "X"
|
@@ -278,6 +279,8 @@ uk:
|
|
278
279
|
this_application_will_not_be_able_to: 'Цей додаток не зможе:'
|
279
280
|
update_profile: Оновлювати ваш профіль
|
280
281
|
wants_to_use_your_account_html: "<strong>%{application_name}</strong> бажає використовувати ваш обліковий запис"
|
282
|
+
endorsable:
|
283
|
+
endorsements: Проявів підтримки
|
281
284
|
errors:
|
282
285
|
internal_server_error:
|
283
286
|
title: При з'єднанні з нашим сервером сталася помилка
|
@@ -392,6 +395,7 @@ uk:
|
|
392
395
|
create:
|
393
396
|
error: Бесіда не розпочата. Спробуйте ще раз пізніше
|
394
397
|
index:
|
398
|
+
close: Закрити віконце
|
395
399
|
no_conversations: У вас ще немає бесід
|
396
400
|
reply:
|
397
401
|
title: Відповісти
|
@@ -568,7 +572,8 @@ uk:
|
|
568
572
|
close_window: Закрити вікно
|
569
573
|
share: Поділитися
|
570
574
|
share_link: Поділитись посиланням
|
571
|
-
|
575
|
+
version_author:
|
576
|
+
show:
|
572
577
|
deleted: Видалений учасник
|
573
578
|
devise:
|
574
579
|
invitations:
|
data/config/routes.rb
CHANGED
@@ -48,6 +48,7 @@ Decidim::Core::Engine.routes.draw do
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
resources :conversations, only: [:new, :create, :index, :show, :update], controller: "messaging/conversations"
|
51
|
+
post "/conversations/check_multiple", to: "messaging/conversations#check_multiple"
|
51
52
|
resources :notifications, only: [:index, :destroy] do
|
52
53
|
collection do
|
53
54
|
delete :read_all
|
@@ -99,6 +100,7 @@ Decidim::Core::Engine.routes.draw do
|
|
99
100
|
get "members", to: "profiles#members", as: "profile_members"
|
100
101
|
get "activity", to: "user_activities#index", as: "profile_activity"
|
101
102
|
get "timeline", to: "user_timeline#index", as: "profile_timeline"
|
103
|
+
resources :conversations, except: [:destroy], controller: "user_conversations", as: "profile_conversations"
|
102
104
|
end
|
103
105
|
|
104
106
|
resources :pages, only: [:index, :show], format: false
|
@@ -120,6 +122,9 @@ Decidim::Core::Engine.routes.draw do
|
|
120
122
|
|
121
123
|
resource :follow, only: [:create, :destroy]
|
122
124
|
resource :report, only: [:create]
|
125
|
+
resources :endorsements, only: [:create, :destroy] do
|
126
|
+
get :identities, on: :member
|
127
|
+
end
|
123
128
|
resources :amends, only: [:new, :reject, :accept], controller: :amendments do
|
124
129
|
collection do
|
125
130
|
post :create
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class MoveOrganizationFieldsToHeroContentBlock < ActiveRecord::Migration[5.2]
|
4
|
-
class
|
4
|
+
class Organization < ApplicationRecord
|
5
5
|
self.table_name = :decidim_organizations
|
6
6
|
|
7
7
|
mount_uploader :homepage_image, ::Decidim::HomepageImageUploader
|
@@ -9,7 +9,7 @@ class MoveOrganizationFieldsToHeroContentBlock < ActiveRecord::Migration[5.2]
|
|
9
9
|
|
10
10
|
def change
|
11
11
|
Decidim::ContentBlock.reset_column_information
|
12
|
-
|
12
|
+
Organization.find_each do |organization|
|
13
13
|
content_block = Decidim::ContentBlock.find_by(organization: organization, scope: :homepage, manifest_name: :hero)
|
14
14
|
settings = {}
|
15
15
|
welcome_text = organization.welcome_text || {}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateDecidimEndorsements < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
create_table :decidim_endorsements do |t|
|
6
|
+
t.references :resource, polymorphic: true
|
7
|
+
t.references :decidim_author, polymorphic: true, index: { name: "idx_endorsements_authors" }
|
8
|
+
t.integer :decidim_user_group_id, foreign_key: true
|
9
|
+
t.timestamps
|
10
|
+
t.index [:resource_type, :resource_id, :decidim_author_type, :decidim_author_id, :decidim_user_group_id], name: "idx_endorsements_rsrcs_and_authors", unique: true
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class AddDirectMessageTypesToUsers < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
add_column :decidim_users, :direct_message_types, :string, default: "all"
|
6
|
+
# rubocop:disable Rails/SkipsModelValidations
|
7
|
+
Decidim::UserBaseEntity.update_all(direct_message_types: "all")
|
8
|
+
# rubocop:enable Rails/SkipsModelValidations
|
9
|
+
|
10
|
+
change_column_null :decidim_users, :direct_message_types, false
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class IndexForeignKeysInDecidimActionLogs < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
add_index :decidim_action_logs, :decidim_area_id
|
6
|
+
add_index :decidim_action_logs, :decidim_scope_id
|
7
|
+
add_index :decidim_action_logs, :version_id
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class MigrateNewslettersToTemplates < ActiveRecord::Migration[5.2]
|
4
|
+
class ContentBlock < ApplicationRecord
|
5
|
+
self.table_name = :decidim_content_blocks
|
6
|
+
end
|
7
|
+
|
8
|
+
class Newsletter < ApplicationRecord
|
9
|
+
self.table_name = :decidim_newsletters
|
10
|
+
end
|
11
|
+
|
12
|
+
def change
|
13
|
+
remove_index :decidim_content_blocks, name: "idx_dcdm_content_blocks_uniq_org_id_scope_manifest_name"
|
14
|
+
|
15
|
+
Newsletter.find_each do |newsletter|
|
16
|
+
existing_content_block = ContentBlock
|
17
|
+
.where(decidim_organization_id: newsletter.organization_id)
|
18
|
+
.where(scope_name: :newsletter_template)
|
19
|
+
.find_by(scoped_resource_id: newsletter.id)
|
20
|
+
|
21
|
+
next if existing_content_block
|
22
|
+
|
23
|
+
content_block = ContentBlock.new(
|
24
|
+
decidim_organization_id: newsletter.organization_id,
|
25
|
+
manifest_name: :basic_only_text,
|
26
|
+
scope_name: :newsletter_template,
|
27
|
+
scoped_resource_id: newsletter.id,
|
28
|
+
settings: newsletter.body.transform_keys { |key| "body_#{key}" }
|
29
|
+
)
|
30
|
+
content_block.save!
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class AddIndexOnContentBlockScopeId < ActiveRecord::Migration[5.2]
|
4
|
+
def change
|
5
|
+
add_index(
|
6
|
+
:decidim_content_blocks,
|
7
|
+
[:decidim_organization_id, :scope_name, :scoped_resource_id, :manifest_name],
|
8
|
+
name: "idx_decidim_content_blocks_org_id_scope_scope_id_manifest"
|
9
|
+
)
|
10
|
+
end
|
11
|
+
end
|
data/db/seeds.rb
CHANGED
@@ -199,7 +199,7 @@ if !Rails.env.production? || ENV["SEED"]
|
|
199
199
|
|
200
200
|
Decidim::System::CreateDefaultContentBlocks.call(organization)
|
201
201
|
|
202
|
-
hero_content_block = Decidim::ContentBlock.find_by(organization: organization, manifest_name: :hero,
|
202
|
+
hero_content_block = Decidim::ContentBlock.find_by(organization: organization, manifest_name: :hero, scope_name: :homepage)
|
203
203
|
hero_content_block.images_container.background_image = File.new(File.join(seeds_root, "homepage_image.jpg"))
|
204
204
|
settings = {}
|
205
205
|
welcome_text = Decidim::Faker::Localized.sentence(5)
|
File without changes
|
@@ -7,12 +7,16 @@ module Decidim
|
|
7
7
|
name "Author"
|
8
8
|
description "An author"
|
9
9
|
|
10
|
+
field :id, !types.ID, "The author ID"
|
10
11
|
field :name, !types.String, "The author's name"
|
11
12
|
field :nickname, !types.String, "The author's nickname"
|
12
13
|
|
13
14
|
field :avatarUrl, !types.String, "The author's avatar url"
|
14
15
|
field :profilePath, !types.String, "The author's profile path"
|
15
16
|
field :badge, !types.String, "The author's badge icon"
|
17
|
+
field :organizationName, !types.String, "The authors's organization name" do
|
18
|
+
resolve ->(obj, _args, _ctx) { obj.organization.name }
|
19
|
+
end
|
16
20
|
|
17
21
|
field :deleted, !types.Boolean, "Whether the author's account has been deleted or not"
|
18
22
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Core
|
5
|
+
# This interface represents an object capable of endorsements.
|
6
|
+
EndorsableInterface = GraphQL::InterfaceType.define do
|
7
|
+
name "EndorsableInterface"
|
8
|
+
description "An interface that can be used in objects with endorsements"
|
9
|
+
|
10
|
+
field :endorsements, !types[Decidim::Core::AuthorInterface], "The endorsements of this object." do
|
11
|
+
resolve ->(object, _, _) {
|
12
|
+
object.endorsements.map(&:normalized_author)
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
field :endorsementsCount, types.Int do
|
17
|
+
description "The total amount of endorsements the object has received"
|
18
|
+
property :endorsements_count
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -24,6 +24,8 @@ module Decidim
|
|
24
24
|
|
25
25
|
field :stats, types[Decidim::Core::StatisticType] do
|
26
26
|
resolve ->(participatory_space, _args, _ctx) {
|
27
|
+
return if participatory_space.respond_to?(:show_statistics) && !participatory_space.show_statistics
|
28
|
+
|
27
29
|
published_components = Component.where(participatory_space: participatory_space).published
|
28
30
|
|
29
31
|
stats = Decidim.component_manifests.map do |component_manifest|
|
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
module Decidim
|
4
4
|
module Core
|
5
|
-
# This interface represents
|
5
|
+
# This interface represents an object with standard create_at and updated_at timestamps.
|
6
6
|
TimestampsInterface = GraphQL::InterfaceType.define do
|
7
7
|
name "TimestampsInterface"
|
8
|
-
description "An interface that can be used in objects created_at and updated_at attributes"
|
8
|
+
description "An interface that can be used in objects with created_at and updated_at attributes"
|
9
9
|
|
10
10
|
field :createdAt, Decidim::Core::DateTimeType do
|
11
11
|
description "The date and time this object was created"
|
data/lib/decidim/coauthorable.rb
CHANGED
@@ -76,7 +76,7 @@ module Decidim
|
|
76
76
|
#
|
77
77
|
# Returns an Array of User, UserGroups or any other entity capable object (such as Organization).
|
78
78
|
def identities
|
79
|
-
coauthorships.order(:created_at).collect(&:identity)
|
79
|
+
coauthorships.includes(:author, :user_group).order(:created_at).collect(&:identity)
|
80
80
|
end
|
81
81
|
|
82
82
|
# Returns the identities for the authors, only if they are user groups or users.
|
@@ -58,6 +58,11 @@ module Decidim
|
|
58
58
|
# probably have the form of `Decidim::<MyComponent>::Permissions`.
|
59
59
|
attribute :permissions_class_name, String, default: "Decidim::DefaultPermissions"
|
60
60
|
|
61
|
+
# The name of the class that handles extra logic on settings for this component.
|
62
|
+
# Optional class, that if present receives the settings and validates them.
|
63
|
+
# The suggested naming is `Decidim::<MyComponent>::Admin::ComponentForm`.
|
64
|
+
attribute :component_form_class_name, String, default: "Decidim::Admin::ComponentForm"
|
65
|
+
|
61
66
|
# Does this component have specific data to serialize and import?
|
62
67
|
# Beyond the attributes in decidim_component table.
|
63
68
|
attribute :serializes_specific_data, Boolean, default: false
|
@@ -215,6 +220,15 @@ module Decidim
|
|
215
220
|
permissions_class_name&.constantize
|
216
221
|
end
|
217
222
|
|
223
|
+
# Public: Finds the form class from its component, using the
|
224
|
+
# `component_form_class_name` attribute. If the class does not exist,
|
225
|
+
# it raises an exception. If the class name is not set, it returns nil.
|
226
|
+
#
|
227
|
+
# Returns a Class.
|
228
|
+
def component_form_class
|
229
|
+
component_form_class_name&.constantize
|
230
|
+
end
|
231
|
+
|
218
232
|
# Public: Finds the specific data serializer class from its name, using the
|
219
233
|
# `specific_data_serializer_class_name` attribute. If the class does not exist,
|
220
234
|
# it raises an exception. If the class name is not set, it returns nil.
|
@@ -4,6 +4,7 @@ module Decidim
|
|
4
4
|
module ContentParsers
|
5
5
|
autoload :BaseParser, "decidim/content_parsers/base_parser"
|
6
6
|
autoload :UserParser, "decidim/content_parsers/user_parser"
|
7
|
+
autoload :UserGroupParser, "decidim/content_parsers/user_group_parser"
|
7
8
|
autoload :HashtagParser, "decidim/content_parsers/hashtag_parser"
|
8
9
|
autoload :NewlineParser, "decidim/content_parsers/newline_parser"
|
9
10
|
autoload :LinkParser, "decidim/content_parsers/link_parser"
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ContentParsers
|
5
|
+
# A parser that searches user groups mentions in content.
|
6
|
+
#
|
7
|
+
# A word starting with `@` will be considered as a possible mention if
|
8
|
+
# they only contains letters, numbers or underscores.
|
9
|
+
#
|
10
|
+
# @see BaseParser Examples of how to use a content parser
|
11
|
+
class UserGroupParser < BaseParser
|
12
|
+
# Class used as a container for metadata
|
13
|
+
#
|
14
|
+
# @!attribute groups
|
15
|
+
# @return [Array] an array of Decidim::UserGroup mentioned in content
|
16
|
+
Metadata = Struct.new(:groups)
|
17
|
+
|
18
|
+
# Matches a nickname if contains letters, numbers or underscores.
|
19
|
+
MENTION_REGEX = /\B@(\w*)\b/.freeze
|
20
|
+
|
21
|
+
# Replaces found mentions matching a nickname of an existing
|
22
|
+
# group in the current organization with a global id. Other
|
23
|
+
# mentions found that doesn't match an existing group are
|
24
|
+
# returned as is.
|
25
|
+
#
|
26
|
+
# @return [String] the content with the valid mentions replaced by a global id
|
27
|
+
def rewrite
|
28
|
+
content.gsub(MENTION_REGEX) do |match|
|
29
|
+
groups[match[1..-1]]&.to_global_id&.to_s || match
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# (see BaseParser#metadata)
|
34
|
+
def metadata
|
35
|
+
Metadata.new(existing_groups)
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def groups
|
41
|
+
@groups ||= Hash[
|
42
|
+
existing_groups.map do |group|
|
43
|
+
[group.nickname, group]
|
44
|
+
end
|
45
|
+
]
|
46
|
+
end
|
47
|
+
|
48
|
+
def existing_groups
|
49
|
+
@existing_groups ||= Decidim::UserGroup.where(organization: current_organization, nickname: content_nicknames)
|
50
|
+
end
|
51
|
+
|
52
|
+
def content_nicknames
|
53
|
+
@content_nicknames ||= content.scan(MENTION_REGEX).flatten.uniq
|
54
|
+
end
|
55
|
+
|
56
|
+
def current_organization
|
57
|
+
@current_organization ||= context[:current_organization]
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|