decidim-core 0.8.4 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +1 -1
- data/app/assets/images/decidim/decidim-logo.svg +23 -23
- data/app/assets/images/decidim/default-avatar.svg +7 -7
- data/app/assets/images/decidim/icons.svg +1 -0
- data/app/assets/javascripts/decidim.js.es6 +5 -2
- data/app/assets/javascripts/decidim/append_redirect_url_to_modals.js.es6 +84 -0
- data/app/assets/javascripts/decidim/data_picker.js.es6 +177 -0
- data/app/assets/javascripts/decidim/form_filter.component.js.es6 +25 -20
- data/app/assets/javascripts/decidim/form_filter.component.test.js +24 -13
- data/app/assets/javascripts/decidim/history.js.es6 +3 -3
- data/app/assets/stylesheets/decidim/_decidim.scss +1 -4
- data/app/assets/stylesheets/decidim/_variables.scss +4 -4
- data/app/assets/stylesheets/decidim/editor.scss +13 -0
- data/app/assets/stylesheets/decidim/email.css +9 -1
- data/app/assets/stylesheets/decidim/extras/_add_comments.scss +3 -3
- data/app/assets/stylesheets/decidim/extras/_announcement.scss +1 -1
- data/app/assets/stylesheets/decidim/extras/_collection-sort-controls.scss +2 -2
- data/app/assets/stylesheets/decidim/extras/_embed.scss +6 -5
- data/app/assets/stylesheets/decidim/extras/_impersonation-bar.scss +4 -0
- data/app/assets/stylesheets/decidim/extras/_label-required.scss +1 -1
- data/app/assets/stylesheets/decidim/extras/_leaflet.scss +6 -4
- data/app/assets/stylesheets/decidim/extras/_meeting-registrations.scss +4 -4
- data/app/assets/stylesheets/decidim/extras/_process_stats.scss +11 -4
- data/app/assets/stylesheets/decidim/extras/_proposal_form.scss +3 -3
- data/app/assets/stylesheets/decidim/extras/_quill.scss +1 -1
- data/app/assets/stylesheets/decidim/extras/_reference.scss +3 -3
- data/app/assets/stylesheets/decidim/extras/_register_form.scss +3 -3
- data/app/assets/stylesheets/decidim/extras/_results-per-page.scss +10 -10
- data/app/assets/stylesheets/decidim/extras/_social_icons_mini.scss +4 -3
- data/app/assets/stylesheets/decidim/layouts/_highlighted_banner.scss +38 -0
- data/app/assets/stylesheets/decidim/layouts/_home.scss +33 -3
- data/app/assets/stylesheets/decidim/layouts/_user.scss +33 -5
- data/app/assets/stylesheets/decidim/layouts/_view.scss +1 -2
- data/app/assets/stylesheets/decidim/map.css +5 -3
- data/app/assets/stylesheets/decidim/modules/_address.scss +1 -0
- data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +24 -9
- data/app/assets/stylesheets/decidim/modules/_buttons.scss +24 -10
- data/app/assets/stylesheets/decidim/modules/_callout.scss +5 -1
- data/app/assets/stylesheets/decidim/modules/_card-grid.scss +1 -1
- data/app/assets/stylesheets/decidim/modules/_cards.scss +102 -31
- data/app/assets/stylesheets/decidim/modules/_comments.scss +21 -20
- data/app/assets/stylesheets/decidim/modules/_cookie-bar.scss +4 -0
- data/app/assets/stylesheets/decidim/modules/_data-picker.scss +159 -0
- data/app/assets/stylesheets/decidim/modules/_datepicker.scss +36 -36
- data/app/assets/stylesheets/decidim/modules/_definition-data.scss +12 -9
- data/app/assets/stylesheets/decidim/modules/_extra.scss +4 -1
- data/app/assets/stylesheets/decidim/modules/_filter-tags.scss +3 -0
- data/app/assets/stylesheets/decidim/modules/_filters.scss +9 -5
- data/app/assets/stylesheets/decidim/modules/_flag.scss +1 -0
- data/app/assets/stylesheets/decidim/modules/_footer.scss +10 -0
- data/app/assets/stylesheets/decidim/modules/_forms.scss +2 -1
- data/app/assets/stylesheets/decidim/modules/_help.scss +2 -0
- data/app/assets/stylesheets/decidim/modules/_icons.scss +1 -0
- data/app/assets/stylesheets/decidim/modules/_layout.scss +4 -0
- data/app/assets/stylesheets/decidim/modules/_list-docs.scss +3 -0
- data/app/assets/stylesheets/decidim/modules/_main-container.scss +13 -7
- data/app/assets/stylesheets/decidim/modules/_map.scss +13 -1
- data/app/assets/stylesheets/decidim/modules/_margins.scss +1 -0
- data/app/assets/stylesheets/decidim/modules/_messages.scss +2 -1
- data/app/assets/stylesheets/decidim/modules/_modules.scss +3 -0
- data/app/assets/stylesheets/decidim/modules/_navbar.scss +36 -16
- data/app/assets/stylesheets/decidim/modules/_omnipresent_banner.scss +26 -0
- data/app/assets/stylesheets/decidim/modules/_opinion-toggle.scss +5 -0
- data/app/assets/stylesheets/decidim/modules/_order-by.scss +10 -10
- data/app/assets/stylesheets/decidim/modules/_pagination.scss +3 -2
- data/app/assets/stylesheets/decidim/modules/_process-header.scss +11 -2
- data/app/assets/stylesheets/decidim/modules/_process-info.scss +9 -1
- data/app/assets/stylesheets/decidim/modules/_process-nav.scss +20 -3
- data/app/assets/stylesheets/decidim/modules/_process-phase.scss +12 -3
- data/app/assets/stylesheets/decidim/modules/_progress-bar.scss +69 -0
- data/app/assets/stylesheets/decidim/modules/_reference.scss +1 -2
- data/app/assets/stylesheets/decidim/modules/_reveal.scss +1 -1
- data/app/assets/stylesheets/decidim/modules/_share.scss +2 -0
- data/app/assets/stylesheets/decidim/modules/_signup.scss +5 -1
- data/app/assets/stylesheets/decidim/modules/_static-pages.scss +6 -0
- data/app/assets/stylesheets/decidim/modules/_status-labels.scss +2 -0
- data/app/assets/stylesheets/decidim/modules/_tags.scss +3 -1
- data/app/assets/stylesheets/decidim/modules/_timeline.scss +41 -30
- data/app/assets/stylesheets/decidim/modules/_title-action.scss +2 -1
- data/app/assets/stylesheets/decidim/modules/_typography.scss +13 -4
- data/app/assets/stylesheets/decidim/modules/_user-form.scss +1 -0
- data/app/assets/stylesheets/decidim/modules/_video.scss +2 -2
- data/app/assets/stylesheets/decidim/utils/_fontface.scss +22 -20
- data/app/assets/stylesheets/decidim/utils/_helpers.scss +6 -6
- data/app/assets/stylesheets/decidim/utils/_keyframes.scss +6 -6
- data/app/assets/stylesheets/decidim/utils/_mixins.scss +24 -7
- data/app/assets/stylesheets/decidim/utils/_settings.scss +50 -52
- data/app/assets/stylesheets/decidim/utils/_toggle-expand.scss +1 -0
- data/app/commands/decidim/create_omniauth_registration.rb +3 -0
- data/app/commands/decidim/create_registration.rb +3 -1
- data/app/commands/decidim/destroy_account.rb +1 -0
- data/app/commands/decidim/invite_user_again.rb +1 -1
- data/app/commands/decidim/messaging/reply_to_conversation.rb +1 -3
- data/app/commands/decidim/unsubscribe_settings.rb +29 -0
- data/app/commands/decidim/update_account.rb +16 -3
- data/app/controllers/concerns/decidim/action_authorization.rb +1 -1
- data/app/controllers/concerns/decidim/devise_controllers.rb +10 -0
- data/app/controllers/concerns/decidim/form_factory.rb +2 -1
- data/app/controllers/concerns/decidim/impersonate_users.rb +13 -8
- data/app/controllers/concerns/decidim/participatory_space_context.rb +1 -1
- data/app/controllers/decidim/application_controller.rb +16 -0
- data/app/controllers/decidim/cookie_policy_controller.rb +2 -0
- data/app/controllers/decidim/devise/invitations_controller.rb +9 -1
- data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +10 -1
- data/app/controllers/decidim/devise/sessions_controller.rb +9 -1
- data/app/controllers/decidim/locales_controller.rb +2 -3
- data/app/controllers/decidim/messaging/conversations_controller.rb +2 -2
- data/app/controllers/decidim/newsletters_controller.rb +60 -0
- data/app/controllers/decidim/pages_controller.rb +1 -0
- data/app/controllers/decidim/profiles_controller.rb +23 -0
- data/app/controllers/decidim/scopes_controller.rb +19 -20
- data/app/events/decidim/profile_updated_event.rb +27 -0
- data/app/forms/decidim/account_form.rb +34 -0
- data/app/forms/decidim/form.rb +1 -0
- data/app/forms/decidim/messaging/conversation_form.rb +5 -2
- data/app/forms/decidim/omniauth_registration_form.rb +5 -0
- data/app/forms/decidim/registration_form.rb +8 -1
- data/app/helpers/decidim/action_authorization_helper.rb +2 -2
- data/app/helpers/decidim/application_helper.rb +8 -0
- data/app/helpers/decidim/feature_path_helper.rb +12 -2
- data/app/helpers/decidim/feature_reference_helper.rb +1 -1
- data/app/helpers/decidim/messaging/conversation_helper.rb +27 -9
- data/app/helpers/decidim/newsletters_helper.rb +49 -0
- data/app/helpers/decidim/scopes_helper.rb +43 -2
- data/app/helpers/decidim/translations_helper.rb +6 -2
- data/app/mailers/decidim/decidim_devise_mailer.rb +1 -3
- data/app/mailers/decidim/messaging/conversation_mailer.rb +1 -1
- data/app/mailers/decidim/newsletter_mailer.rb +7 -8
- data/app/models/decidim/abilities/everyone_ability.rb +1 -0
- data/app/models/decidim/authorization.rb +19 -5
- data/app/models/decidim/impersonation_log.rb +2 -1
- data/app/models/decidim/messaging/conversation.rb +2 -0
- data/app/models/decidim/messaging/message.rb +4 -0
- data/app/models/decidim/organization.rb +1 -0
- data/app/models/decidim/scope.rb +10 -2
- data/app/models/decidim/user.rb +10 -2
- data/app/presenters/decidim/home_stats_presenter.rb +10 -4
- data/app/presenters/decidim/user_group_presenter.rb +28 -0
- data/app/presenters/decidim/user_presenter.rb +42 -0
- data/app/services/decidim/action_authorizer.rb +32 -68
- data/app/services/decidim/notification_generator_for_recipient.rb +8 -3
- data/app/uploaders/decidim/avatar_uploader.rb +2 -2
- data/app/views/decidim/account/delete.html.erb +1 -1
- data/app/views/decidim/account/show.html.erb +4 -1
- data/app/views/decidim/devise/invitations/edit.html.erb +2 -0
- data/app/views/decidim/devise/omniauth_registrations/new.html.erb +7 -1
- data/app/views/decidim/devise/registrations/new.html.erb +7 -1
- data/app/views/decidim/messaging/conversations/_message.html.erb +6 -12
- data/app/views/decidim/messaging/conversations/_reply.html.erb +1 -1
- data/app/views/decidim/messaging/conversations/index.html.erb +1 -1
- data/app/views/decidim/messaging/conversations/update.js.erb +1 -0
- data/app/views/decidim/newsletter_mailer/newsletter.html.erb +11 -0
- data/app/views/decidim/newsletters/show.html.erb +11 -0
- data/app/views/decidim/newsletters/unsubscribe.html.erb +4 -0
- data/app/views/decidim/notifications/_notification.html.erb +1 -1
- data/app/views/decidim/profiles/show.html.erb +64 -0
- data/app/views/decidim/scopes/_scopes_picker_input.html.erb +6 -0
- data/app/views/decidim/scopes/picker.html.erb +36 -0
- data/app/views/decidim/shared/_action_authorization_modal.html.erb +25 -51
- data/app/views/decidim/shared/_author.html.erb +21 -0
- data/app/views/decidim/shared/_author_reference.html.erb +12 -0
- data/app/views/layouts/decidim/_application.html.erb +1 -0
- data/app/views/layouts/decidim/_impersonation_warning.html.erb +1 -1
- data/app/views/layouts/decidim/_mailer_logo.html.erb +6 -1
- data/app/views/layouts/decidim/_omnipresent_banner.html.erb +14 -0
- data/app/views/layouts/decidim/_user_menu.html.erb +3 -0
- data/app/views/layouts/decidim/mailer.html.erb +16 -4
- data/app/views/layouts/decidim/widget.html.erb +14 -9
- data/app/views/pages/home.html.erb +2 -0
- data/app/views/pages/home/_highlighted_content_banner.html.erb +26 -0
- data/config/initializers/devise.rb +1 -3
- data/config/locales/ca.yml +67 -9
- data/config/locales/en.yml +65 -4
- data/config/locales/es.yml +74 -14
- data/config/locales/eu.yml +66 -4
- data/config/locales/fi.yml +87 -25
- data/config/locales/fr.yml +71 -9
- data/config/locales/gl.yml +493 -0
- data/config/locales/it.yml +79 -17
- data/config/locales/nl.yml +71 -9
- data/config/locales/pl.yml +66 -4
- data/config/locales/pt-BR.yml +493 -0
- data/config/locales/pt.yml +99 -37
- data/config/locales/ru.yml +85 -13
- data/config/locales/sv.yml +493 -0
- data/config/locales/uk.yml +78 -16
- data/config/routes.rb +11 -1
- data/db/migrate/20171212103803_create_unique_nicknames.rb +29 -0
- data/db/migrate/20180115090038_extend_user_profile.rb +8 -0
- data/db/migrate/20180123125308_add_enable_omnipresent_banner_to_decidim_organizations.rb +7 -0
- data/db/migrate/20180123125409_add_omnipresent_banner_title_to_decidim_organizations.rb +7 -0
- data/db/migrate/20180123125432_add_omnipresent_banner_short_description_to_decidim_organizations.rb +7 -0
- data/db/migrate/20180123125452_add_omnipresent_banner_url_to_decidim_organizations.rb +7 -0
- data/db/migrate/20180125063433_add_highlighted_content_banner_to_decidim_organizations.rb +13 -0
- data/db/seeds.rb +8 -2
- data/lib/decidim/abilities/participatory_process_role_ability.rb +1 -3
- data/lib/decidim/content_parsers.rb +8 -0
- data/lib/decidim/content_parsers/base_parser.rb +58 -0
- data/lib/decidim/content_parsers/user_parser.rb +46 -0
- data/lib/decidim/content_processor.rb +84 -0
- data/lib/decidim/content_renderers.rb +8 -0
- data/lib/decidim/content_renderers/base_renderer.rb +37 -0
- data/lib/decidim/content_renderers/user_renderer.rb +32 -0
- data/lib/decidim/core.rb +66 -1
- data/lib/decidim/core/api/author_interface.rb +3 -3
- data/lib/decidim/core/api/user_group_type.rb +10 -8
- data/lib/decidim/core/api/user_type.rb +13 -7
- data/lib/decidim/core/engine.rb +7 -5
- data/lib/decidim/core/test.rb +1 -1
- data/lib/decidim/core/test/factories.rb +21 -45
- data/lib/decidim/core/test/shared_examples/announcements_examples.rb +3 -2
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +5 -2
- data/lib/decidim/core/test/shared_examples/scope_helper_examples.rb +40 -3
- data/lib/decidim/core/test/shared_examples/simple_event.rb +73 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/events.rb +2 -0
- data/lib/decidim/events/author_event.rb +41 -0
- data/lib/decidim/events/base_event.rb +28 -3
- data/lib/decidim/events/email_event.rb +1 -1
- data/lib/decidim/events/notification_event.rb +1 -1
- data/lib/decidim/events/simple_event.rb +79 -0
- data/lib/decidim/filter_form_builder.rb +2 -3
- data/lib/decidim/form_builder.rb +39 -27
- data/lib/decidim/friendly_dates.rb +26 -0
- data/lib/decidim/has_feature.rb +1 -0
- data/lib/decidim/has_reference.rb +1 -1
- data/lib/decidim/i18n_exceptions.rb +1 -3
- data/lib/decidim/menu.rb +1 -1
- data/lib/decidim/newsletter_encryptor.rb +22 -0
- data/lib/decidim/nicknamizable.rb +56 -0
- data/lib/decidim/participable.rb +8 -0
- data/lib/decidim/participatory_space_manifest.rb +10 -1
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.gl.js +13 -0
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.pt-br.js +14 -0
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.pt.js +5 -1
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.ru.js +4 -1
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.sv.js +14 -0
- data/vendor/assets/javascripts/datepicker-locales/foundation-datepicker.uk.js +4 -1
- data/vendor/assets/javascripts/form_datepicker.js.es6 +4 -2
- data/vendor/assets/javascripts/foundation-datepicker.js +42 -26
- metadata +124 -84
- data/app/assets/javascripts/decidim/select2.field.js.es6 +0 -47
- data/app/assets/javascripts/decidim/select2.js.es6 +0 -11
- data/app/assets/stylesheets/decidim/editor.sass +0 -4
- data/app/assets/stylesheets/decidim/plugins/_select2.scss +0 -63
- data/app/helpers/decidim/datetime_helper.rb +0 -23
- data/app/queries/decidim/freetext_scopes.rb +0 -39
- data/lib/decidim/core/test/shared_examples/manage_moderations_examples.rb +0 -64
@@ -1,47 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Select2 filter component.
|
3
|
-
*/
|
4
|
-
|
5
|
-
((exports) => {
|
6
|
-
class Select2Field {
|
7
|
-
constructor(element) {
|
8
|
-
const selectedLang = $("html").attr('lang') || 'en';
|
9
|
-
|
10
|
-
let $element = $(element);
|
11
|
-
|
12
|
-
let options = {
|
13
|
-
language: selectedLang,
|
14
|
-
multiple: $element.attr("multiple")==="multiple",
|
15
|
-
width: "100%",
|
16
|
-
allowClear: true
|
17
|
-
};
|
18
|
-
if ($element.data("remote-path")) {
|
19
|
-
options.ajax = {
|
20
|
-
url: $element.data("remote-path"),
|
21
|
-
delay: 250,
|
22
|
-
cache: true
|
23
|
-
};
|
24
|
-
}
|
25
|
-
$element.select2(options);
|
26
|
-
|
27
|
-
// Avoid opening dropdown after clearing selection: https://github.com/select2/select2/issues/3320
|
28
|
-
$element.on('select2:unselecting', function() {
|
29
|
-
$element.data('unselecting', true);
|
30
|
-
}).on('select2:open', function() {
|
31
|
-
if ($element.data('unselecting')) {
|
32
|
-
$element.removeData('unselecting');
|
33
|
-
$element.select2('close');
|
34
|
-
}
|
35
|
-
});
|
36
|
-
|
37
|
-
this.$element = $element;
|
38
|
-
}
|
39
|
-
|
40
|
-
destroy() {
|
41
|
-
this.$element.select2("destroy");
|
42
|
-
}
|
43
|
-
}
|
44
|
-
|
45
|
-
exports.Decidim = exports.Decidim || {};
|
46
|
-
exports.Decidim.Select2Field = Select2Field;
|
47
|
-
})(window);
|
@@ -1,11 +0,0 @@
|
|
1
|
-
// = require select2
|
2
|
-
// = require select2_locale_es
|
3
|
-
// = require select2_locale_eu
|
4
|
-
// = require select2_locale_ca
|
5
|
-
// = require select2_locale_fi
|
6
|
-
// = require select2_locale_fr
|
7
|
-
// = require select2_locale_it
|
8
|
-
// = require select2_locale_nl
|
9
|
-
// = require select2_locale_pt
|
10
|
-
// = require select2_locale_uk
|
11
|
-
// = require select2_locale_ru
|
@@ -1,63 +0,0 @@
|
|
1
|
-
.select2-container--focus .select2-selection {
|
2
|
-
border: 1px solid $primary !important;
|
3
|
-
}
|
4
|
-
.select2-container {
|
5
|
-
&.select2 {
|
6
|
-
margin-bottom: 1.5rem;
|
7
|
-
}
|
8
|
-
.select2-dropdown {
|
9
|
-
box-shadow: inset 0 -1px 2px rgba(26, 24, 29, 0.1);
|
10
|
-
border-color: #eee;
|
11
|
-
.select2-search__field {
|
12
|
-
margin-bottom: 0;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
.select2-selection {
|
16
|
-
box-shadow: inset 0 1px 2px rgba(26, 24, 29, 0.1);
|
17
|
-
border-color: #eee;
|
18
|
-
}
|
19
|
-
.select2-selection--single {
|
20
|
-
margin-top: 5px;
|
21
|
-
height: 48px;
|
22
|
-
.select2-selection__rendered {
|
23
|
-
line-height: 46px;
|
24
|
-
padding-right: 23px;
|
25
|
-
font-weight: normal;
|
26
|
-
color: #1a181d;
|
27
|
-
}
|
28
|
-
.select2-selection__arrow {
|
29
|
-
height: 54px;
|
30
|
-
right: 5px;
|
31
|
-
b {
|
32
|
-
border-width: 6px 5px 0 5px;
|
33
|
-
border-top-color: #121014;
|
34
|
-
}
|
35
|
-
}
|
36
|
-
}
|
37
|
-
.select2-selection--multiple {
|
38
|
-
.select2-selection__rendered li {
|
39
|
-
border: 1px solid #e8e8e8;
|
40
|
-
padding: 0 .5rem;
|
41
|
-
color: $secondary;
|
42
|
-
background: none;
|
43
|
-
border-radius: 0;
|
44
|
-
font-size: 0.9rem;
|
45
|
-
&.select2-search {
|
46
|
-
clear: left;
|
47
|
-
padding: 0;
|
48
|
-
border: none;
|
49
|
-
.select2-search__field {
|
50
|
-
width: 100% !important;
|
51
|
-
padding: 0.2rem;
|
52
|
-
height: 1.75rem;
|
53
|
-
margin: 0.2rem 0 0;
|
54
|
-
font-size: 1rem;
|
55
|
-
}
|
56
|
-
}
|
57
|
-
}
|
58
|
-
}
|
59
|
-
}
|
60
|
-
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
61
|
-
border-width: 0 5px 6px 5px;
|
62
|
-
border-bottom-color: #121014;
|
63
|
-
}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "active_support/core_ext/date_time/calculations"
|
4
|
-
|
5
|
-
module Decidim
|
6
|
-
# A Helper to render dates
|
7
|
-
module DatetimeHelper
|
8
|
-
# Renders a date in the simplest possible format.
|
9
|
-
def simple_date(datetime)
|
10
|
-
current_datetime = Time.zone.now
|
11
|
-
|
12
|
-
if datetime > current_datetime.beginning_of_day
|
13
|
-
I18n.l(datetime, format: :time_of_day)
|
14
|
-
elsif datetime > current_datetime.beginning_of_week
|
15
|
-
I18n.l(datetime, format: :day_of_week)
|
16
|
-
elsif datetime > current_datetime.beginning_of_year
|
17
|
-
I18n.l(datetime, format: :day_of_month)
|
18
|
-
else
|
19
|
-
I18n.l(datetime, format: :day_of_year)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
# This query searches scopes by name.
|
5
|
-
class FreetextScopes < Rectify::Query
|
6
|
-
# Syntactic sugar to initialize the class and return the queried objects.
|
7
|
-
#
|
8
|
-
# organization - an Organization context for the scope search
|
9
|
-
# lang - the language code to be used for the search
|
10
|
-
# text - the text to be searched in scopes names
|
11
|
-
# root - root scope
|
12
|
-
def self.for(organization, lang, text, root = nil)
|
13
|
-
new(organization, lang, text, root).query
|
14
|
-
end
|
15
|
-
|
16
|
-
# Initializes the class.
|
17
|
-
#
|
18
|
-
# organization - an Organization context for the scope search
|
19
|
-
# lang - the language code to be used for the search
|
20
|
-
# text - the text to be searched in scopes names
|
21
|
-
def initialize(organization, lang, text, root = nil)
|
22
|
-
@organization = organization
|
23
|
-
@lang = lang
|
24
|
-
@text = text
|
25
|
-
@root = root
|
26
|
-
end
|
27
|
-
|
28
|
-
# Finds scopes in the given organization and language whose name begins with the indicated text.
|
29
|
-
#
|
30
|
-
# Returns an ActiveRecord::Relation.
|
31
|
-
def query
|
32
|
-
if @root
|
33
|
-
@root.descendants.where("name->>? ilike ?", @lang, @text + "%")
|
34
|
-
else
|
35
|
-
@organization.scopes.where("name->>? ilike ?", @lang, @text + "%")
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,64 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
shared_examples "manage moderations" do
|
4
|
-
let!(:moderations) do
|
5
|
-
reportables.first(reportables.length - 1).map do |reportable|
|
6
|
-
moderation = create(:moderation, reportable: reportable, report_count: 1)
|
7
|
-
create(:report, moderation: moderation)
|
8
|
-
moderation
|
9
|
-
end
|
10
|
-
end
|
11
|
-
let!(:moderation) { moderations.first }
|
12
|
-
let!(:hidden_moderations) do
|
13
|
-
reportables.last(1).map do |reportable|
|
14
|
-
moderation = create(:moderation, reportable: reportable, report_count: 3, hidden_at: Time.current)
|
15
|
-
create_list(:report, 3, moderation: moderation, reason: :spam)
|
16
|
-
moderation
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
before do
|
21
|
-
visit decidim_admin_participatory_processes.edit_participatory_process_path(participatory_process)
|
22
|
-
click_link "Moderations"
|
23
|
-
end
|
24
|
-
|
25
|
-
context "listing moderations" do
|
26
|
-
it "user can review them" do
|
27
|
-
moderations.each do |moderation|
|
28
|
-
within "tr[data-id=\"#{moderation.id}\"]" do
|
29
|
-
expect(page).to have_css("a[href='#{moderation.reportable.reported_content_url}']")
|
30
|
-
expect(page).to have_content "Spam"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
it "user can un-report a resource" do
|
36
|
-
within "tr[data-id=\"#{moderation.id}\"]" do
|
37
|
-
click_link "Unreport"
|
38
|
-
end
|
39
|
-
|
40
|
-
expect(page).to have_admin_callout("Resource successfully unreported")
|
41
|
-
end
|
42
|
-
|
43
|
-
it "user can hide a resource" do
|
44
|
-
within "tr[data-id=\"#{moderation.id}\"]" do
|
45
|
-
click_link "Hide"
|
46
|
-
end
|
47
|
-
|
48
|
-
expect(page).to have_admin_callout("Resource successfully hidden")
|
49
|
-
expect(page).to have_no_content(moderation.reportable.reported_content_url)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
context "listing hidden resources" do
|
54
|
-
it "user can review them" do
|
55
|
-
click_link "Hidden"
|
56
|
-
|
57
|
-
hidden_moderations.each do |moderation|
|
58
|
-
within "tr[data-id=\"#{moderation.id}\"]" do
|
59
|
-
expect(page).to have_css("a[href='#{moderation.reportable.reported_content_url}']")
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|