decidim-core 0.11.2 → 0.12.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/decidim/notifications.js.es6 +8 -6
- data/app/assets/javascripts/decidim/user_registrations.js.es6 +25 -1
- data/app/assets/stylesheets/decidim/application.scss.erb +4 -0
- data/app/assets/stylesheets/decidim/layouts/_home.scss +79 -0
- data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +2 -1
- data/app/assets/stylesheets/decidim/modules/_cards.scss +82 -38
- data/app/assets/stylesheets/decidim/modules/_collapsible-list.scss +16 -0
- data/app/assets/stylesheets/decidim/modules/_definition-data.scss +27 -0
- data/app/assets/stylesheets/decidim/modules/_fingerprint.scss +8 -0
- data/app/assets/stylesheets/decidim/modules/_horizontal-tabs.scss +51 -0
- data/app/assets/stylesheets/decidim/modules/_inline-filters.scss +5 -3
- data/app/assets/stylesheets/decidim/modules/_margins.scss +6 -4
- data/app/assets/stylesheets/decidim/modules/_modules.scss +3 -0
- data/app/assets/stylesheets/decidim/modules/_navbar.scss +113 -7
- data/app/assets/stylesheets/decidim/modules/_signup.scss +22 -5
- data/app/assets/stylesheets/decidim/modules/_toggle.scss +9 -0
- data/app/assets/stylesheets/decidim/modules/_typography.scss +5 -1
- data/app/assets/stylesheets/decidim/utils/_helpers.scss +42 -0
- data/app/assets/stylesheets/decidim/utils/_mixins.scss +6 -0
- data/app/assets/stylesheets/decidim/utils/_settings.scss +3 -2
- data/app/cells/decidim/announcement/show.erb +11 -0
- data/app/cells/decidim/announcement_cell.rb +32 -0
- data/app/cells/decidim/author/comments.erb +6 -0
- data/app/cells/decidim/author/contact.erb +3 -0
- data/app/cells/decidim/author/date.erb +5 -0
- data/app/cells/decidim/author/flag.erb +5 -0
- data/app/cells/decidim/author/profile.erb +9 -0
- data/app/cells/decidim/{profile → author}/profile_inline.erb +1 -1
- data/app/cells/decidim/author/show.erb +18 -0
- data/app/cells/decidim/author/withdraw.erb +6 -0
- data/app/cells/decidim/author_cell.rb +109 -0
- data/app/cells/decidim/card/show.erb +18 -16
- data/app/cells/decidim/card_cell.rb +17 -4
- data/app/cells/decidim/card_m/author.erb +3 -0
- data/app/cells/decidim/card_m/badge.erb +1 -0
- data/app/cells/decidim/card_m/comments_counter.erb +3 -0
- data/app/cells/decidim/card_m/data.erb +0 -0
- data/app/cells/decidim/card_m/footer.erb +0 -0
- data/app/cells/decidim/card_m/header.erb +17 -0
- data/app/cells/decidim/card_m/image.erb +5 -0
- data/app/cells/decidim/card_m/label.erb +3 -0
- data/app/cells/decidim/card_m/show.erb +24 -0
- data/app/cells/decidim/card_m/status.erb +9 -0
- data/app/cells/decidim/card_m/tags.erb +0 -0
- data/app/cells/decidim/card_m_cell.rb +136 -0
- data/app/cells/decidim/collapsible_list/show.erb +20 -0
- data/app/cells/decidim/collapsible_list_cell.rb +66 -0
- data/app/cells/decidim/fingerprint/show.erb +22 -0
- data/app/cells/decidim/fingerprint_cell.rb +17 -0
- data/app/cells/decidim/follow_button/show.erb +34 -0
- data/app/cells/decidim/follow_button_cell.rb +40 -0
- data/app/cells/decidim/followers/show.erb +9 -0
- data/app/cells/decidim/followers_cell.rb +18 -0
- data/app/cells/decidim/following/show.erb +9 -0
- data/app/cells/decidim/following_cell.rb +24 -0
- data/app/cells/decidim/notifications/show.erb +48 -0
- data/app/cells/decidim/notifications_cell.rb +21 -0
- data/app/cells/decidim/progress_bar/show.erb +17 -0
- data/app/cells/decidim/progress_bar_cell.rb +68 -0
- data/app/cells/decidim/tags/category.erb +1 -0
- data/app/cells/decidim/tags/scope.erb +1 -0
- data/app/cells/decidim/tags/show.erb +5 -0
- data/app/cells/decidim/tags_cell.rb +62 -0
- data/app/cells/decidim/tos_page/announcement.erb +2 -0
- data/app/cells/decidim/tos_page/refuse_btn_modal.erb +23 -0
- data/app/cells/decidim/tos_page/sticky_form.erb +29 -0
- data/app/cells/decidim/tos_page_cell.rb +39 -0
- data/app/cells/decidim/user_profile/footer.erb +5 -0
- data/app/cells/decidim/user_profile/header.erb +20 -0
- data/app/cells/decidim/user_profile_cell.rb +26 -0
- data/app/commands/decidim/create_omniauth_registration.rb +1 -1
- data/app/commands/decidim/create_registration.rb +2 -1
- data/app/commands/decidim/search.rb +45 -0
- data/app/controllers/concerns/decidim/devise_controllers.rb +15 -12
- data/app/controllers/concerns/decidim/http_caching_disabler.rb +21 -0
- data/app/controllers/concerns/decidim/impersonate_users.rb +1 -6
- data/app/controllers/concerns/decidim/locale_switcher.rb +1 -1
- data/app/controllers/concerns/decidim/needs_permission.rb +70 -0
- data/app/controllers/concerns/decidim/needs_tos_accepted.rb +42 -0
- data/app/controllers/concerns/decidim/participatory_space_context.rb +1 -7
- data/app/controllers/concerns/decidim/user_profile.rb +3 -1
- data/app/controllers/decidim/account_controller.rb +4 -4
- data/app/controllers/decidim/application_controller.rb +17 -8
- data/app/controllers/decidim/components/base_controller.rb +14 -9
- data/app/controllers/decidim/cookie_policy_controller.rb +0 -2
- data/app/controllers/decidim/devise/confirmations_controller.rb +13 -0
- data/app/controllers/decidim/devise/invitations_controller.rb +3 -1
- data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +9 -3
- data/app/controllers/decidim/devise/passwords_controller.rb +1 -1
- data/app/controllers/decidim/devise/registrations_controller.rb +1 -7
- data/app/controllers/decidim/doorkeeper/authorizations_controller.rb +0 -2
- data/app/controllers/decidim/doorkeeper/credentials_controller.rb +0 -1
- data/app/controllers/decidim/errors_controller.rb +0 -2
- data/app/controllers/decidim/follows_controller.rb +4 -2
- data/app/controllers/decidim/locales_controller.rb +1 -1
- data/app/controllers/decidim/messaging/conversations_controller.rb +5 -5
- data/app/controllers/decidim/newsletters_controller.rb +0 -2
- data/app/controllers/decidim/notifications_controller.rb +3 -19
- data/app/controllers/decidim/notifications_settings_controller.rb +2 -2
- data/app/controllers/decidim/pages_controller.rb +12 -10
- data/app/controllers/decidim/profiles_controller.rb +10 -4
- data/app/controllers/decidim/reports_controller.rb +14 -1
- data/app/controllers/decidim/scopes_controller.rb +3 -3
- data/app/controllers/decidim/searches_controller.rb +39 -0
- data/app/controllers/decidim/static_map_controller.rb +0 -2
- data/app/controllers/decidim/tos_controller.rb +20 -0
- data/app/controllers/decidim/widgets_controller.rb +0 -1
- data/app/forms/decidim/follow_form.rb +1 -0
- data/app/forms/decidim/registration_form.rb +2 -1
- data/app/helpers/decidim/card_helper.rb +2 -0
- data/app/helpers/decidim/cells_paginate_helper.rb +16 -0
- data/app/helpers/decidim/cta_button_helper.rb +1 -1
- data/app/helpers/decidim/decidim_form_helper.rb +4 -0
- data/app/helpers/decidim/icon_helper.rb +2 -0
- data/app/helpers/decidim/resource_helper.rb +1 -2
- data/app/helpers/decidim/scopes_helper.rb +17 -10
- data/app/helpers/decidim/searches_helper.rb +16 -0
- data/app/helpers/decidim/tooltip_helper.rb +12 -0
- data/app/models/decidim/organization.rb +10 -0
- data/app/models/decidim/permission_action.rb +40 -0
- data/app/models/decidim/searchable_resource.rb +37 -0
- data/app/models/decidim/static_page.rb +4 -0
- data/app/models/decidim/user.rb +39 -3
- data/app/permissions/decidim/default_permissions.rb +61 -0
- data/app/permissions/decidim/permissions.rb +106 -0
- data/app/permissions/decidim/user_manager_permissions.rb +24 -0
- data/app/presenters/decidim/admin_log/organization_presenter.rb +2 -1
- data/app/presenters/decidim/home_stats_presenter.rb +2 -8
- data/app/presenters/decidim/user_presenter.rb +8 -0
- data/app/services/decidim/traceability.rb +6 -9
- data/app/types/decidim/core/user_type.rb +1 -1
- data/app/views/decidim/devise/invitations/edit.html.erb +56 -10
- data/app/views/decidim/devise/registrations/new.html.erb +36 -14
- data/app/views/decidim/devise/shared/_newsletter_modal.html.erb +25 -0
- data/app/views/decidim/follows/update_button.js.erb +2 -2
- data/app/views/decidim/messaging/conversations/_message.html.erb +1 -1
- data/app/views/{pages → decidim/pages}/decidim_page.html.erb +5 -0
- data/app/views/decidim/pages/home.html.erb +17 -0
- data/app/views/{pages → decidim/pages}/home/_extended.html.erb +0 -0
- data/app/views/{pages → decidim/pages}/home/_footer_sub_hero.html.erb +0 -0
- data/app/views/{pages → decidim/pages}/home/_hero.html.erb +0 -0
- data/app/views/{pages → decidim/pages}/home/_highlighted_content_banner.html.erb +0 -0
- data/app/views/{pages → decidim/pages}/home/_highlighted_processes.html.erb +0 -0
- data/app/views/{pages → decidim/pages}/home/_statistics.html.erb +0 -0
- data/app/views/{pages → decidim/pages}/home/_sub_hero.html.erb +0 -0
- data/app/views/decidim/profiles/_followers.html.erb +5 -0
- data/app/views/decidim/profiles/_following.html.erb +5 -0
- data/app/views/decidim/profiles/_notifications.html.erb +0 -0
- data/app/views/decidim/profiles/_user.html.erb +59 -0
- data/app/views/decidim/profiles/_user_follow.erb +32 -0
- data/app/views/decidim/profiles/show.html.erb +32 -59
- data/app/views/decidim/searches/_count.html.erb +1 -0
- data/app/views/decidim/searches/_filters.html.erb +20 -0
- data/app/views/decidim/searches/_filters_small_view.html.erb +18 -0
- data/app/views/decidim/searches/_results.html.erb +5 -0
- data/app/views/decidim/searches/index.html.erb +20 -0
- data/app/views/decidim/searches/index.js.erb +5 -0
- data/app/views/decidim/shared/_address_details.html.erb +7 -9
- data/app/views/decidim/shared/_announcement.html.erb +1 -6
- data/app/views/decidim/shared/_author_reference.html.erb +1 -1
- data/app/views/decidim/shared/_follow_button.html.erb +1 -34
- data/app/views/decidim/shared/_static_map.html.erb +3 -1
- data/app/views/decidim/shared/_tags.html.erb +1 -11
- data/app/views/kaminari/decidim/_paginator.html.erb +16 -15
- data/app/views/layouts/decidim/_head.html.erb +1 -0
- data/app/views/layouts/decidim/_topbar_search.html.erb +8 -0
- data/app/views/layouts/decidim/_user_menu.html.erb +2 -2
- data/app/views/layouts/decidim/_wrapper.html.erb +3 -2
- data/config/initializers/devise.rb +1 -1
- data/config/initializers/rack_attack.rb +28 -0
- data/config/locales/ca.yml +136 -55
- data/config/locales/en.yml +135 -54
- data/config/locales/es.yml +136 -55
- data/config/locales/eu.yml +136 -54
- data/config/locales/fi.yml +135 -54
- data/config/locales/fr.yml +136 -54
- data/config/locales/gl.yml +136 -54
- data/config/locales/it.yml +136 -54
- data/config/locales/nl.yml +136 -54
- data/config/locales/pl.yml +144 -54
- data/config/locales/pt-BR.yml +136 -54
- data/config/locales/pt.yml +136 -54
- data/config/locales/ru.yml +150 -60
- data/config/locales/sv.yml +136 -54
- data/config/locales/uk.yml +146 -57
- data/config/routes.rb +11 -1
- data/db/migrate/20180209122819_create_decidim_searchable_resource.rb +21 -0
- data/db/migrate/20180508111640_add_tos_version_to_organization.rb +19 -0
- data/db/migrate/20180508111710_add_accepted_tos_version_field_to_users.rb +25 -0
- data/db/seeds.rb +33 -26
- data/lib/decidim/component_manifest.rb +35 -27
- data/lib/decidim/content_processor.rb +21 -3
- data/lib/decidim/core.rb +27 -16
- data/lib/decidim/core/engine.rb +8 -19
- data/lib/decidim/core/test.rb +2 -0
- data/lib/decidim/core/test/factories.rb +34 -4
- data/lib/decidim/core/test/shared_examples/fingerprint_examples.rb +15 -0
- data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +27 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/events/base_event.rb +5 -1
- data/lib/decidim/fingerprint_calculator.rb +42 -0
- data/lib/decidim/fingerprintable.rb +63 -0
- data/lib/decidim/form_builder.rb +1 -0
- data/lib/decidim/manifest_registry.rb +4 -10
- data/lib/decidim/participable.rb +4 -0
- data/lib/decidim/participatory_space_manifest.rb +36 -0
- data/lib/decidim/participatory_space_resourceable.rb +11 -0
- data/lib/decidim/resource_manifest.rb +10 -11
- data/lib/decidim/resourceable.rb +3 -2
- data/lib/decidim/search_resource_fields_mapper.rb +93 -0
- data/lib/decidim/searchable.rb +85 -0
- data/lib/decidim/settings_manifest.rb +3 -2
- data/lib/decidim/traceable.rb +2 -0
- data/lib/decidim/view_model.rb +9 -0
- data/lib/tasks/decidim_tasks.rake +79 -1
- metadata +149 -76
- data/app/assets/stylesheets/decidim/extras/_register_form.scss +0 -9
- data/app/cells/decidim/author_box/show.erb +0 -10
- data/app/cells/decidim/author_box_cell.rb +0 -21
- data/app/cells/decidim/profile/show.erb +0 -13
- data/app/cells/decidim/profile_cell.rb +0 -17
- data/app/controllers/concerns/decidim/needs_authorization.rb +0 -46
- data/app/models/decidim/abilities/admin_ability.rb +0 -29
- data/app/models/decidim/abilities/base_ability.rb +0 -56
- data/app/models/decidim/abilities/everyone_ability.rb +0 -25
- data/app/models/decidim/abilities/participatory_process_admin_ability.rb +0 -28
- data/app/models/decidim/abilities/participatory_process_collaborator_ability.rb +0 -28
- data/app/models/decidim/abilities/participatory_process_moderator_ability.rb +0 -15
- data/app/models/decidim/abilities/user_manager_ability.rb +0 -35
- data/app/views/decidim/notifications/_notification.html.erb +0 -20
- data/app/views/decidim/notifications/index.html.erb +0 -36
- data/app/views/decidim/shared/_author.html.erb +0 -21
- data/app/views/pages/home.html.erb +0 -17
- data/db/migrate/20180613080638_rename_missing_features_to_components.rb +0 -15
- data/lib/decidim/abilities.rb +0 -7
- data/lib/decidim/abilities/participatory_process_role_ability.rb +0 -60
- data/lib/decidim/page_finder.rb +0 -49
data/lib/decidim/resourceable.rb
CHANGED
@@ -48,8 +48,7 @@ module Decidim
|
|
48
48
|
|
49
49
|
scope = manifest.resource_scope(component)
|
50
50
|
scope = scope.where("#{self.class.table_name}.id != ?", id) if manifest.model_class == self.class
|
51
|
-
|
52
|
-
scope
|
51
|
+
scope.includes(:component).where.not(decidim_components: { published_at: nil })
|
53
52
|
end
|
54
53
|
|
55
54
|
# Links the given resources to this model, replaces any previous links with the same name.
|
@@ -81,6 +80,8 @@ module Decidim
|
|
81
80
|
end
|
82
81
|
end
|
83
82
|
end
|
83
|
+
|
84
|
+
delegate :resource_manifest, to: :class
|
84
85
|
end
|
85
86
|
|
86
87
|
class_methods do
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
# A class with the responsibility to mapp fields between a Searchable and a SearchableResource.
|
5
|
+
class SearchResourceFieldsMapper
|
6
|
+
#
|
7
|
+
# Declared fields may be of types:
|
8
|
+
# - Hash for deep associations.
|
9
|
+
# - Array each element should be a text field symbol, all values will be concatenated.
|
10
|
+
# - Symbol when mapping is direct.
|
11
|
+
#
|
12
|
+
# @param declared_fields: A Hash with the mappings between a SearchableResource attributes and
|
13
|
+
# any given model. Mapped fields are:
|
14
|
+
# - scope_id: The field where the scope is setted in the model, if any.
|
15
|
+
# - participatory_space: The field where the ParticipatorySpace is setted in the model.
|
16
|
+
# - datetime: The field that describes where in time the model is placed.
|
17
|
+
# - A, B, C, D: Weighted text fields.
|
18
|
+
#
|
19
|
+
# Example value for declared_fields param:
|
20
|
+
# {scope_id: :decidim_scope_id,
|
21
|
+
# participatory_space: { component: :participatory_space },
|
22
|
+
# A: :title,
|
23
|
+
# D: [:description, :address],
|
24
|
+
# datetime: :start_time}
|
25
|
+
#
|
26
|
+
def initialize(declared_fields)
|
27
|
+
@declared_fields = declared_fields.with_indifferent_access
|
28
|
+
end
|
29
|
+
|
30
|
+
def mapped(resource)
|
31
|
+
fields = map_common_fields(resource)
|
32
|
+
fields[:i18n] = map_i18n_fields(resource)
|
33
|
+
fields
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def map_common_fields(resource)
|
39
|
+
participatory_space = read_field(resource, @declared_fields, :participatory_space)
|
40
|
+
@organization = participatory_space.organization
|
41
|
+
{
|
42
|
+
decidim_scope_id: read_field(resource, @declared_fields, :scope_id),
|
43
|
+
decidim_participatory_space_id: participatory_space.id,
|
44
|
+
decidim_participatory_space_type: participatory_space.class.name,
|
45
|
+
decidim_organization_id: @organization.id,
|
46
|
+
datetime: read_field(resource, @declared_fields, :datetime)
|
47
|
+
}
|
48
|
+
end
|
49
|
+
|
50
|
+
def read_field(resource, fields, field_name)
|
51
|
+
if fields[field_name].is_a?(Hash)
|
52
|
+
fields = fields[field_name]
|
53
|
+
parent_field_name = fields.keys.first
|
54
|
+
intermediate_model = resource.send(parent_field_name.to_sym)
|
55
|
+
read_field(intermediate_model, fields, parent_field_name)
|
56
|
+
else
|
57
|
+
value_field = fields[field_name]
|
58
|
+
return unless value_field
|
59
|
+
|
60
|
+
if value_field.is_a?(Array)
|
61
|
+
value_field.collect do |vfield_name|
|
62
|
+
raise ArgumentError, "nested fields not supported for translations" if vfield_name.is_a?(Hash)
|
63
|
+
resource.send(vfield_name.to_sym)
|
64
|
+
end
|
65
|
+
else
|
66
|
+
value_field = value_field.to_sym
|
67
|
+
resource.send(value_field) unless value_field.nil? || !resource.respond_to?(value_field)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def map_i18n_fields(resource)
|
73
|
+
i18n = {}
|
74
|
+
@organization.available_locales.each do |locale|
|
75
|
+
content_a = read_i18n_field(resource, locale, :A)
|
76
|
+
content_b = read_i18n_field(resource, locale, :B)
|
77
|
+
content_c = read_i18n_field(resource, locale, :C)
|
78
|
+
content_d = read_i18n_field(resource, locale, :D)
|
79
|
+
i18n[locale] = { A: content_a, B: content_b, C: content_c, D: content_d }
|
80
|
+
end
|
81
|
+
i18n
|
82
|
+
end
|
83
|
+
|
84
|
+
def read_i18n_field(resource, locale, field_name)
|
85
|
+
content = read_field(resource, @declared_fields, field_name)
|
86
|
+
return if content.nil?
|
87
|
+
content = Array.wrap(content).collect do |item|
|
88
|
+
item.is_a?(Hash) ? item[locale] : item
|
89
|
+
end
|
90
|
+
content.respond_to?(:join) ? content.join(" ") : content
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "active_support/concern"
|
4
|
+
require "decidim/search_resource_fields_mapper"
|
5
|
+
|
6
|
+
module Decidim
|
7
|
+
# A concern with the features needed when you want a model to be searchable.
|
8
|
+
module Searchable
|
9
|
+
extend ActiveSupport::Concern
|
10
|
+
|
11
|
+
@searchable_resources = {}
|
12
|
+
|
13
|
+
# Public: a Hash of searchable resources where keys are class names, and values
|
14
|
+
# are the class instance for the resources.
|
15
|
+
def self.searchable_resources
|
16
|
+
@searchable_resources
|
17
|
+
end
|
18
|
+
|
19
|
+
included do
|
20
|
+
has_many :searchable_resources, class_name: "Decidim::SearchableResource", inverse_of: :resource, foreign_key: :resource_id, dependent: :destroy
|
21
|
+
after_create :add_to_index_as_search_resource
|
22
|
+
after_update :update_index_for_search_resource
|
23
|
+
|
24
|
+
# Public: after_create callback to index the model as a SearchableResource.
|
25
|
+
#
|
26
|
+
def add_to_index_as_search_resource
|
27
|
+
fields = self.class.search_resource_fields_mapper.mapped(self)
|
28
|
+
fields[:i18n].keys.each do |locale|
|
29
|
+
Decidim::SearchableResource.create(contents_to_searchable_resource_attributes(fields, locale))
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# Public: after_update callback to update index information of the model.
|
34
|
+
#
|
35
|
+
def update_index_for_search_resource
|
36
|
+
fields = self.class.search_resource_fields_mapper.mapped(self)
|
37
|
+
searchable_resources.each do |sr|
|
38
|
+
sr.update(contents_to_searchable_resource_attributes(fields, sr.locale))
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def contents_to_searchable_resource_attributes(fields, locale)
|
45
|
+
contents = fields[:i18n][locale]
|
46
|
+
content_a = I18n.transliterate(contents[:A] || "")
|
47
|
+
content_b = I18n.transliterate(contents[:B] || "")
|
48
|
+
content_c = I18n.transliterate(contents[:C] || "")
|
49
|
+
content_d = I18n.transliterate(contents[:D] || "")
|
50
|
+
{
|
51
|
+
content_a: content_a, content_b: content_b, content_c: content_c, content_d: content_d,
|
52
|
+
locale: locale,
|
53
|
+
datetime: fields[:datetime],
|
54
|
+
decidim_scope_id: fields[:decidim_scope_id],
|
55
|
+
decidim_participatory_space_id: fields[:decidim_participatory_space_id],
|
56
|
+
decidim_participatory_space_type: fields[:decidim_participatory_space_type],
|
57
|
+
decidim_organization_id: fields[:decidim_organization_id],
|
58
|
+
resource: self
|
59
|
+
}
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
class_methods do
|
64
|
+
def search_resource_fields_mapper
|
65
|
+
raise "`searchable_fields` should be declared when including Searchable" unless defined?(@search_resource_indexable_fields)
|
66
|
+
@search_resource_indexable_fields
|
67
|
+
end
|
68
|
+
|
69
|
+
# Declares the searchable fields for this instance.
|
70
|
+
# Must be a Hash that follow the following format:
|
71
|
+
# {
|
72
|
+
# scope_id: { scope: :id },
|
73
|
+
# participatory_space: { feature: :participatory_space },
|
74
|
+
# A: :title,
|
75
|
+
# B: :sub_title,
|
76
|
+
# C: :somehow_relevant_field,
|
77
|
+
# D: [:description, :address]
|
78
|
+
# }
|
79
|
+
def searchable_fields(declared_fields)
|
80
|
+
@search_resource_indexable_fields = SearchResourceFieldsMapper.new(declared_fields)
|
81
|
+
Decidim::Searchable.searchable_resources[name] = self unless Decidim::Searchable.searchable_resources.has_key?(name)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -55,10 +55,10 @@ module Decidim
|
|
55
55
|
manifest.attributes.each do |name, attribute|
|
56
56
|
if attribute.translated?
|
57
57
|
translatable_attribute name, attribute.type_class, default: attribute.default_value
|
58
|
-
validates name, translatable_presence: true
|
58
|
+
validates name, translatable_presence: true if attribute.required
|
59
59
|
else
|
60
60
|
attribute name, attribute.type_class, default: attribute.default_value
|
61
|
-
validates name, presence: true
|
61
|
+
validates name, presence: true if attribute.required
|
62
62
|
end
|
63
63
|
end
|
64
64
|
end
|
@@ -85,6 +85,7 @@ module Decidim
|
|
85
85
|
attribute :default
|
86
86
|
attribute :translated, Boolean, default: false
|
87
87
|
attribute :editor, Boolean, default: false
|
88
|
+
attribute :required, Boolean, default: true
|
88
89
|
|
89
90
|
validates :type, inclusion: { in: TYPES.keys }
|
90
91
|
|
data/lib/decidim/traceable.rb
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
require "active_support/concern"
|
4
4
|
|
5
|
+
require_dependency "paper_trail/frameworks/active_record"
|
6
|
+
|
5
7
|
module Decidim
|
6
8
|
# A concern that adds traceabilty capability to the given model. Including this
|
7
9
|
# allows you the keep track of changes in the model attributes and changes authorship.
|
data/lib/decidim/view_model.rb
CHANGED
@@ -5,5 +5,14 @@ module Decidim
|
|
5
5
|
include ActionView::Helpers::TranslationHelper
|
6
6
|
include ::Cell::Translation
|
7
7
|
include Decidim::ResourceHelper
|
8
|
+
include Decidim::ScopesHelper
|
9
|
+
include ActionController::Helpers
|
10
|
+
include Decidim::ActionAuthorization
|
11
|
+
include Decidim::ActionAuthorizationHelper
|
12
|
+
include Decidim::ReplaceButtonsHelper
|
13
|
+
|
14
|
+
def current_user
|
15
|
+
context[:current_user]
|
16
|
+
end
|
8
17
|
end
|
9
18
|
end
|
@@ -2,5 +2,83 @@
|
|
2
2
|
|
3
3
|
namespace :decidim do
|
4
4
|
desc "Install migrations from Decidim to the app."
|
5
|
-
task upgrade: ["railties:install:migrations"]
|
5
|
+
task upgrade: [:choose_target_plugins, :"railties:install:migrations"]
|
6
|
+
|
7
|
+
desc "Setup environment so that only decidim migrations are installed."
|
8
|
+
task :choose_target_plugins do
|
9
|
+
ENV["FROM"] = %w(
|
10
|
+
decidim
|
11
|
+
decidim_accountability
|
12
|
+
decidim_admin
|
13
|
+
decidim_assemblies
|
14
|
+
decidim_blogs
|
15
|
+
decidim_budgets
|
16
|
+
decidim_comments
|
17
|
+
decidim_consultations
|
18
|
+
decidim_debates
|
19
|
+
decidim_initiatives
|
20
|
+
decidim_meetings
|
21
|
+
decidim_pages
|
22
|
+
decidim_participatory_processes
|
23
|
+
decidim_proposals
|
24
|
+
decidim_sortitions
|
25
|
+
decidim_surveys
|
26
|
+
decidim_system
|
27
|
+
decidim_verifications
|
28
|
+
).join(",")
|
29
|
+
end
|
30
|
+
|
31
|
+
# RightToBeForgotten ------
|
32
|
+
#
|
33
|
+
# Load a single CSV file with user_ids list, and deletes all
|
34
|
+
# User records that exists and are not deleted in DB
|
35
|
+
#
|
36
|
+
# cmd: $ RAILS_ENV=<environment> bundle exec rails decidim:right_to_be_forgotten [FILE_PATH=<relative path to CSV file>]
|
37
|
+
#
|
38
|
+
# CSV file must be located within project root path
|
39
|
+
#
|
40
|
+
desc "Deletes User records by ID using a CSV file"
|
41
|
+
task right_to_be_forgotten: :environment do
|
42
|
+
log = ActiveSupport::Logger.new(Rails.root.join("log", "right_to_be_forgotten.log"))
|
43
|
+
begin
|
44
|
+
path = ENV["FILE_PATH"].presence || "tmp/forgotten_users.csv" # Good file
|
45
|
+
file_path = Rails.root.join(path)
|
46
|
+
csv_data = CSV.read(file_path, headers: false)
|
47
|
+
users_count = csv_data.size
|
48
|
+
puts "RightToBeForgotten: ------------------- #{Time.current}"
|
49
|
+
log.info "RightToBeForgotten: ------------------- #{Time.current}"
|
50
|
+
csv_data.each.with_index(1) do |row, index|
|
51
|
+
# Each row, first element must be ID, others are useless
|
52
|
+
user_id = row.first.presence || ""
|
53
|
+
next unless user_id =~ /^\d+$/ # ID must be numeric only
|
54
|
+
|
55
|
+
if (user = Decidim::User.find_by(id: user_id))
|
56
|
+
if user.deleted?
|
57
|
+
puts " #{index}/#{users_count} - [#{user_id}] User already deleted"
|
58
|
+
log.info " #{index}/#{users_count} - [#{user_id}] User already deleted"
|
59
|
+
else
|
60
|
+
puts " #{index}/#{users_count} !! [#{user_id}] DELETING USER"
|
61
|
+
log.info " #{index}/#{users_count} !! [#{user_id}] DELETING USER"
|
62
|
+
Decidim::DestroyAccount.call(user, Decidim::DeleteAccountForm.from_params({})) # Delete user!
|
63
|
+
end
|
64
|
+
else
|
65
|
+
puts " #{index}/#{users_count} - [#{user_id}] User not found"
|
66
|
+
log.info " #{index}/#{users_count} - [#{user_id}] User not found"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
rescue CSV::MalformedCSVError
|
70
|
+
puts " ERROR: [Malformed CSV] #{path}"
|
71
|
+
log.info " ERROR: [Malformed CSV] #{path}"
|
72
|
+
rescue Errno::ENOENT
|
73
|
+
puts " ERROR: [File not found] #{path}"
|
74
|
+
log.info " ERROR: [File not found] #{path}"
|
75
|
+
rescue StandardError => e
|
76
|
+
puts " ERROR: [Unexpected error] #{e.message}"
|
77
|
+
log.info " ERROR: [Unexpected error] #{e.message}"
|
78
|
+
ensure
|
79
|
+
puts "RightToBeForgotten: Log file created at log/right_to_be_forgotten.log"
|
80
|
+
puts "RightToBeForgotten: --------------- END #{Time.current}"
|
81
|
+
log.info "RightToBeForgotten: --------------- END #{Time.current}"
|
82
|
+
end
|
83
|
+
end
|
6
84
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep Jaume Rey Peroy
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-06-
|
13
|
+
date: 2018-06-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: active_link_to
|
@@ -40,20 +40,6 @@ dependencies:
|
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '8.0'
|
43
|
-
- !ruby/object:Gem::Dependency
|
44
|
-
name: cancancan
|
45
|
-
requirement: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '2.0'
|
50
|
-
type: :runtime
|
51
|
-
prerelease: false
|
52
|
-
version_requirements: !ruby/object:Gem::Requirement
|
53
|
-
requirements:
|
54
|
-
- - "~>"
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '2.0'
|
57
43
|
- !ruby/object:Gem::Dependency
|
58
44
|
name: carrierwave
|
59
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,14 +74,14 @@ dependencies:
|
|
88
74
|
requirements:
|
89
75
|
- - "~>"
|
90
76
|
- !ruby/object:Gem::Version
|
91
|
-
version: 0.0.
|
77
|
+
version: 0.0.9
|
92
78
|
type: :runtime
|
93
79
|
prerelease: false
|
94
80
|
version_requirements: !ruby/object:Gem::Requirement
|
95
81
|
requirements:
|
96
82
|
- - "~>"
|
97
83
|
- !ruby/object:Gem::Version
|
98
|
-
version: 0.0.
|
84
|
+
version: 0.0.9
|
99
85
|
- !ruby/object:Gem::Dependency
|
100
86
|
name: date_validator
|
101
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -228,20 +214,6 @@ dependencies:
|
|
228
214
|
- - "~>"
|
229
215
|
- !ruby/object:Gem::Version
|
230
216
|
version: '1.4'
|
231
|
-
- !ruby/object:Gem::Dependency
|
232
|
-
name: high_voltage
|
233
|
-
requirement: !ruby/object:Gem::Requirement
|
234
|
-
requirements:
|
235
|
-
- - "~>"
|
236
|
-
- !ruby/object:Gem::Version
|
237
|
-
version: 3.0.0
|
238
|
-
type: :runtime
|
239
|
-
prerelease: false
|
240
|
-
version_requirements: !ruby/object:Gem::Requirement
|
241
|
-
requirements:
|
242
|
-
- - "~>"
|
243
|
-
- !ruby/object:Gem::Version
|
244
|
-
version: 3.0.0
|
245
217
|
- !ruby/object:Gem::Dependency
|
246
218
|
name: invisible_captcha
|
247
219
|
requirement: !ruby/object:Gem::Requirement
|
@@ -366,14 +338,14 @@ dependencies:
|
|
366
338
|
requirements:
|
367
339
|
- - "~>"
|
368
340
|
- !ruby/object:Gem::Version
|
369
|
-
version: '
|
341
|
+
version: '9.0'
|
370
342
|
type: :runtime
|
371
343
|
prerelease: false
|
372
344
|
version_requirements: !ruby/object:Gem::Requirement
|
373
345
|
requirements:
|
374
346
|
- - "~>"
|
375
347
|
- !ruby/object:Gem::Version
|
376
|
-
version: '
|
348
|
+
version: '9.0'
|
377
349
|
- !ruby/object:Gem::Dependency
|
378
350
|
name: pg
|
379
351
|
requirement: !ruby/object:Gem::Requirement
|
@@ -394,6 +366,26 @@ dependencies:
|
|
394
366
|
- - "<"
|
395
367
|
- !ruby/object:Gem::Version
|
396
368
|
version: '2'
|
369
|
+
- !ruby/object:Gem::Dependency
|
370
|
+
name: pg_search
|
371
|
+
requirement: !ruby/object:Gem::Requirement
|
372
|
+
requirements:
|
373
|
+
- - "~>"
|
374
|
+
- !ruby/object:Gem::Version
|
375
|
+
version: '2.1'
|
376
|
+
- - ">="
|
377
|
+
- !ruby/object:Gem::Version
|
378
|
+
version: 2.1.0
|
379
|
+
type: :runtime
|
380
|
+
prerelease: false
|
381
|
+
version_requirements: !ruby/object:Gem::Requirement
|
382
|
+
requirements:
|
383
|
+
- - "~>"
|
384
|
+
- !ruby/object:Gem::Version
|
385
|
+
version: '2.1'
|
386
|
+
- - ">="
|
387
|
+
- !ruby/object:Gem::Version
|
388
|
+
version: 2.1.0
|
397
389
|
- !ruby/object:Gem::Dependency
|
398
390
|
name: premailer-rails
|
399
391
|
requirement: !ruby/object:Gem::Requirement
|
@@ -409,25 +401,39 @@ dependencies:
|
|
409
401
|
- !ruby/object:Gem::Version
|
410
402
|
version: '1.9'
|
411
403
|
- !ruby/object:Gem::Dependency
|
412
|
-
name:
|
404
|
+
name: rack-attack
|
413
405
|
requirement: !ruby/object:Gem::Requirement
|
414
406
|
requirements:
|
415
407
|
- - "~>"
|
416
408
|
- !ruby/object:Gem::Version
|
417
|
-
version:
|
409
|
+
version: 5.2.0
|
410
|
+
type: :runtime
|
411
|
+
prerelease: false
|
412
|
+
version_requirements: !ruby/object:Gem::Requirement
|
413
|
+
requirements:
|
414
|
+
- - "~>"
|
415
|
+
- !ruby/object:Gem::Version
|
416
|
+
version: 5.2.0
|
417
|
+
- !ruby/object:Gem::Dependency
|
418
|
+
name: rails
|
419
|
+
requirement: !ruby/object:Gem::Requirement
|
420
|
+
requirements:
|
421
|
+
- - ">="
|
422
|
+
- !ruby/object:Gem::Version
|
423
|
+
version: '5.2'
|
418
424
|
- - "<"
|
419
425
|
- !ruby/object:Gem::Version
|
420
|
-
version:
|
426
|
+
version: 6.0.x
|
421
427
|
type: :runtime
|
422
428
|
prerelease: false
|
423
429
|
version_requirements: !ruby/object:Gem::Requirement
|
424
430
|
requirements:
|
425
|
-
- - "
|
431
|
+
- - ">="
|
426
432
|
- !ruby/object:Gem::Version
|
427
|
-
version: '5.
|
433
|
+
version: '5.2'
|
428
434
|
- - "<"
|
429
435
|
- !ruby/object:Gem::Version
|
430
|
-
version:
|
436
|
+
version: 6.0.x
|
431
437
|
- !ruby/object:Gem::Dependency
|
432
438
|
name: rails-i18n
|
433
439
|
requirement: !ruby/object:Gem::Requirement
|
@@ -588,28 +594,28 @@ dependencies:
|
|
588
594
|
requirements:
|
589
595
|
- - '='
|
590
596
|
- !ruby/object:Gem::Version
|
591
|
-
version: 0.
|
597
|
+
version: 0.12.0.pre
|
592
598
|
type: :runtime
|
593
599
|
prerelease: false
|
594
600
|
version_requirements: !ruby/object:Gem::Requirement
|
595
601
|
requirements:
|
596
602
|
- - '='
|
597
603
|
- !ruby/object:Gem::Version
|
598
|
-
version: 0.
|
604
|
+
version: 0.12.0.pre
|
599
605
|
- !ruby/object:Gem::Dependency
|
600
606
|
name: decidim-dev
|
601
607
|
requirement: !ruby/object:Gem::Requirement
|
602
608
|
requirements:
|
603
609
|
- - '='
|
604
610
|
- !ruby/object:Gem::Version
|
605
|
-
version: 0.
|
611
|
+
version: 0.12.0.pre
|
606
612
|
type: :development
|
607
613
|
prerelease: false
|
608
614
|
version_requirements: !ruby/object:Gem::Requirement
|
609
615
|
requirements:
|
610
616
|
- - '='
|
611
617
|
- !ruby/object:Gem::Version
|
612
|
-
version: 0.
|
618
|
+
version: 0.12.0.pre
|
613
619
|
description: Adds core features so other engines can hook into the framework.
|
614
620
|
email:
|
615
621
|
- josepjaume@gmail.com
|
@@ -678,7 +684,6 @@ files:
|
|
678
684
|
- app/assets/stylesheets/decidim/extras/_proposal_form.scss
|
679
685
|
- app/assets/stylesheets/decidim/extras/_quill.scss
|
680
686
|
- app/assets/stylesheets/decidim/extras/_reference.scss
|
681
|
-
- app/assets/stylesheets/decidim/extras/_register_form.scss
|
682
687
|
- app/assets/stylesheets/decidim/extras/_results-per-page.scss
|
683
688
|
- app/assets/stylesheets/decidim/extras/_social_icons_mini.scss
|
684
689
|
- app/assets/stylesheets/decidim/extras/_status-labels.scss
|
@@ -704,10 +709,12 @@ files:
|
|
704
709
|
- app/assets/stylesheets/decidim/modules/_extra.scss
|
705
710
|
- app/assets/stylesheets/decidim/modules/_filter-tags.scss
|
706
711
|
- app/assets/stylesheets/decidim/modules/_filters.scss
|
712
|
+
- app/assets/stylesheets/decidim/modules/_fingerprint.scss
|
707
713
|
- app/assets/stylesheets/decidim/modules/_flag.scss
|
708
714
|
- app/assets/stylesheets/decidim/modules/_footer.scss
|
709
715
|
- app/assets/stylesheets/decidim/modules/_forms.scss
|
710
716
|
- app/assets/stylesheets/decidim/modules/_help.scss
|
717
|
+
- app/assets/stylesheets/decidim/modules/_horizontal-tabs.scss
|
711
718
|
- app/assets/stylesheets/decidim/modules/_icons.scss
|
712
719
|
- app/assets/stylesheets/decidim/modules/_inline-filters.scss
|
713
720
|
- app/assets/stylesheets/decidim/modules/_input-mentions.scss
|
@@ -738,6 +745,7 @@ files:
|
|
738
745
|
- app/assets/stylesheets/decidim/modules/_tags.scss
|
739
746
|
- app/assets/stylesheets/decidim/modules/_timeline.scss
|
740
747
|
- app/assets/stylesheets/decidim/modules/_title-action.scss
|
748
|
+
- app/assets/stylesheets/decidim/modules/_toggle.scss
|
741
749
|
- app/assets/stylesheets/decidim/modules/_typography.scss
|
742
750
|
- app/assets/stylesheets/decidim/modules/_user-form.scss
|
743
751
|
- app/assets/stylesheets/decidim/modules/_video.scss
|
@@ -748,13 +756,56 @@ files:
|
|
748
756
|
- app/assets/stylesheets/decidim/utils/_mixins.scss
|
749
757
|
- app/assets/stylesheets/decidim/utils/_settings.scss
|
750
758
|
- app/assets/stylesheets/decidim/utils/_toggle-expand.scss
|
751
|
-
- app/cells/decidim/
|
752
|
-
- app/cells/decidim/
|
759
|
+
- app/cells/decidim/announcement/show.erb
|
760
|
+
- app/cells/decidim/announcement_cell.rb
|
761
|
+
- app/cells/decidim/author/comments.erb
|
762
|
+
- app/cells/decidim/author/contact.erb
|
763
|
+
- app/cells/decidim/author/date.erb
|
764
|
+
- app/cells/decidim/author/flag.erb
|
765
|
+
- app/cells/decidim/author/profile.erb
|
766
|
+
- app/cells/decidim/author/profile_inline.erb
|
767
|
+
- app/cells/decidim/author/show.erb
|
768
|
+
- app/cells/decidim/author/withdraw.erb
|
769
|
+
- app/cells/decidim/author_cell.rb
|
753
770
|
- app/cells/decidim/card/show.erb
|
754
771
|
- app/cells/decidim/card_cell.rb
|
755
|
-
- app/cells/decidim/
|
756
|
-
- app/cells/decidim/
|
757
|
-
- app/cells/decidim/
|
772
|
+
- app/cells/decidim/card_m/author.erb
|
773
|
+
- app/cells/decidim/card_m/badge.erb
|
774
|
+
- app/cells/decidim/card_m/comments_counter.erb
|
775
|
+
- app/cells/decidim/card_m/data.erb
|
776
|
+
- app/cells/decidim/card_m/footer.erb
|
777
|
+
- app/cells/decidim/card_m/header.erb
|
778
|
+
- app/cells/decidim/card_m/image.erb
|
779
|
+
- app/cells/decidim/card_m/label.erb
|
780
|
+
- app/cells/decidim/card_m/show.erb
|
781
|
+
- app/cells/decidim/card_m/status.erb
|
782
|
+
- app/cells/decidim/card_m/tags.erb
|
783
|
+
- app/cells/decidim/card_m_cell.rb
|
784
|
+
- app/cells/decidim/collapsible_list/show.erb
|
785
|
+
- app/cells/decidim/collapsible_list_cell.rb
|
786
|
+
- app/cells/decidim/fingerprint/show.erb
|
787
|
+
- app/cells/decidim/fingerprint_cell.rb
|
788
|
+
- app/cells/decidim/follow_button/show.erb
|
789
|
+
- app/cells/decidim/follow_button_cell.rb
|
790
|
+
- app/cells/decidim/followers/show.erb
|
791
|
+
- app/cells/decidim/followers_cell.rb
|
792
|
+
- app/cells/decidim/following/show.erb
|
793
|
+
- app/cells/decidim/following_cell.rb
|
794
|
+
- app/cells/decidim/notifications/show.erb
|
795
|
+
- app/cells/decidim/notifications_cell.rb
|
796
|
+
- app/cells/decidim/progress_bar/show.erb
|
797
|
+
- app/cells/decidim/progress_bar_cell.rb
|
798
|
+
- app/cells/decidim/tags/category.erb
|
799
|
+
- app/cells/decidim/tags/scope.erb
|
800
|
+
- app/cells/decidim/tags/show.erb
|
801
|
+
- app/cells/decidim/tags_cell.rb
|
802
|
+
- app/cells/decidim/tos_page/announcement.erb
|
803
|
+
- app/cells/decidim/tos_page/refuse_btn_modal.erb
|
804
|
+
- app/cells/decidim/tos_page/sticky_form.erb
|
805
|
+
- app/cells/decidim/tos_page_cell.rb
|
806
|
+
- app/cells/decidim/user_profile/footer.erb
|
807
|
+
- app/cells/decidim/user_profile/header.erb
|
808
|
+
- app/cells/decidim/user_profile_cell.rb
|
758
809
|
- app/commands/decidim/create_follow.rb
|
759
810
|
- app/commands/decidim/create_omniauth_registration.rb
|
760
811
|
- app/commands/decidim/create_registration.rb
|
@@ -765,6 +816,7 @@ files:
|
|
765
816
|
- app/commands/decidim/invite_user_again.rb
|
766
817
|
- app/commands/decidim/messaging/reply_to_conversation.rb
|
767
818
|
- app/commands/decidim/messaging/start_conversation.rb
|
819
|
+
- app/commands/decidim/search.rb
|
768
820
|
- app/commands/decidim/unsubscribe_settings.rb
|
769
821
|
- app/commands/decidim/update_account.rb
|
770
822
|
- app/commands/decidim/update_notifications_settings.rb
|
@@ -773,10 +825,12 @@ files:
|
|
773
825
|
- app/controllers/concerns/decidim/devise_controllers.rb
|
774
826
|
- app/controllers/concerns/decidim/filter_resource.rb
|
775
827
|
- app/controllers/concerns/decidim/form_factory.rb
|
828
|
+
- app/controllers/concerns/decidim/http_caching_disabler.rb
|
776
829
|
- app/controllers/concerns/decidim/impersonate_users.rb
|
777
830
|
- app/controllers/concerns/decidim/locale_switcher.rb
|
778
|
-
- app/controllers/concerns/decidim/needs_authorization.rb
|
779
831
|
- app/controllers/concerns/decidim/needs_organization.rb
|
832
|
+
- app/controllers/concerns/decidim/needs_permission.rb
|
833
|
+
- app/controllers/concerns/decidim/needs_tos_accepted.rb
|
780
834
|
- app/controllers/concerns/decidim/paginable.rb
|
781
835
|
- app/controllers/concerns/decidim/participatory_space_context.rb
|
782
836
|
- app/controllers/concerns/decidim/payload_info.rb
|
@@ -808,7 +862,9 @@ files:
|
|
808
862
|
- app/controllers/decidim/profiles_controller.rb
|
809
863
|
- app/controllers/decidim/reports_controller.rb
|
810
864
|
- app/controllers/decidim/scopes_controller.rb
|
865
|
+
- app/controllers/decidim/searches_controller.rb
|
811
866
|
- app/controllers/decidim/static_map_controller.rb
|
867
|
+
- app/controllers/decidim/tos_controller.rb
|
812
868
|
- app/controllers/decidim/widgets_controller.rb
|
813
869
|
- app/events/decidim/profile_updated_event.rb
|
814
870
|
- app/forms/decidim/account_form.rb
|
@@ -830,6 +886,7 @@ files:
|
|
830
886
|
- app/helpers/decidim/attachments_helper.rb
|
831
887
|
- app/helpers/decidim/authorization_form_helper.rb
|
832
888
|
- app/helpers/decidim/card_helper.rb
|
889
|
+
- app/helpers/decidim/cells_paginate_helper.rb
|
833
890
|
- app/helpers/decidim/component_path_helper.rb
|
834
891
|
- app/helpers/decidim/cookies_helper.rb
|
835
892
|
- app/helpers/decidim/cta_button_helper.rb
|
@@ -854,6 +911,8 @@ files:
|
|
854
911
|
- app/helpers/decidim/resource_reference_helper.rb
|
855
912
|
- app/helpers/decidim/sanitize_helper.rb
|
856
913
|
- app/helpers/decidim/scopes_helper.rb
|
914
|
+
- app/helpers/decidim/searches_helper.rb
|
915
|
+
- app/helpers/decidim/tooltip_helper.rb
|
857
916
|
- app/helpers/decidim/traceability_helper.rb
|
858
917
|
- app/helpers/decidim/translations_helper.rb
|
859
918
|
- app/helpers/decidim/user_profile_helper.rb
|
@@ -873,13 +932,6 @@ files:
|
|
873
932
|
- app/mailers/decidim/notification_mailer.rb
|
874
933
|
- app/mailers/decidim/reported_mailer.rb
|
875
934
|
- app/middleware/decidim/current_organization.rb
|
876
|
-
- app/models/decidim/abilities/admin_ability.rb
|
877
|
-
- app/models/decidim/abilities/base_ability.rb
|
878
|
-
- app/models/decidim/abilities/everyone_ability.rb
|
879
|
-
- app/models/decidim/abilities/participatory_process_admin_ability.rb
|
880
|
-
- app/models/decidim/abilities/participatory_process_collaborator_ability.rb
|
881
|
-
- app/models/decidim/abilities/participatory_process_moderator_ability.rb
|
882
|
-
- app/models/decidim/abilities/user_manager_ability.rb
|
883
935
|
- app/models/decidim/action_log.rb
|
884
936
|
- app/models/decidim/application_record.rb
|
885
937
|
- app/models/decidim/area.rb
|
@@ -905,14 +957,19 @@ files:
|
|
905
957
|
- app/models/decidim/participatory_process_user_role.rb
|
906
958
|
- app/models/decidim/participatory_space_link.rb
|
907
959
|
- app/models/decidim/participatory_space_private_user.rb
|
960
|
+
- app/models/decidim/permission_action.rb
|
908
961
|
- app/models/decidim/report.rb
|
909
962
|
- app/models/decidim/resource_link.rb
|
910
963
|
- app/models/decidim/scope.rb
|
911
964
|
- app/models/decidim/scope_type.rb
|
965
|
+
- app/models/decidim/searchable_resource.rb
|
912
966
|
- app/models/decidim/static_page.rb
|
913
967
|
- app/models/decidim/user.rb
|
914
968
|
- app/models/decidim/user_group.rb
|
915
969
|
- app/models/decidim/user_group_membership.rb
|
970
|
+
- app/permissions/decidim/default_permissions.rb
|
971
|
+
- app/permissions/decidim/permissions.rb
|
972
|
+
- app/permissions/decidim/user_manager_permissions.rb
|
916
973
|
- app/presenters/decidim/admin_log/area_presenter.rb
|
917
974
|
- app/presenters/decidim/admin_log/component_presenter.rb
|
918
975
|
- app/presenters/decidim/admin_log/moderation_presenter.rb
|
@@ -1014,6 +1071,7 @@ files:
|
|
1014
1071
|
- app/views/decidim/devise/registrations/new.html.erb
|
1015
1072
|
- app/views/decidim/devise/sessions/new.html.erb
|
1016
1073
|
- app/views/decidim/devise/shared/_links.html.erb
|
1074
|
+
- app/views/decidim/devise/shared/_newsletter_modal.html.erb
|
1017
1075
|
- app/views/decidim/devise/shared/_omniauth_buttons.html.erb
|
1018
1076
|
- app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb
|
1019
1077
|
- app/views/decidim/doorkeeper/authorizations/new.html.erb
|
@@ -1036,20 +1094,37 @@ files:
|
|
1036
1094
|
- app/views/decidim/newsletters/show.html.erb
|
1037
1095
|
- app/views/decidim/newsletters/unsubscribe.html.erb
|
1038
1096
|
- app/views/decidim/notification_mailer/event_received.html.erb
|
1039
|
-
- app/views/decidim/notifications/_notification.html.erb
|
1040
|
-
- app/views/decidim/notifications/index.html.erb
|
1041
1097
|
- app/views/decidim/notifications_settings/show.html.erb
|
1042
1098
|
- app/views/decidim/own_user_groups/index.html.erb
|
1099
|
+
- app/views/decidim/pages/decidim_page.html.erb
|
1100
|
+
- app/views/decidim/pages/home.html.erb
|
1101
|
+
- app/views/decidim/pages/home/_extended.html.erb
|
1102
|
+
- app/views/decidim/pages/home/_footer_sub_hero.html.erb
|
1103
|
+
- app/views/decidim/pages/home/_hero.html.erb
|
1104
|
+
- app/views/decidim/pages/home/_highlighted_content_banner.html.erb
|
1105
|
+
- app/views/decidim/pages/home/_highlighted_processes.html.erb
|
1106
|
+
- app/views/decidim/pages/home/_statistics.html.erb
|
1107
|
+
- app/views/decidim/pages/home/_sub_hero.html.erb
|
1043
1108
|
- app/views/decidim/pages/index.html.erb
|
1109
|
+
- app/views/decidim/profiles/_followers.html.erb
|
1110
|
+
- app/views/decidim/profiles/_following.html.erb
|
1111
|
+
- app/views/decidim/profiles/_notifications.html.erb
|
1112
|
+
- app/views/decidim/profiles/_user.html.erb
|
1113
|
+
- app/views/decidim/profiles/_user_follow.erb
|
1044
1114
|
- app/views/decidim/profiles/show.html.erb
|
1045
1115
|
- app/views/decidim/reported_mailer/hide.html.erb
|
1046
1116
|
- app/views/decidim/reported_mailer/report.html.erb
|
1047
1117
|
- app/views/decidim/scopes/_scopes_picker_input.html.erb
|
1048
1118
|
- app/views/decidim/scopes/picker.html.erb
|
1119
|
+
- app/views/decidim/searches/_count.html.erb
|
1120
|
+
- app/views/decidim/searches/_filters.html.erb
|
1121
|
+
- app/views/decidim/searches/_filters_small_view.html.erb
|
1122
|
+
- app/views/decidim/searches/_results.html.erb
|
1123
|
+
- app/views/decidim/searches/index.html.erb
|
1124
|
+
- app/views/decidim/searches/index.js.erb
|
1049
1125
|
- app/views/decidim/shared/_action_authorization_modal.html.erb
|
1050
1126
|
- app/views/decidim/shared/_address_details.html.erb
|
1051
1127
|
- app/views/decidim/shared/_announcement.html.erb
|
1052
|
-
- app/views/decidim/shared/_author.html.erb
|
1053
1128
|
- app/views/decidim/shared/_author_reference.html.erb
|
1054
1129
|
- app/views/decidim/shared/_comments.html.erb
|
1055
1130
|
- app/views/decidim/shared/_component_announcement.html.erb
|
@@ -1097,25 +1172,18 @@ files:
|
|
1097
1172
|
- app/views/layouts/decidim/_mailer_logo.html.erb
|
1098
1173
|
- app/views/layouts/decidim/_omnipresent_banner.html.erb
|
1099
1174
|
- app/views/layouts/decidim/_social_media_links.html.erb
|
1175
|
+
- app/views/layouts/decidim/_topbar_search.html.erb
|
1100
1176
|
- app/views/layouts/decidim/_user_menu.html.erb
|
1101
1177
|
- app/views/layouts/decidim/_wrapper.html.erb
|
1102
1178
|
- app/views/layouts/decidim/application.html.erb
|
1103
1179
|
- app/views/layouts/decidim/mailer.html.erb
|
1104
1180
|
- app/views/layouts/decidim/user_profile.html.erb
|
1105
1181
|
- app/views/layouts/decidim/widget.html.erb
|
1106
|
-
- app/views/pages/decidim_page.html.erb
|
1107
|
-
- app/views/pages/home.html.erb
|
1108
|
-
- app/views/pages/home/_extended.html.erb
|
1109
|
-
- app/views/pages/home/_footer_sub_hero.html.erb
|
1110
|
-
- app/views/pages/home/_hero.html.erb
|
1111
|
-
- app/views/pages/home/_highlighted_content_banner.html.erb
|
1112
|
-
- app/views/pages/home/_highlighted_processes.html.erb
|
1113
|
-
- app/views/pages/home/_statistics.html.erb
|
1114
|
-
- app/views/pages/home/_sub_hero.html.erb
|
1115
1182
|
- config/initializers/devise.rb
|
1116
1183
|
- config/initializers/foundation_rails_helper.rb
|
1117
1184
|
- config/initializers/invisible_captcha.rb
|
1118
1185
|
- config/initializers/mail_previews.rb
|
1186
|
+
- config/initializers/rack_attack.rb
|
1119
1187
|
- config/locales/ca.yml
|
1120
1188
|
- config/locales/en.yml
|
1121
1189
|
- config/locales/es.yml
|
@@ -1218,6 +1286,7 @@ files:
|
|
1218
1286
|
- db/migrate/20180130093153_add_action_log.rb
|
1219
1287
|
- db/migrate/20180206143340_fix_reference_for_all_resources.rb
|
1220
1288
|
- db/migrate/20180206183235_create_participatory_space_private_users.rb
|
1289
|
+
- db/migrate/20180209122819_create_decidim_searchable_resource.rb
|
1221
1290
|
- db/migrate/20180215104821_create_decidim_area_types.rb
|
1222
1291
|
- db/migrate/20180215104945_create_decidim_areas.rb
|
1223
1292
|
- db/migrate/20180221101934_fix_nickname_index.rb
|
@@ -1227,11 +1296,10 @@ files:
|
|
1227
1296
|
- db/migrate/20180308113207_doorkeeper_models.rb
|
1228
1297
|
- db/migrate/20180314085339_rename_maximum_votes_per_proposal_to_threshold_per_proposal.rb
|
1229
1298
|
- db/migrate/20180323102631_change_event_name_and_class_to_rename_to_publish_proposal_event.rb
|
1230
|
-
- db/migrate/
|
1299
|
+
- db/migrate/20180508111640_add_tos_version_to_organization.rb
|
1300
|
+
- db/migrate/20180508111710_add_accepted_tos_version_field_to_users.rb
|
1231
1301
|
- db/seeds.rb
|
1232
1302
|
- db/seeds/homepage_image.jpg
|
1233
|
-
- lib/decidim/abilities.rb
|
1234
|
-
- lib/decidim/abilities/participatory_process_role_ability.rb
|
1235
1303
|
- lib/decidim/api/attachable_interface.rb
|
1236
1304
|
- lib/decidim/api/author_interface.rb
|
1237
1305
|
- lib/decidim/api/authorable_interface.rb
|
@@ -1268,6 +1336,7 @@ files:
|
|
1268
1336
|
- lib/decidim/core/test/shared_examples/comments_examples.rb
|
1269
1337
|
- lib/decidim/core/test/shared_examples/component_type.rb
|
1270
1338
|
- lib/decidim/core/test/shared_examples/errors.rb
|
1339
|
+
- lib/decidim/core/test/shared_examples/fingerprint_examples.rb
|
1271
1340
|
- lib/decidim/core/test/shared_examples/follows_examples.rb
|
1272
1341
|
- lib/decidim/core/test/shared_examples/has_attachment_collections.rb
|
1273
1342
|
- lib/decidim/core/test/shared_examples/has_attachments.rb
|
@@ -1283,6 +1352,7 @@ files:
|
|
1283
1352
|
- lib/decidim/core/test/shared_examples/reports_examples.rb
|
1284
1353
|
- lib/decidim/core/test/shared_examples/scopable_interface_examples.rb
|
1285
1354
|
- lib/decidim/core/test/shared_examples/scope_helper_examples.rb
|
1355
|
+
- lib/decidim/core/test/shared_examples/searchable_results_examples.rb
|
1286
1356
|
- lib/decidim/core/test/shared_examples/simple_event.rb
|
1287
1357
|
- lib/decidim/core/test/shared_examples/user_localised_email_examples.rb
|
1288
1358
|
- lib/decidim/core/version.rb
|
@@ -1303,6 +1373,8 @@ files:
|
|
1303
1373
|
- lib/decidim/faker/localized.rb
|
1304
1374
|
- lib/decidim/file_zipper.rb
|
1305
1375
|
- lib/decidim/filter_form_builder.rb
|
1376
|
+
- lib/decidim/fingerprint_calculator.rb
|
1377
|
+
- lib/decidim/fingerprintable.rb
|
1306
1378
|
- lib/decidim/followable.rb
|
1307
1379
|
- lib/decidim/form_builder.rb
|
1308
1380
|
- lib/decidim/friendly_dates.rb
|
@@ -1321,7 +1393,6 @@ files:
|
|
1321
1393
|
- lib/decidim/messaging.rb
|
1322
1394
|
- lib/decidim/newsletter_encryptor.rb
|
1323
1395
|
- lib/decidim/nicknamizable.rb
|
1324
|
-
- lib/decidim/page_finder.rb
|
1325
1396
|
- lib/decidim/participable.rb
|
1326
1397
|
- lib/decidim/participatory_space_context_manifest.rb
|
1327
1398
|
- lib/decidim/participatory_space_manifest.rb
|
@@ -1334,6 +1405,8 @@ files:
|
|
1334
1405
|
- lib/decidim/resourceable.rb
|
1335
1406
|
- lib/decidim/scopable.rb
|
1336
1407
|
- lib/decidim/scopable_component.rb
|
1408
|
+
- lib/decidim/search_resource_fields_mapper.rb
|
1409
|
+
- lib/decidim/searchable.rb
|
1337
1410
|
- lib/decidim/settings_manifest.rb
|
1338
1411
|
- lib/decidim/stats_registry.rb
|
1339
1412
|
- lib/decidim/traceable.rb
|
@@ -1392,9 +1465,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1392
1465
|
version: '0'
|
1393
1466
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1394
1467
|
requirements:
|
1395
|
-
- - "
|
1468
|
+
- - ">"
|
1396
1469
|
- !ruby/object:Gem::Version
|
1397
|
-
version:
|
1470
|
+
version: 1.3.1
|
1398
1471
|
requirements: []
|
1399
1472
|
rubyforge_project:
|
1400
1473
|
rubygems_version: 2.7.6
|