diff --git a/Gemfile.lock b/Gemfile.lock index 0dab5901..44a9680a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -99,6 +99,7 @@ GEM execjs (~> 2.0) batch-loader (1.4.1) bcrypt (3.1.13) + bcrypt (3.1.13-java) better_html (1.0.14) actionview (>= 4.0) activesupport (>= 4.0) @@ -406,6 +407,9 @@ GEM faraday (0.15.4) multipart-post (>= 1.2, < 3) ffi (1.9.25) + ffi (1.9.25-java) + ffi (1.9.25-x64-mingw32) + ffi (1.9.25-x86-mingw32) file_validators (2.3.0) activemodel (>= 3.2) mime-types (>= 1.0) @@ -463,6 +467,7 @@ GEM invisible_captcha (0.10.0) rails (>= 3.2.0) jaro_winkler (1.5.3) + jaro_winkler (1.5.3-java) jquery-rails (4.3.5) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) @@ -470,6 +475,7 @@ GEM jquery-tmpl-rails (1.1.0) rails (>= 3.1.0) json (2.2.0) + json (2.2.0-java) jwt (2.2.1) kaminari (1.1.1) activesupport (>= 4.1.0) @@ -486,8 +492,12 @@ GEM kramdown (1.17.0) ladle (1.0.1) open4 (~> 1.0) + ladle (1.0.1-java) launchy (2.4.3) addressable (~> 2.3) + launchy (2.4.3-java) + addressable (~> 2.3) + spoon (~> 0.0.1) letter_opener (1.7.0) launchy (~> 2.2) letter_opener_web (1.3.4) @@ -528,9 +538,15 @@ GEM net-ldap (0.16.1) netrc (0.11.0) nio4r (2.4.0) + nio4r (2.4.0-java) nobspw (0.6.1) nokogiri (1.10.3) mini_portile2 (~> 2.4.0) + nokogiri (1.10.3-java) + nokogiri (1.10.3-x64-mingw32) + mini_portile2 (~> 2.4.0) + nokogiri (1.10.3-x86-mingw32) + mini_portile2 (~> 2.4.0) nori (2.6.0) oauth (0.5.4) oauth2 (1.4.1) @@ -568,6 +584,8 @@ GEM parser (2.6.3.0) ast (~> 2.4.0) pg (1.1.4) + pg (1.1.4-x64-mingw32) + pg (1.1.4-x86-mingw32) pg_search (2.3.0) activerecord (>= 4.2) activesupport (>= 4.2) @@ -582,6 +600,10 @@ GEM pry (0.12.2) coderay (~> 1.1.0) method_source (~> 0.9.0) + pry (0.12.2-java) + coderay (~> 1.1.0) + method_source (~> 0.9.0) + spoon (~> 0.0) pry-byebug (3.6.0) byebug (~> 10.0) pry (~> 0.10) @@ -591,6 +613,7 @@ GEM pry (>= 0.10.4) public_suffix (3.1.1) puma (3.12.1) + puma (3.12.1-java) raabro (1.1.6) rack (2.0.7) rack-attack (5.4.2) @@ -659,6 +682,21 @@ GEM http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) + rest-client (2.0.2-x64-mingw32) + ffi (~> 1.9) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 4.0) + netrc (~> 0.8) + rest-client (2.0.2-x86-mingw32) + ffi (~> 1.9) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 4.0) + netrc (~> 0.8) + rest-client (2.0.2-x86-mswin32) + ffi (~> 1.9) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 4.0) + netrc (~> 0.8) rspec (3.7.0) rspec-core (~> 3.7.0) rspec-expectations (~> 3.7.0) @@ -743,6 +781,8 @@ GEM social-share-button (1.2.0) coffee-rails socksify (1.7.1) + spoon (0.0.6) + ffi spreadsheet (1.2.4) ruby-ole (>= 1.0) spring (2.1.0) @@ -769,6 +809,7 @@ GEM unicode-display_width (~> 1.1, >= 1.1.1) thor (0.20.3) thread_safe (0.3.6) + thread_safe (0.3.6-java) tilt (2.0.9) tomlrb (1.2.8) truncato (0.7.11) @@ -776,11 +817,14 @@ GEM nokogiri (>= 1.7.0, <= 2.0) tzinfo (1.2.5) thread_safe (~> 0.1) + tzinfo-data (1.2019.3) + tzinfo (>= 1.0.0) uber (0.1.0) uglifier (4.1.20) execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext + unf (0.1.4-java) unf_ext (0.0.7.6) unicode-display_width (1.6.0) unicode_utils (1.4.0) @@ -810,6 +854,8 @@ GEM hashdiff websocket-driver (0.7.1) websocket-extensions (>= 0.1.0) + websocket-driver (0.7.1-java) + websocket-extensions (>= 0.1.0) websocket-extensions (0.1.4) wisper (2.0.0) wisper-rspec (1.1.0) @@ -817,7 +863,11 @@ GEM nokogiri (~> 1.8) PLATFORMS + java ruby + x64-mingw32 + x86-mingw32 + x86-mswin32 DEPENDENCIES byebug @@ -855,4 +905,4 @@ RUBY VERSION ruby 2.5.1p57 BUNDLED WITH - 1.16.4 + 1.17.3 diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index de6be794..12ee52d3 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,2 +1,18 @@ module ApplicationHelper + def text_invalid_age_authorizer(status) + options = status.instance_variable_get(:@authorization_handler) + .instance_variable_get(:@action_authorizer) + .instance_variable_get(:@options) + scope = 'diba.decidim.authorization_modals.content.birthdate.invalid_field' + min_age = options['age'] + max_age = options['max_age'] + + if min_age.present? && max_age.present? + t('both', scope: scope, max_age: max_age, min_age: min_age) + elsif min_age.present? && max_age.blank? + t('min_age', scope: scope, min_age: min_age) + elsif min_age.blank? && max_age.present? + t('max_age', scope: scope, max_age: max_age) + end + end end diff --git a/app/views/decidim/authorization_modals/_content.html.erb b/app/views/decidim/authorization_modals/_content.html.erb new file mode 100644 index 00000000..876b771d --- /dev/null +++ b/app/views/decidim/authorization_modals/_content.html.erb @@ -0,0 +1,52 @@ +<% if current_user && !current_user.verifiable? %> +
+

<%= t ".unconfirmed.title" %>

+
+

<%= t ".unconfirmed.explanation_html", email: current_user.email %>

+

<%= t ".unconfirmed.confirmation_instructions" %>

+
+
+ <%= link_to t(".unconfirmed.request_confirmation_instructions"), new_confirmation_path(Decidim::User), class: "button expanded" %> +
+
+<% else %> + <% base_code = authorizations.global_code || :missing %> +
+

<%= t ".#{base_code}.title" %>

+
+ <% authorizations.statuses.each do |status| %> + <% next if status.ok? || authorizations.global_code && status.code != base_code %> +

<%= t ".#{status.code}.explanation", authorization: t("#{status.handler_name}.name", scope: "decidim.authorization_handlers") %>

+ <% if status.data[:extra_explanation] %> +

<%= t status.data[:extra_explanation][:key], **status.data[:extra_explanation][:params] %>

+ <% end %> + <% if status.data[:fields] %> + + <% end %> +
+
+ <% if status.data[:action].present? %> + <%= link_to t(".#{status.code}.#{status.data[:action]}", authorization: t("#{status.handler_name}.name", scope: "decidim.authorization_handlers")), authorize_action_path(status.handler_name), class: "button expanded" %> + <% else %> + + <% end %> +
+
+ <% if status.data[:cancel] %> +
+ +
+ <% end %> + <% end %> +<% end %> diff --git a/config/initializers/subcensus_authorizer.rb b/config/initializers/subcensus_authorizer.rb new file mode 100644 index 00000000..3baf4571 --- /dev/null +++ b/config/initializers/subcensus_authorizer.rb @@ -0,0 +1,28 @@ +# Decidim does not allow to use more than one ActionAuthorization inside an +# AuthorizationHandler. +# This code adds an aditional validation to the AgeActionAuthorization to validate +# the subcensus. + +module SubcensusAuthorizer + def set_unmatched_fields + errors = [] + errors << :birthdate unless valid_age? + errors << :subcensus unless valid_subcensus? + errors + end + + def valid_subcensus? + subcensus = Decidim::Census::Subcensus.find_by( + decidim_participatory_process_id: @component&.participatory_space&.id + ) + + return true if subcensus.blank? + + Decidim::Census::SubcensusDocument.where( + id_document: @authorization&.unique_id, + decidim_census_subcensus_id: subcensus.id + ).any? + end +end + +Decidim::AgeActionAuthorization::Authorizer.prepend(SubcensusAuthorizer) diff --git a/config/locales/ca.yml b/config/locales/ca.yml index a044149c..96e98154 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -34,3 +34,14 @@ ca: user: invalid: Correu electrònic o contrasenya no vàlids. not_found_in_database: Correu electrònic o contrasenya no vàlids. + diba: + decidim: + authorization_modals: + content: + birthdate: + invalid_field: + both: "Aquesta acció està restringida als habitants del padró municipal entre %{min_age} i %{max_age} anys" + min_age: "Aquesta acció està restringida als habitants del padró municipal majors de %{min_age} anys" + max_age: "Aquesta acció està restringida als habitants del padró municipal menors de %{max_age} anys" + subcensus: + invalid_field: "Aquesta acció està restringida a un conjunt d'habitants del padró municipal del qual no en formes part. Contacta amb nosaltres si creus que n'hauries de formar part i aquesta acció és de teu interés." diff --git a/config/locales/en.yml b/config/locales/en.yml index f7f3f4ef..f2418842 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -26,3 +26,14 @@ en: proposals: actions: withdraw: Withdraw + diba: + decidim: + authorization_modals: + content: + birthdate: + invalid_field: + both: "This action is restricted to the inhabitants of the municipal census between %{min_age} and %{max_age} years old." + min_age: "This action is restricted to the inhabitants of the municipal census older than %{min_age} years." + max_age: "This action is restricted to the inhabitants of the municipal census under the age of %{max_age}." + subcensus: + invalid_field: "This action is restricted to a group of inhabitants of the municipal census which you are not part of. Contact us if you think you should belong to this group and you are interested in being able to perform this action." diff --git a/config/locales/es.yml b/config/locales/es.yml index 3e6ef464..9c1efe8b 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -26,3 +26,14 @@ es: proposals: actions: withdraw: Retirar + diba: + decidim: + authorization_modals: + content: + birthdate: + invalid_field: + both: "Esta acción está restringida a los habitantes del padrón municipal entre %{min_age} y %{max_age} años" + min_age: "Esta acción está restringida a los habitantes del padrón municipal mayores de %{min_age} años" + max_age: "Esta acción está restringida a los habitantes del padrón municipal menores de %{max_age} años" + subcensus: + invalid_field: "Esta acción está restringida a un conjunto de habitantes del padrón municipal del cual no formas parte. Contacta con nosotros si crees que tendrías que formar parte de este grupo y esta acción es de tu interés." diff --git a/db/migrate/20191017081707_create_decidim_census_subcensus.decidim_census.rb b/db/migrate/20191017081707_create_decidim_census_subcensus.decidim_census.rb new file mode 100644 index 00000000..86e34afa --- /dev/null +++ b/db/migrate/20191017081707_create_decidim_census_subcensus.decidim_census.rb @@ -0,0 +1,13 @@ +# This migration comes from decidim_census (originally 20191008121918) +class CreateDecidimCensusSubcensus < ActiveRecord::Migration[5.2] + + def change + create_table :decidim_census_subcensuses do |t| + t.references :decidim_participatory_process, index: { name: 'index_decidim_census_subcensuses_on_participatory_process_id' } + t.string :name + + t.timestamps + end + end + +end diff --git a/db/migrate/20191017081708_create_decidim_census_subcensus_documents.decidim_census.rb b/db/migrate/20191017081708_create_decidim_census_subcensus_documents.decidim_census.rb new file mode 100644 index 00000000..664a1ad4 --- /dev/null +++ b/db/migrate/20191017081708_create_decidim_census_subcensus_documents.decidim_census.rb @@ -0,0 +1,13 @@ +# This migration comes from decidim_census (originally 20191009140338) +class CreateDecidimCensusSubcensusDocuments < ActiveRecord::Migration[5.2] + + def change + create_table :decidim_census_subcensus_documents do |t| + t.references :decidim_census_subcensus, index: { name: 'index_census_subcensus_documents_on_census_subcensus_id' } + t.string :id_document + + t.timestamps + end + end + +end diff --git a/db/schema.rb b/db/schema.rb index 33b78a9f..3209a715 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2019_07_26_100964) do +ActiveRecord::Schema.define(version: 2019_10_17_081708) do # These are extensions that must be enabled in order to support this database enable_extension "ltree" @@ -310,6 +310,22 @@ t.index ["decidim_organization_id"], name: "index_decidim_census_census_data_on_decidim_organization_id" end + create_table "decidim_census_subcensus_documents", force: :cascade do |t| + t.bigint "decidim_census_subcensus_id" + t.string "id_document" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["decidim_census_subcensus_id"], name: "index_census_subcensus_documents_on_census_subcensus_id" + end + + create_table "decidim_census_subcensuses", force: :cascade do |t| + t.bigint "decidim_participatory_process_id" + t.string "name" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["decidim_participatory_process_id"], name: "index_decidim_census_subcensuses_on_participatory_process_id" + end + create_table "decidim_coauthorships", force: :cascade do |t| t.bigint "decidim_author_id", null: false t.bigint "decidim_user_group_id" @@ -1018,7 +1034,7 @@ t.datetime "created_at", null: false t.datetime "updated_at", null: false t.string "decidim_author_type", null: false - t.index "decidim_proposal_id, decidim_author_id, COALESCE(decidim_user_group_id, ('-1'::integer)::bigint)", name: "decidim_proposals_proposal_endorsmt_proposal_auth_ugroup_uniq", unique: true + t.index "decidim_proposal_id, decidim_author_id, (COALESCE(decidim_user_group_id, ('-1'::integer)::bigint))", name: "decidim_proposals_proposal_endorsmt_proposal_auth_ugroup_uniq", unique: true t.index ["decidim_author_id", "decidim_author_type"], name: "index_decidim_proposals_proposal_endorsements_on_decidim_author" t.index ["decidim_proposal_id"], name: "decidim_proposals_proposal_endorsement_proposal" t.index ["decidim_user_group_id"], name: "decidim_proposals_proposal_endorsement_user_group" diff --git a/decidim-age_action_authorization/lib/decidim/age_action_authorization/authorizer.rb b/decidim-age_action_authorization/lib/decidim/age_action_authorization/authorizer.rb index aa47d5b1..acdf058a 100644 --- a/decidim-age_action_authorization/lib/decidim/age_action_authorization/authorizer.rb +++ b/decidim-age_action_authorization/lib/decidim/age_action_authorization/authorizer.rb @@ -7,11 +7,17 @@ def missing_fields end def unmatched_fields - @unmatched_fields ||= (valid_age? ? [] : [:birthdate]) + @unmatched_fields ||= set_unmatched_fields end private + def set_unmatched_fields + errors = [] + errors << :birthdate unless valid_age? + errors + end + def valid_metadata? return unless authorization @@ -20,7 +26,8 @@ def valid_metadata? def valid_age? min_date = birthdate + minimum_age.years - max_date = (birthdate + options['max_age'].to_i.years if options.key?('max_age')) + max_date = options['max_age'].present? && + birthdate + options['max_age'].to_i.years if max_date (min_date..max_date).cover?(Date.current) diff --git a/decidim-census/Gemfile b/decidim-census/Gemfile index 667c5a41..944cc77e 100644 --- a/decidim-census/Gemfile +++ b/decidim-census/Gemfile @@ -6,6 +6,8 @@ source 'https://rubygems.org' gemspec group :test do + gem 'decidim' gem 'decidim-age_action_authorization', path: '../decidim-age_action_authorization' + gem 'pry-rails' gem 'decidim-ldap', path: '../decidim-ldap' end diff --git a/decidim-census/Gemfile.lock b/decidim-census/Gemfile.lock index af615dd7..e79722d0 100644 --- a/decidim-census/Gemfile.lock +++ b/decidim-census/Gemfile.lock @@ -1,49 +1,49 @@ PATH remote: ../decidim-age_action_authorization specs: - decidim-age_action_authorization (0.14.4) - decidim (= 0.14.4) + decidim-age_action_authorization (0.18.0) + decidim (= 0.18.0) PATH remote: ../decidim-ldap specs: - decidim-ldap (0.14.4) - decidim-core (= 0.14.4) + decidim-ldap (0.18.0) + decidim-core (= 0.18.0) ladle net-ldap PATH remote: . specs: - decidim-census (0.14.4) - decidim (= 0.14.4) - decidim-admin (= 0.14.4) - decidim-age_action_authorization (= 0.14.4) - decidim-ldap (= 0.14.4) + decidim-census (0.18.0) + decidim (= 0.18.0) + decidim-admin (= 0.18.0) + decidim-age_action_authorization (= 0.18.0) + decidim-ldap (= 0.18.0) virtus-multiparams (~> 0.1.1) GEM remote: https://rubygems.org/ specs: - actioncable (5.2.1) - actionpack (= 5.2.1) + actioncable (5.2.3) + actionpack (= 5.2.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailer (5.2.1) - actionpack (= 5.2.1) - actionview (= 5.2.1) - activejob (= 5.2.1) + actionmailer (5.2.3) + actionpack (= 5.2.3) + actionview (= 5.2.3) + activejob (= 5.2.3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.2.1) - actionview (= 5.2.1) - activesupport (= 5.2.1) + actionpack (5.2.3) + actionview (= 5.2.3) + activesupport (= 5.2.3) rack (~> 2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.1) - activesupport (= 5.2.1) + actionview (5.2.3) + activesupport (= 5.2.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -51,26 +51,28 @@ GEM active_link_to (1.0.5) actionpack addressable - activejob (5.2.1) - activesupport (= 5.2.1) + activejob (5.2.3) + activesupport (= 5.2.3) globalid (>= 0.3.6) - activemodel (5.2.1) - activesupport (= 5.2.1) - activerecord (5.2.1) - activemodel (= 5.2.1) - activesupport (= 5.2.1) + activemodel (5.2.3) + activesupport (= 5.2.3) + activerecord (5.2.3) + activemodel (= 5.2.3) + activesupport (= 5.2.3) arel (>= 9.0) - activestorage (5.2.1) - actionpack (= 5.2.1) - activerecord (= 5.2.1) + activestorage (5.2.3) + actionpack (= 5.2.3) + activerecord (= 5.2.3) marcel (~> 0.3.1) - activesupport (5.2.1) + activesupport (5.2.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) - addressable (2.5.2) - public_suffix (>= 2.0.2, < 4.0) + acts_as_list (1.0.0) + activerecord (>= 4.2) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) arel (9.0.0) ast (2.4.0) autoprefixer-rails (8.6.5) @@ -83,8 +85,9 @@ GEM babel-transpiler (0.7.0) babel-source (>= 4.0, < 6) execjs (~> 2.0) - bcrypt (3.1.12) - better_html (1.0.11) + batch-loader (1.4.1) + bcrypt (3.1.13) + better_html (1.0.14) actionview (>= 4.0) activesupport (>= 4.0) ast (~> 2.0) @@ -94,15 +97,15 @@ GEM smart_properties builder (3.2.3) byebug (10.0.2) - capybara (3.11.0) + capybara (3.29.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) rack (>= 1.6.0) rack-test (>= 0.6.3) - regexp_parser (~> 1.2) + regexp_parser (~> 1.5) xpath (~> 3.2) - carrierwave (1.2.3) + carrierwave (1.3.1) activemodel (>= 4.0.0) activesupport (>= 4.0.0) mime-types (>= 1.16) @@ -117,13 +120,14 @@ GEM cells-rails (0.0.9) actionpack (>= 3.0) cells (>= 4.1.6, < 5.0.0) - childprocess (0.9.0) - ffi (~> 1.0, >= 1.0.11) + charlock_holmes (0.7.6) + childprocess (3.0.0) + coderay (1.1.2) coercible (1.0.0) descendants_tracker (~> 0.0.1) - coffee-rails (4.2.2) + coffee-rails (5.0.0) coffee-script (>= 2.2.0) - railties (>= 4.0.0) + railties (>= 5.2.0) coffee-script (2.4.1) coffee-script-source execjs @@ -132,7 +136,7 @@ GEM crack (0.4.3) safe_yaml (~> 1.0.0) crass (1.0.4) - css_parser (1.6.0) + css_parser (1.7.0) addressable date_validator (0.9.0) activemodel @@ -140,73 +144,77 @@ GEM db-query-matchers (0.9.0) activesupport (>= 4.0, <= 6.0) rspec (~> 3.0) - decidim (0.14.4) - decidim-accountability (= 0.14.4) - decidim-admin (= 0.14.4) - decidim-api (= 0.14.4) - decidim-assemblies (= 0.14.4) - decidim-blogs (= 0.14.4) - decidim-budgets (= 0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) - decidim-debates (= 0.14.4) - decidim-generators (= 0.14.4) - decidim-meetings (= 0.14.4) - decidim-pages (= 0.14.4) - decidim-participatory_processes (= 0.14.4) - decidim-proposals (= 0.14.4) - decidim-sortitions (= 0.14.4) - decidim-surveys (= 0.14.4) - decidim-system (= 0.14.4) - decidim-verifications (= 0.14.4) - decidim-accountability (0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim (0.18.0) + decidim-accountability (= 0.18.0) + decidim-admin (= 0.18.0) + decidim-api (= 0.18.0) + decidim-assemblies (= 0.18.0) + decidim-blogs (= 0.18.0) + decidim-budgets (= 0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) + decidim-debates (= 0.18.0) + decidim-forms (= 0.18.0) + decidim-generators (= 0.18.0) + decidim-meetings (= 0.18.0) + decidim-pages (= 0.18.0) + decidim-participatory_processes (= 0.18.0) + decidim-proposals (= 0.18.0) + decidim-sortitions (= 0.18.0) + decidim-surveys (= 0.18.0) + decidim-system (= 0.18.0) + decidim-verifications (= 0.18.0) + decidim-accountability (0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) kaminari (~> 1.0) searchlight (~> 4.1) - decidim-admin (0.14.4) + decidim-admin (0.18.0) active_link_to (~> 1.0) - decidim-core (= 0.14.4) - devise (~> 4.2) + decidim-core (= 0.18.0) + devise (~> 4.6) devise-i18n (~> 1.2) devise_invitable (~> 1.7) jquery-rails (~> 4.3) sassc (~> 1.12, >= 1.12.1) sassc-rails (~> 1.3) - decidim-api (0.14.4) - graphiql-rails (~> 1.4) - graphql (~> 1.6) + decidim-api (0.18.0) + graphiql-rails (~> 1.4, < 1.5) + graphql (~> 1.6, < 1.8.11) rack-cors (~> 1.0) sprockets-es6 (~> 0.9.2) - decidim-assemblies (0.14.4) - decidim-core (= 0.14.4) - decidim-blogs (0.14.4) - decidim-admin (= 0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim-assemblies (0.18.0) + decidim-core (= 0.18.0) + decidim-blogs (0.18.0) + decidim-admin (= 0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) httparty (~> 0.16.0) jquery-tmpl-rails (~> 1.1) kaminari (~> 1.0) - decidim-budgets (0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim-budgets (0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) kaminari (~> 1.0) searchlight (~> 4.1) - decidim-comments (0.14.4) - decidim-core (= 0.14.4) + decidim-comments (0.18.0) + decidim-core (= 0.18.0) jquery-rails (~> 4.0) - decidim-core (0.14.4) + decidim-core (0.18.0) active_link_to (~> 1.0) autoprefixer-rails (~> 8.0) + batch-loader (~> 1.2) carrierwave (~> 1.1) cells-erb (~> 0.1.0) cells-rails (~> 0.0.9) + charlock_holmes (>= 0.7.6) date_validator (~> 0.9.0) - decidim-api (= 0.14.4) - devise (~> 4.3) + decidim-api (= 0.18.0) + devise (~> 4.6) devise-i18n (~> 1.2) doorkeeper (~> 4.4) doorkeeper-i18n (~> 4.0) + etherpad-lite (~> 0.3) file_validators (~> 2.1) foundation-rails (~> 6.4, < 6.5) foundation_rails_helper (~> 3.0) @@ -217,7 +225,8 @@ GEM kaminari (~> 1.0) loofah (~> 2.0, >= 2.2.1) mini_magick (~> 4.8) - nobspw (~> 0.4.0) + mustache (~> 1.1.0) + nobspw (~> 0.6.0) omniauth (~> 1.6) omniauth-facebook (~> 4.0) omniauth-google-oauth2 (~> 0.5.0) @@ -226,12 +235,13 @@ GEM pg (>= 0.18, < 2) pg_search (~> 2.1, >= 2.1.0) premailer-rails (~> 1.9) + rack (>= 2.0.6) rack-attack (~> 5.2) rails (>= 5.2, < 6.0.x) rails-i18n (~> 5.0) - rectify (~> 0.11.0) + rectify (~> 0.13.0) redis (~> 4.0) - rubyzip (~> 1.2) + rubyzip (~> 1.2, >= 1.2.2) sassc (~> 1.12, >= 1.12.1) sassc-rails (~> 1.3) spreadsheet (~> 1.1) @@ -240,16 +250,16 @@ GEM uglifier (~> 4.0) valid_email2 (~> 2.1) wisper (~> 2.0) - decidim-debates (0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim-debates (0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) kaminari (~> 1.0) searchlight (~> 4.1) - decidim-dev (0.14.4) + decidim-dev (0.18.0) byebug (~> 10.0) capybara (~> 3.0) db-query-matchers (~> 0.9.0) - decidim (= 0.14.4) + decidim (= 0.18.0) erb_lint (~> 0.0.22) factory_bot_rails (~> 4.8) i18n-tasks (~> 0.9.18) @@ -268,71 +278,85 @@ GEM system_test_html_screenshots (~> 0.1.1) webmock (~> 3.0) wisper-rspec (~> 1.0) - decidim-generators (0.14.4) - decidim-core (= 0.14.4) - decidim-meetings (0.14.4) + decidim-forms (0.18.0) + decidim-core (= 0.18.0) + decidim-generators (0.18.0) + decidim-core (= 0.18.0) + decidim-meetings (0.18.0) cells-erb (~> 0.1.0) cells-rails (~> 0.0.9) - decidim-core (= 0.14.4) + decidim-core (= 0.18.0) + decidim-forms (= 0.18.0) httparty (~> 0.16.0) icalendar (~> 2.4) jquery-tmpl-rails (~> 1.1) kaminari (~> 1.0) searchlight (~> 4.1) - decidim-pages (0.14.4) - decidim-core (= 0.14.4) - decidim-participatory_processes (0.14.4) - decidim-core (= 0.14.4) - decidim-proposals (0.14.4) + decidim-pages (0.18.0) + decidim-core (= 0.18.0) + decidim-participatory_processes (0.18.0) + decidim-core (= 0.18.0) + decidim-proposals (0.18.0) + acts_as_list (>= 0.9) cells-erb (~> 0.1.0) cells-rails (~> 0.0.9) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) + diffy (>= 3.3) + doc2text (>= 0.4.0) kaminari (~> 1.0) ransack (~> 2.0) + redcarpet (>= 3.4) social-share-button (~> 1.0) - decidim-sortitions (0.14.4) - decidim-admin (= 0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) - decidim-proposals (= 0.14.4) + decidim-sortitions (0.18.0) + decidim-admin (= 0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) + decidim-proposals (= 0.18.0) social-share-button (~> 1.0) - decidim-surveys (0.14.4) - decidim-core (= 0.14.4) - decidim-system (0.14.4) + decidim-surveys (0.18.0) + decidim-core (= 0.18.0) + decidim-forms (= 0.18.0) + decidim-system (0.18.0) active_link_to (~> 1.0) - decidim-core (= 0.14.4) - devise (~> 4.2) + decidim-core (= 0.18.0) + devise (~> 4.6) devise-i18n (~> 1.2) devise_invitable (~> 1.7) jquery-rails (~> 4.3) sassc (~> 1.12, >= 1.12.1) sassc-rails (~> 1.3) - decidim-verifications (0.14.4) - decidim-core (= 0.14.4) + decidim-verifications (0.18.0) + decidim-core (= 0.18.0) declarative-builder (0.1.0) declarative-option (< 0.2.0) declarative-option (0.1.0) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) - devise (4.5.0) + devise (4.7.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) - railties (>= 4.1.0, < 6.0) + railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-i18n (1.7.0) - devise (>= 4.5) + devise-i18n (1.8.2) + devise (>= 4.6) devise_invitable (1.7.5) actionmailer (>= 4.1.0) devise (>= 4.0.0) diff-lcs (1.3) - docile (1.3.1) + diffy (3.3.0) + doc2text (0.4.1) + nokogiri (~> 1.8, >= 1.8.2) + rubyzip (~> 1.2, >= 1.2.2) + docile (1.3.2) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) doorkeeper (4.4.3) railties (>= 4.2) - doorkeeper-i18n (4.0.0) + doorkeeper-i18n (4.0.1) equalizer (0.0.11) - erb_lint (0.0.28) + erb_lint (0.0.30) activesupport better_html (~> 1.0.7) html_tokenizer @@ -341,7 +365,9 @@ GEM smart_properties erbse (0.1.3) temple - erubi (1.7.1) + erubi (1.9.0) + etherpad-lite (0.3.0) + rest-client (>= 1.6) execjs (2.7.0) factory_bot (4.11.1) activesupport (>= 3.0.0) @@ -350,7 +376,7 @@ GEM railties (>= 3.0.0) faker (1.9.1) i18n (>= 0.7) - faraday (0.15.3) + faraday (0.17.0) multipart-post (>= 1.2, < 3) ffi (1.9.25) file_validators (2.3.0) @@ -366,24 +392,27 @@ GEM activesupport (>= 4.1, < 6.0) railties (>= 4.1, < 6.0) tzinfo (~> 1.2, >= 1.2.2) - geocoder (1.5.0) - globalid (0.4.1) + geocoder (1.5.2) + globalid (0.4.2) activesupport (>= 4.2.0) - graphiql-rails (1.5.0) + graphiql-rails (1.4.11) railties sprockets-rails - graphql (1.8.11) - hashdiff (0.3.7) - hashie (3.5.7) - highline (2.0.0) + graphql (1.8.10) + hashdiff (0.3.9) + hashie (3.6.0) + highline (2.0.2) html_tokenizer (0.0.7) htmlentities (4.3.4) - httparty (0.16.3) + http-accept (1.7.0) + http-cookie (1.0.3) + domain_name (~> 0.5) + httparty (0.16.4) mime-types (~> 3.0) multi_xml (>= 0.5.2) i18n (1.1.1) concurrent-ruby (~> 1.0) - i18n-tasks (0.9.28) + i18n-tasks (0.9.29) activesupport (>= 4.0.2) ast (>= 2.1.0) erubi @@ -393,21 +422,21 @@ GEM rails-i18n rainbow (>= 2.2.2, < 4.0) terminal-table (>= 1.5.1) - icalendar (2.5.1) + icalendar (2.5.3) ice_cube (~> 0.16) ice_cube (0.16.3) ice_nine (0.11.2) invisible_captcha (0.10.0) rails (>= 3.2.0) - jaro_winkler (1.5.1-x86_64-darwin-17) - jquery-rails (4.3.3) + jaro_winkler (1.5.3) + jquery-rails (4.3.5) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) jquery-tmpl-rails (1.1.0) rails (>= 3.1.0) - json (2.1.0) - jwt (2.1.0) + json (2.2.0) + jwt (2.2.1) kaminari (1.1.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.1.1) @@ -423,7 +452,7 @@ GEM kramdown (1.17.0) ladle (1.0.1) open4 (~> 1.0) - loofah (2.2.3) + loofah (2.3.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -435,47 +464,49 @@ GEM mixlib-cli (~> 1.7, >= 1.7.0) mixlib-config (~> 2.2, >= 2.2.1) method_source (0.9.2) - mime-types (3.2.2) + mime-types (3.3) mime-types-data (~> 3.2015) - mime-types-data (3.2018.0812) - mimemagic (0.3.2) - mini_magick (4.9.2) - mini_mime (1.0.1) - mini_portile2 (2.3.0) - minitest (5.11.3) + mime-types-data (3.2019.0904) + mimemagic (0.3.3) + mini_magick (4.9.5) + mini_mime (1.0.2) + mini_portile2 (2.4.0) + minitest (5.12.2) mixlib-cli (1.7.0) - mixlib-config (2.2.13) + mixlib-config (2.2.18) tomlrb multi_json (1.13.1) multi_xml (0.6.0) - multipart-post (2.0.0) + multipart-post (2.1.1) + mustache (1.1.0) net-ldap (0.16.1) - nio4r (2.3.1) - nobspw (0.4.0) - nokogiri (1.8.5) - mini_portile2 (~> 2.3.0) + netrc (0.11.0) + nio4r (2.5.2) + nobspw (0.6.1) + nokogiri (1.10.4) + mini_portile2 (~> 2.4.0) oauth (0.5.4) - oauth2 (1.4.1) - faraday (>= 0.8, < 0.16.0) + oauth2 (1.4.2) + faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 3) - omniauth (1.8.1) - hashie (>= 3.4.6, < 3.6.0) + omniauth (1.9.0) + hashie (>= 3.4.6, < 3.7.0) rack (>= 1.6.2, < 3) omniauth-facebook (4.0.0) omniauth-oauth2 (~> 1.2) - omniauth-google-oauth2 (0.5.3) + omniauth-google-oauth2 (0.5.4) jwt (>= 1.5) omniauth (>= 1.1.1) omniauth-oauth2 (>= 1.5) omniauth-oauth (1.1.0) oauth omniauth (~> 1.0) - omniauth-oauth2 (1.5.0) + omniauth-oauth2 (1.6.0) oauth2 (~> 1.1) - omniauth (~> 1.2) + omniauth (~> 1.9) omniauth-twitter (1.4.0) omniauth-oauth (~> 1.1) rack @@ -485,109 +516,122 @@ GEM activerecord (>= 4.2, < 5.3) paper_trail-association_tracking (< 2) request_store (~> 1.1) - paper_trail-association_tracking (1.0.0) - parallel (1.12.1) - parser (2.5.3.0) + paper_trail-association_tracking (1.1.1) + parallel (1.18.0) + parser (2.6.5.0) ast (~> 2.4.0) - pg (1.1.3) - pg_search (2.1.2) + pg (1.1.4) + pg_search (2.3.0) activerecord (>= 4.2) activesupport (>= 4.2) - arel (>= 6) + polyamorous (2.3.0) + activerecord (>= 5.0) powerpack (0.1.2) premailer (1.11.1) addressable css_parser (>= 1.6.0) htmlentities (>= 4.0.0) - premailer-rails (1.10.2) - actionmailer (>= 3, < 6) + premailer-rails (1.10.3) + actionmailer (>= 3) premailer (~> 1.7, >= 1.7.9) - public_suffix (3.0.3) - puma (3.12.0) - rack (2.0.6) + pry (0.12.2) + coderay (~> 1.1.0) + method_source (~> 0.9.0) + pry-rails (0.3.9) + pry (>= 0.10.4) + public_suffix (4.0.1) + puma (3.12.1) + rack (2.0.7) rack-attack (5.4.2) rack (>= 1.0, < 3) - rack-cors (1.0.2) + rack-cors (1.0.3) rack-test (1.1.0) rack (>= 1.0, < 3) - rails (5.2.1) - actioncable (= 5.2.1) - actionmailer (= 5.2.1) - actionpack (= 5.2.1) - actionview (= 5.2.1) - activejob (= 5.2.1) - activemodel (= 5.2.1) - activerecord (= 5.2.1) - activestorage (= 5.2.1) - activesupport (= 5.2.1) + rails (5.2.3) + actioncable (= 5.2.3) + actionmailer (= 5.2.3) + actionpack (= 5.2.3) + actionview (= 5.2.3) + activejob (= 5.2.3) + activemodel (= 5.2.3) + activerecord (= 5.2.3) + activestorage (= 5.2.3) + activesupport (= 5.2.3) bundler (>= 1.3.0) - railties (= 5.2.1) + railties (= 5.2.3) sprockets-rails (>= 2.0.0) - rails-controller-testing (1.0.2) - actionpack (~> 5.x, >= 5.0.1) - actionview (~> 5.x, >= 5.0.1) - activesupport (~> 5.x) + rails-controller-testing (1.0.4) + actionpack (>= 5.0.1.x) + actionview (>= 5.0.1.x) + activesupport (>= 5.0.1.x) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.0.4) + rails-html-sanitizer (1.2.0) loofah (~> 2.2, >= 2.2.2) - rails-i18n (5.1.2) + rails-i18n (5.1.3) i18n (>= 0.7, < 2) railties (>= 5.0, < 6) - railties (5.2.1) - actionpack (= 5.2.1) - activesupport (= 5.2.1) + railties (5.2.3) + actionpack (= 5.2.3) + activesupport (= 5.2.3) method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) rainbow (3.0.0) - rake (12.3.1) - ransack (2.1.0) + rake (13.0.0) + ransack (2.3.0) actionpack (>= 5.0) activerecord (>= 5.0) activesupport (>= 5.0) i18n - rectify (0.11.0) + polyamorous (= 2.3.0) + rectify (0.13.0) activemodel (>= 4.1.0) activerecord (>= 4.1.0) activesupport (>= 4.1.0) virtus (~> 1.0.5) wisper (>= 1.6.1) - redis (4.0.3) - regexp_parser (1.3.0) + redcarpet (3.5.0) + redis (4.1.3) + regexp_parser (1.6.0) request_store (1.4.1) rack (>= 1.4) - responders (2.4.0) - actionpack (>= 4.2.0, < 5.3) - railties (>= 4.2.0, < 5.3) - rspec (3.8.0) - rspec-core (~> 3.8.0) - rspec-expectations (~> 3.8.0) - rspec-mocks (~> 3.8.0) + responders (3.0.0) + actionpack (>= 5.0) + railties (>= 5.0) + rest-client (2.1.0) + http-accept (>= 1.7.0, < 2.0) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 4.0) + netrc (~> 0.8) + rspec (3.9.0) + rspec-core (~> 3.9.0) + rspec-expectations (~> 3.9.0) + rspec-mocks (~> 3.9.0) rspec-cells (0.3.4) cells (>= 4.0.0, < 6.0.0) rspec-rails (~> 3.2) - rspec-core (3.8.0) - rspec-support (~> 3.8.0) - rspec-expectations (3.8.2) + rspec-core (3.9.0) + rspec-support (~> 3.9.0) + rspec-expectations (3.9.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.8.0) + rspec-support (~> 3.9.0) rspec-html-matchers (0.9.1) nokogiri (~> 1) rspec (>= 3.0.0.a, < 4) - rspec-mocks (3.8.0) + rspec-mocks (3.9.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.8.0) - rspec-rails (3.8.1) + rspec-support (~> 3.9.0) + rspec-rails (3.9.0) actionpack (>= 3.0) activesupport (>= 3.0) railties (>= 3.0) - rspec-core (~> 3.8.0) - rspec-expectations (~> 3.8.0) - rspec-mocks (~> 3.8.0) - rspec-support (~> 3.8.0) - rspec-support (3.8.0) + rspec-core (~> 3.9.0) + rspec-expectations (~> 3.9.0) + rspec-mocks (~> 3.9.0) + rspec-support (~> 3.9.0) + rspec-support (3.9.0) rspec_junit_formatter (0.3.0) rspec-core (>= 2, < 4, != 2.12.0) rubocop (0.58.2) @@ -600,10 +644,10 @@ GEM unicode-display_width (~> 1.0, >= 1.0.1) rubocop-rspec (1.30.0) rubocop (>= 0.58.0) - ruby-ole (1.2.12.1) - ruby-progressbar (1.10.0) - rubyzip (1.2.2) - safe_yaml (1.0.4) + ruby-ole (1.2.12.2) + ruby-progressbar (1.10.1) + rubyzip (1.3.0) + safe_yaml (1.0.5) sass (3.4.25) sassc (1.12.1) ffi (~> 1.9.6) @@ -616,18 +660,18 @@ GEM sprockets-rails tilt searchlight (4.1.0) - selenium-webdriver (3.141.0) - childprocess (~> 0.5) - rubyzip (~> 1.2, >= 1.2.2) - simplecov (0.16.1) + selenium-webdriver (3.142.6) + childprocess (>= 0.5, < 4.0) + rubyzip (>= 1.2.2) + simplecov (0.17.1) docile (~> 1.1) json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - smart_properties (1.13.1) - social-share-button (1.1.0) + smart_properties (1.15.0) + social-share-button (1.2.1) coffee-rails - spreadsheet (1.1.8) + spreadsheet (1.2.4) ruby-ole (>= 1.0) sprockets (3.7.2) concurrent-ruby (~> 1.0) @@ -640,24 +684,27 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) - system_test_html_screenshots (0.1.1) - actionpack (>= 5.2, < 6.0.x) - temple (0.8.0) + system_test_html_screenshots (0.1.2) + actionpack (>= 5.2, < 6.0.a) + temple (0.8.2) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thor (0.20.3) thread_safe (0.3.6) - tilt (2.0.8) - tomlrb (1.2.7) - truncato (0.7.10) + tilt (2.0.10) + tomlrb (1.2.8) + truncato (0.7.11) htmlentities (~> 4.3.1) - nokogiri (~> 1.8.0, >= 1.7.0) + nokogiri (>= 1.7.0, <= 2.0) tzinfo (1.2.5) thread_safe (~> 0.1) uber (0.1.0) - uglifier (4.1.19) + uglifier (4.2.0) execjs (>= 0.3.0, < 3) - unicode-display_width (1.4.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.6) + unicode-display_width (1.6.0) valid_email2 (2.3.1) activemodel (>= 3.2) mail (~> 2.5) @@ -670,13 +717,13 @@ GEM virtus (~> 1.0) warden (1.2.8) rack (>= 2.0.6) - webmock (3.4.2) + webmock (3.5.1) addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff - websocket-driver (0.7.0) + websocket-driver (0.7.1) websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.3) + websocket-extensions (0.1.4) wisper (2.0.0) wisper-rspec (1.1.0) xpath (3.2.0) @@ -686,11 +733,13 @@ PLATFORMS ruby DEPENDENCIES + decidim decidim-age_action_authorization! decidim-census! - decidim-dev (= 0.14.4) + decidim-dev (= 0.18.0) decidim-ldap! faker + pry-rails BUNDLED WITH - 1.16.4 + 1.17.3 diff --git a/decidim-census/app/commands/decidim/census/create_subcensus.rb b/decidim-census/app/commands/decidim/census/create_subcensus.rb new file mode 100644 index 00000000..75ee5cab --- /dev/null +++ b/decidim-census/app/commands/decidim/census/create_subcensus.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +module Decidim + module Census + class CreateSubcensus < Rectify::Command + + attr_reader :form + + def initialize(organization, form) + @organization = organization + @form = form + end + + def call + return broadcast(:invalid) if form.invalid? + + subcensus = Subcensus.create!(attributes) + + events = ImportSubcensusDocuments.call(subcensus, form.subcensus_file) + broadcast(:ok, subcensus, events[:ok]) + end + + private + + def attributes + { + participatory_process: find_participatory_process, + name: form.name + } + end + + def find_participatory_process + Decidim::ParticipatoryProcess.where(organization: @organization) + .find(form.participatory_process) + end + + end + end +end diff --git a/decidim-census/app/commands/decidim/census/import_subcensus_documents.rb b/decidim-census/app/commands/decidim/census/import_subcensus_documents.rb new file mode 100644 index 00000000..a8cb610e --- /dev/null +++ b/decidim-census/app/commands/decidim/census/import_subcensus_documents.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module Decidim + module Census + class ImportSubcensusDocuments < Rectify::Command + + def initialize(subcensus, documents_file) + @subcensus = subcensus + @documents_file = documents_file + end + + def call + return unless @documents_file.present? + + data = SubcensusCsvData.new(@documents_file.path) + @subcensus.documents.destroy_all + SubcensusDocument.insert_documents(@subcensus, data.values) + broadcast(:ok, data) + end + + end + end +end diff --git a/decidim-census/app/commands/decidim/census/update_subcensus.rb b/decidim-census/app/commands/decidim/census/update_subcensus.rb new file mode 100644 index 00000000..7b8dfede --- /dev/null +++ b/decidim-census/app/commands/decidim/census/update_subcensus.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +module Decidim + module Census + class UpdateSubcensus < Rectify::Command + + attr_reader :form + + def initialize(subcensus, organization, form) + @subcensus = subcensus + @form = form + @organization = organization + end + + def call + return broadcast(:invalid) if form.invalid? + + @subcensus.update_attributes!(attributes) + + events = ImportSubcensusDocuments.call(@subcensus, form.subcensus_file) + broadcast(:ok, events[:ok]) + end + + private + + def attributes + { + participatory_process: find_participatory_process, + name: form.name + } + end + + def find_participatory_process + Decidim::ParticipatoryProcess.where(organization: @organization) + .find(form.participatory_process) + end + + end + end +end diff --git a/decidim-census/app/controllers/decidim/census/admin/subcensuses_controller.rb b/decidim-census/app/controllers/decidim/census/admin/subcensuses_controller.rb new file mode 100644 index 00000000..83461efe --- /dev/null +++ b/decidim-census/app/controllers/decidim/census/admin/subcensuses_controller.rb @@ -0,0 +1,109 @@ +module Decidim + module Census + module Admin + class SubcensusesController < Decidim::Census::Admin::ApplicationController + + include Rectify::ControllerHelpers + + CENSUS_AUTHORIZATIONS = %w[diba_authorization_handler + census_authorization_handler].freeze + + before_action :show_instructions, + unless: :census_authorization_active_in_organization? + helper_method :query, :subcensuses, :participatory_processes + + def index + enforce_permission_to :create, :census + end + + def new + enforce_permission_to :create, :census + + @form = form(CreateSubcensusForm).instance + end + + def create + enforce_permission_to :create, :census + + @form = form(CreateSubcensusForm).from_params(params) + + CreateSubcensus.call(current_organization, @form) do + on(:ok) do |_subcensus, imported_data| + configure_flash_for(imported_data) + redirect_to decidim_census_admin.subcensuses_path + end + + on(:invalid) { render :new } + end + end + + def edit + enforce_permission_to :create, :census + + @form = form(SubcensusForm).from_model(load_subcensus) + end + + def update + enforce_permission_to :create, :census + + @form = form(SubcensusForm).from_params(params) + + UpdateSubcensus.call(load_subcensus, current_organization, @form) do + on(:ok) do |imported_data| + configure_flash_for(imported_data) + redirect_to decidim_census_admin.subcensuses_path + end + + on(:invalid) { render :edit } + end + end + + def destroy + enforce_permission_to :create, :census + + Subcensus.find(params[:id]).destroy + redirect_to decidim_census_admin.subcensuses_path, notice: t('.success') + end + + private + + def subcensuses + @subcensuses ||= query.result(distinct: true) + end + + def query + @query ||= subcensuses_scope.ransack(params[:q]) + end + + def subcensuses_scope + @subcensuses_scope ||= Decidim::Census::Subcensus.where( + decidim_participatory_process_id: participatory_processes + ) + end + + def participatory_processes + @participatory_processes ||= + ParticipatoryProcesses::OrganizationParticipatoryProcesses + .new(current_organization).query + end + + def load_subcensus + Decidim::Census::Subcensus.find(params[:id]) + end + + def census_authorization_active_in_organization? + (current_organization.available_authorizations & CENSUS_AUTHORIZATIONS).any? + end + + def configure_flash_for(imported_data) + return unless imported_data + + flash[:notice] = t('.success', count: imported_data.values.count, + errors: imported_data.errors.count) + expose(invalid_rows: imported_data.errors) + end + + end + end + end +end diff --git a/decidim-census/app/forms/decidim/census/create_subcensus_form.rb b/decidim-census/app/forms/decidim/census/create_subcensus_form.rb new file mode 100644 index 00000000..d0efb78e --- /dev/null +++ b/decidim-census/app/forms/decidim/census/create_subcensus_form.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module Decidim + module Census + class CreateSubcensusForm < SubcensusForm + + validates :subcensus_file, presence: true + + end + end +end diff --git a/decidim-census/app/forms/decidim/census/subcensus_form.rb b/decidim-census/app/forms/decidim/census/subcensus_form.rb new file mode 100644 index 00000000..fc145300 --- /dev/null +++ b/decidim-census/app/forms/decidim/census/subcensus_form.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +module Decidim + module Census + class SubcensusForm < Form + + mimic :subcensus + + attribute :name, String + attribute :participatory_process, Integer + attribute :subcensus_file + + validates :name, :participatory_process, presence: true + + def map_model(model) + self.participatory_process = model.decidim_participatory_process_id + end + + end + end +end diff --git a/decidim-census/app/models/decidim/census/status.rb b/decidim-census/app/models/decidim/census/status.rb index f2106563..5476fe16 100644 --- a/decidim-census/app/models/decidim/census/status.rb +++ b/decidim-census/app/models/decidim/census/status.rb @@ -1,4 +1,3 @@ - module Decidim module Census # Provides information about the current status of the census data diff --git a/decidim-census/app/models/decidim/census/subcensus.rb b/decidim-census/app/models/decidim/census/subcensus.rb new file mode 100644 index 00000000..794bf840 --- /dev/null +++ b/decidim-census/app/models/decidim/census/subcensus.rb @@ -0,0 +1,17 @@ +module Decidim + module Census + class Subcensus < ApplicationRecord + + belongs_to :participatory_process, foreign_key: :decidim_participatory_process_id, + class_name: 'Decidim::ParticipatoryProcess' + has_many :documents, class_name: 'Decidim::Census::SubcensusDocument', + foreign_key: :decidim_census_subcensus_id, + dependent: :destroy + + validates :name, presence: true + + attr_accessor :subcensus_file + + end + end +end diff --git a/decidim-census/app/models/decidim/census/subcensus_csv_data.rb b/decidim-census/app/models/decidim/census/subcensus_csv_data.rb new file mode 100644 index 00000000..3693415b --- /dev/null +++ b/decidim-census/app/models/decidim/census/subcensus_csv_data.rb @@ -0,0 +1,32 @@ +require 'csv' + +module Decidim + module Census + class SubcensusCsvData + + attr_reader :errors, :values + + def initialize(file) + @file = file + @errors = [] + @values = [] + + CSV.foreach(@file, headers: true, col_sep: ';') do |row| + process_row(row) + end + end + + private + + def process_row(row) + id_document = CensusDatum.normalize_and_encode_id_document(row[0]) + if id_document.present? + values << [id_document] + else + errors << { line: $., data: row } + end + end + + end + end +end diff --git a/decidim-census/app/models/decidim/census/subcensus_document.rb b/decidim-census/app/models/decidim/census/subcensus_document.rb new file mode 100644 index 00000000..ff052792 --- /dev/null +++ b/decidim-census/app/models/decidim/census/subcensus_document.rb @@ -0,0 +1,26 @@ +class Decidim::Census::SubcensusDocument < ApplicationRecord + + belongs_to :subcensus, foreign_key: :decidim_census_subcensus_id, + class_name: 'Decidim::Census::Subcensus' + + validates :id_document, presence: true + + private + + # Insert a collection of values + def self.insert_documents(subcensus, values) + return if values.blank? + + table_name = self.table_name + columns = %w[ + id_document decidim_census_subcensus_id created_at updated_at + ].join(',') + now = Time.current + values = values.map do |row| + "('#{row[0]}', '#{subcensus.id}', '#{now}', '#{now}')" + end + sql = "INSERT INTO #{table_name} (#{columns}) VALUES #{values.join(',')}" + ActiveRecord::Base.connection.execute(sql) + end + +end diff --git a/decidim-census/app/views/decidim/census/admin/subcensuses/_form.html.erb b/decidim-census/app/views/decidim/census/admin/subcensuses/_form.html.erb new file mode 100644 index 00000000..752e2d11 --- /dev/null +++ b/decidim-census/app/views/decidim/census/admin/subcensuses/_form.html.erb @@ -0,0 +1,23 @@ +
+
+

<%= t(".title") %>

+
+ +
+
+ <%= form.text_field :name, label: t("models.subcensus.fields.name", scope: "decidim.census.admin") %> +
+
+ <%= form.select :participatory_process, + participatory_processes.map { |p| [translated_attribute(p.title), p.id] }, + selected: form.object.participatory_process, + label: t("models.subcensus.fields.participatory_process", scope: "decidim.census.admin"), + include_blank: t(".select_participatory_process") %> +
+
+ <%= form.file_field :subcensus_file, + label: t("models.subcensus.fields.subcensus_file", scope: "decidim.census.admin") %> +
+
+ +
diff --git a/decidim-census/app/views/decidim/census/admin/subcensuses/edit.html.erb b/decidim-census/app/views/decidim/census/admin/subcensuses/edit.html.erb new file mode 100644 index 00000000..b5313b2e --- /dev/null +++ b/decidim-census/app/views/decidim/census/admin/subcensuses/edit.html.erb @@ -0,0 +1,9 @@ + +<%= decidim_form_for(@form, html: { class: "form edit_participatory_process" }, + url: decidim_census_admin.subcensus_path(@form), + method: :put) do |f| %> + <%= render partial: "form", object: f %> +
+ <%= f.submit t('.update'), class: "button" %> +
+<% end %> diff --git a/decidim-census/app/views/decidim/census/admin/subcensuses/index.html.erb b/decidim-census/app/views/decidim/census/admin/subcensuses/index.html.erb new file mode 100644 index 00000000..3af6e12f --- /dev/null +++ b/decidim-census/app/views/decidim/census/admin/subcensuses/index.html.erb @@ -0,0 +1,65 @@ +<%= render 'invalid_rows' if @invalid_rows.present? %> + +
+
+

+ <%= t("subcensus", scope: "decidim.census.admin.titles") %> + <%= link_to t(".new_subcensus"), + decidim_census_admin.new_subcensus_path, + class: "button tiny button--title" %> +

+
+
+
+ + + + + + + + + + + + <% subcensuses.each do |subcensus| %> + + + + + + + + <% end %> + +
+ <%= sort_link(query, :name, t("models.subcensus.fields.name", scope: "decidim.census.admin")) %> + + <%= sort_link(query, :participatory_process, t("models.subcensus.fields.participatory_process", scope: "decidim.census.admin")) %> + + <%= t("models.subcensus.fields.documents", scope: "decidim.census.admin") %> + + <%= sort_link(query, :created_at, t("models.subcensus.fields.created_at", scope: "decidim.census.admin"), default_order: :desc) %> +
+ <%= link_to subcensus.name, decidim_census_admin.edit_subcensus_path(subcensus) %>
+
+ <%= translated_attribute(subcensus.participatory_process.title) %> + + <%= subcensus.documents.count %> + + <%= l subcensus.created_at, format: :short %> + + <%= icon_link_to "pencil", + decidim_census_admin.edit_subcensus_path(subcensus), + t("actions.configure", scope: "decidim.admin"), + class: "action-icon--new" %> + + <%= icon_link_to "circle-x", decidim_census_admin.subcensus_path(subcensus), + t("actions.destroy", scope: "decidim.admin"), + class: "action-icon--remove", + method: :delete, + data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %> +
+
+
+
diff --git a/decidim-census/app/views/decidim/census/admin/subcensuses/new.html.erb b/decidim-census/app/views/decidim/census/admin/subcensuses/new.html.erb new file mode 100644 index 00000000..a8330c37 --- /dev/null +++ b/decidim-census/app/views/decidim/census/admin/subcensuses/new.html.erb @@ -0,0 +1,9 @@ + +<%= decidim_form_for(@form, html: { class: "form edit_participatory_process" }, + url: decidim_census_admin.subcensuses_path, + method: :post) do |f| %> + <%= render partial: "form", object: f %> +
+ <%= f.submit t('.create'), class: "button" %> +
+<% end %> diff --git a/decidim-census/config/locales/ca.yml b/decidim-census/config/locales/ca.yml index 6faa0696..7ebf1655 100644 --- a/decidim-census/config/locales/ca.yml +++ b/decidim-census/config/locales/ca.yml @@ -20,12 +20,15 @@ ca: birthdate: Data de naixement age: 'Edat mínima' max_age: 'Edat máxima' + subcensus: 'Subcens' census: errors: messages: not_censed: No hem pogut trobar el teu document d'identitat amb aquesta data de naixement al padró municipal. Si les dades són correctes i el problema persisteix, siusplau, posa't en contacte amb un administrador. younger_than_minimum_age: Hauries de ser major de %{age} anys admin: + titles: + subcensus: Subcensos destroy: title: Esborrar totes les dades del cens confirm: Aquesta acció no es pot desfer. Estàs segur/a que voleu continuar? @@ -38,6 +41,7 @@ ca: title: Necessites activar el mòdul de censos per a aquesta organització body: Per a això has d'entrar a l'administració del sistema i afegir l'autorització d'excel o la combinada a l'organització menu: + subcensus: Subcensos census: Pujar cens show: title: Dades del cens carregat @@ -53,3 +57,28 @@ ca: data: line: Línia data: Dades + models: + subcensus: + fields: + name: Nom + participatory_process: Proces Participatiu + subcensus_file: Arxiu excel .csv amb les dades del subcens + documents: Documents + created_at: Data de creació + subcensuses: + index: + new_subcensus: Nou Subcens + confirm: Aquesta acció no es pot desfer. Estàs segur/a que voleu continuar? + form: + title: Subcensos + select_participatory_process: Seleccionar Proces Participatiu + edit: + update: Actualitzar + update: + success: S'han guardat correctament el subcens i s'han importat amb èxit %{count} documents (%{errors} errors) + create: + success: S'han creat correctament el subcens i s'han importat amb èxit %{count} documents (%{errors} errors) + new: + create: Crear + destroy: + success: S'han esborrat totes les dades del subcens diff --git a/decidim-census/config/locales/en.yml b/decidim-census/config/locales/en.yml index 3afc57dd..151345cb 100644 --- a/decidim-census/config/locales/en.yml +++ b/decidim-census/config/locales/en.yml @@ -20,12 +20,15 @@ en: birthdate: Birthdate age: 'Minimum age' age: 'Maximum age' + subcensus: 'Subcensus' census: errors: messages: not_censed: We could not find your document ID matching with this birthdate in our Census. If the data entered is correct and the problem persists, please, contact an administrator. younger_than_minimum_age: You should be older than %{age} years admin: + titles: + subcensus: Subcensus destroy: title: Delete all census data confirm: Delete all the census can not be undone. Are you sure you want to continue? @@ -38,6 +41,7 @@ en: title: You need to activate the census module for this organization body: To do this you must enter system administration and add the excel or combined authorizations to the organization menu: + subcensus: Subcensus census: Upload census show: title: Current census data @@ -53,3 +57,28 @@ en: data: line: Line data: Data + models: + subcensus: + fields: + name: Name + participatory_process: Participatory Process + subcensus_file: Excel .csv file with subcensus data + documents: Documents + created_at: Created at + subcensuses: + index: + new_subcensus: New Subcensus + confirm: Delete the subcensus can not be undone. Are you sure you want to continue? + form: + title: Subcensus + select_participatory_process: Select Participatory Process + edit: + update: Update + update: + success: Successfully updated and imported %{count} items (%{errors} errors) + create: + success: Successfully created and imported %{count} items (%{errors} errors) + new: + create: Create + destroy: + success: All subcensus data have been deleted diff --git a/decidim-census/config/locales/es.yml b/decidim-census/config/locales/es.yml index 0c4f906d..67ec579e 100644 --- a/decidim-census/config/locales/es.yml +++ b/decidim-census/config/locales/es.yml @@ -20,12 +20,15 @@ es: birthdate: Fecha de nacimiento age: 'Edad mínima' max_age: 'Edad máxima' + subcensus: 'Subcenso' census: errors: messages: not_censed: No hemos podido encontrar tu documento de identidad con esta fecha de nacimiento en el padrón municipal. Si tus datos son correctos y el problema persiste, por favor, ponte en contacto con un administrador younger_than_minimum_age: Deberías ser mayor de %{age} años admin: + titles: + subcensus: Subcensos destroy: title: Borrar todos los datos de censo confirm: Borrar el censo no se puede deshacer. ¿Estás seguro/a que deseas continuar? @@ -38,6 +41,7 @@ es: title: Necesitas activar el módulo de censos para esta organización body: Para ello debes entrar en administración del sistema y añadir la autorización de excel o la combinada en la organización menu: + subcensus: Subcensos census: Subir censo show: title: Datos de censo actuales @@ -53,3 +57,28 @@ es: data: line: Línea data: Datos + models: + subcensus: + fields: + name: Nombre + participatory_process: Proceso Participativo + subcensus_file: Archivo excel .csv con los datos del subcenso + documents: Documentos + created_at: Fecha de Creación + subcensuses: + index: + new_subcensus: Nuevo Subcenso + confirm: Borrar el subcenso no se puede deshacer. ¿Estás seguro/a que deseas continuar? + form: + title: Subcensos + select_participatory_process: Seleccionar Proceso Participativo + edit: + update: Actualizar + update: + success: Subcenso guardado correctamente y se han importado con éxito %{count} documentos (%{errors} errors) + create: + success: Subcenso creado correctamente y se han importado con éxito %{count} documentos (%{errors} errors) + new: + create: Crear + destroy: + success: Se han borrado todos los datos del subcenso diff --git a/decidim-census/db/migrate/20191008121918_create_decidim_census_subcensus.rb b/decidim-census/db/migrate/20191008121918_create_decidim_census_subcensus.rb new file mode 100644 index 00000000..8b1841b3 --- /dev/null +++ b/decidim-census/db/migrate/20191008121918_create_decidim_census_subcensus.rb @@ -0,0 +1,12 @@ +class CreateDecidimCensusSubcensus < ActiveRecord::Migration[5.2] + + def change + create_table :decidim_census_subcensuses do |t| + t.references :decidim_participatory_process, index: { name: 'index_decidim_census_subcensuses_on_participatory_process_id' } + t.string :name + + t.timestamps + end + end + +end diff --git a/decidim-census/db/migrate/20191009140338_create_decidim_census_subcensus_documents.rb b/decidim-census/db/migrate/20191009140338_create_decidim_census_subcensus_documents.rb new file mode 100644 index 00000000..a6203607 --- /dev/null +++ b/decidim-census/db/migrate/20191009140338_create_decidim_census_subcensus_documents.rb @@ -0,0 +1,12 @@ +class CreateDecidimCensusSubcensusDocuments < ActiveRecord::Migration[5.2] + + def change + create_table :decidim_census_subcensus_documents do |t| + t.references :decidim_census_subcensuses, index: { name: 'index_census_subcensus_documents_on_census_subcensus_id' } + t.string :id_document + + t.timestamps + end + end + +end diff --git a/decidim-census/lib/decidim/census.rb b/decidim-census/lib/decidim/census.rb index 5729e4cb..834d4ab6 100644 --- a/decidim-census/lib/decidim/census.rb +++ b/decidim-census/lib/decidim/census.rb @@ -1,5 +1,6 @@ # frozen_string_literal: true +require 'decidim' require 'decidim/census/admin' require 'decidim/census/engine' require 'decidim/census/admin_engine' diff --git a/decidim-census/lib/decidim/census/admin_engine.rb b/decidim-census/lib/decidim/census/admin_engine.rb index ae15af39..5a77ad4a 100644 --- a/decidim-census/lib/decidim/census/admin_engine.rb +++ b/decidim-census/lib/decidim/census/admin_engine.rb @@ -8,6 +8,7 @@ class AdminEngine < ::Rails::Engine routes do resource :censuses, only: %i(show create destroy) + resources :subcensuses, except: %i(show) end initializer 'decidim_census.add_admin_menu' do @@ -21,6 +22,16 @@ class AdminEngine < ::Rails::Engine :census, {}, [Decidim::Census::Admin::Permissions]) + + menu.item I18n.t('menu.subcensus', scope: 'decidim.census.admin'), + decidim_census_admin.subcensuses_path, + icon_name: 'spreadsheet', + position: 7.1, + active: :inclusive, + if: allowed_to?(:create, + :census, + {}, + [Decidim::Census::Admin::Permissions]) end end diff --git a/decidim-census/lib/decidim/census/engine.rb b/decidim-census/lib/decidim/census/engine.rb index 94550840..e273ddb3 100644 --- a/decidim-census/lib/decidim/census/engine.rb +++ b/decidim-census/lib/decidim/census/engine.rb @@ -10,6 +10,7 @@ class Engine < ::Rails::Engine initializer 'decidim_census.add_irregular_inflection' do |_app| ActiveSupport::Inflector.inflections(:en) do |inflect| inflect.irregular 'census', 'census' + inflect.irregular 'subcensus', 'subcensuses' end end diff --git a/decidim-census/spec/factories/subcensus.rb b/decidim-census/spec/factories/subcensus.rb new file mode 100644 index 00000000..8b7152b1 --- /dev/null +++ b/decidim-census/spec/factories/subcensus.rb @@ -0,0 +1,6 @@ +FactoryBot.define do + factory :subcensus, class: Decidim::Census::Subcensus do + participatory_process + name { 'Subcensus A' } + end +end diff --git a/decidim-census/spec/factories/subcensus_document.rb b/decidim-census/spec/factories/subcensus_document.rb new file mode 100644 index 00000000..93bad3d8 --- /dev/null +++ b/decidim-census/spec/factories/subcensus_document.rb @@ -0,0 +1,6 @@ +FactoryBot.define do + factory :subcensus_document, class: Decidim::Census::SubcensusDocument do + id_document { '123456789A' } + subcensus + end +end diff --git a/decidim-census/spec/fixtures/files/subcensus_data1.csv b/decidim-census/spec/fixtures/files/subcensus_data1.csv new file mode 100644 index 00000000..c713bf9f --- /dev/null +++ b/decidim-census/spec/fixtures/files/subcensus_data1.csv @@ -0,0 +1,4 @@ +DNI| +AAA| +2222-b| +33 33 C| diff --git a/decidim-census/spec/fixtures/files/subcensus_data2.csv b/decidim-census/spec/fixtures/files/subcensus_data2.csv new file mode 100644 index 00000000..2398794f --- /dev/null +++ b/decidim-census/spec/fixtures/files/subcensus_data2.csv @@ -0,0 +1,4 @@ +DNI +123123 +222b +3414 a diff --git a/decidim-census/spec/models/subcensus_document_spec.rb b/decidim-census/spec/models/subcensus_document_spec.rb new file mode 100644 index 00000000..fae45d6d --- /dev/null +++ b/decidim-census/spec/models/subcensus_document_spec.rb @@ -0,0 +1,7 @@ +require 'spec_helper' + +RSpec.describe Decidim::Census::SubcensusDocument, type: :model do + it { expect(FactoryBot.build(:subcensus_document)).to be_valid } + it { expect(FactoryBot.build(:subcensus_document, id_document: nil)).not_to be_valid } + it { expect(FactoryBot.build(:subcensus_document, subcensus: nil)).not_to be_valid } +end diff --git a/decidim-census/spec/models/subcensus_spec.rb b/decidim-census/spec/models/subcensus_spec.rb new file mode 100644 index 00000000..cdcef90a --- /dev/null +++ b/decidim-census/spec/models/subcensus_spec.rb @@ -0,0 +1,7 @@ +require 'spec_helper' + +RSpec.describe Decidim::Census::Subcensus, type: :model do + it { expect(FactoryBot.build(:subcensus)).to be_valid } + it { expect(FactoryBot.build(:subcensus, participatory_process: nil)).not_to be_valid } + it { expect(FactoryBot.build(:subcensus, name: nil)).not_to be_valid } +end diff --git a/decidim-census/spec/spec_helper.rb b/decidim-census/spec/spec_helper.rb index fd37b16a..44e73226 100644 --- a/decidim-census/spec/spec_helper.rb +++ b/decidim-census/spec/spec_helper.rb @@ -1,5 +1,7 @@ ENV['RAILS_ENV'] ||= 'test' +require 'pry' +require 'decidim' require 'decidim/dev' require 'decidim/admin' require 'decidim/core' diff --git a/decidim-diba_census_api/config/locales/ca.yml b/decidim-diba_census_api/config/locales/ca.yml index c1f87c2c..e9f1909b 100644 --- a/decidim-diba_census_api/config/locales/ca.yml +++ b/decidim-diba_census_api/config/locales/ca.yml @@ -20,6 +20,7 @@ ca: fields: birthdate: Data de naixement age: Edat mínima + max_age: Edat màxima document_types: dni: 'DNI' nie: 'NIE' diff --git a/decidim-diba_census_api/config/locales/en.yml b/decidim-diba_census_api/config/locales/en.yml index 123b4470..c2801e81 100644 --- a/decidim-diba_census_api/config/locales/en.yml +++ b/decidim-diba_census_api/config/locales/en.yml @@ -20,6 +20,7 @@ en: fields: birthdate: Birth date age: Minimum age + max_age: Maximum age document_types: dni: DNI nie: NIE diff --git a/decidim-diba_census_api/config/locales/es.yml b/decidim-diba_census_api/config/locales/es.yml index 150606f8..1260bcb5 100644 --- a/decidim-diba_census_api/config/locales/es.yml +++ b/decidim-diba_census_api/config/locales/es.yml @@ -20,6 +20,7 @@ es: fields: birthdate: Fecha de nacimiento age: Edad mínima + max_age: Edad máxima document_types: dni: DNI nie: NIE diff --git a/decidim-ldap/Gemfile.lock b/decidim-ldap/Gemfile.lock index 3c574d2a..ff3d5eaa 100644 --- a/decidim-ldap/Gemfile.lock +++ b/decidim-ldap/Gemfile.lock @@ -1,33 +1,33 @@ PATH remote: . specs: - decidim-ldap (0.14.4) - decidim-core (= 0.14.4) + decidim-ldap (0.18.0) + decidim-core (= 0.18.0) ladle net-ldap GEM remote: https://rubygems.org/ specs: - actioncable (5.2.1) - actionpack (= 5.2.1) + actioncable (5.2.3) + actionpack (= 5.2.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailer (5.2.1) - actionpack (= 5.2.1) - actionview (= 5.2.1) - activejob (= 5.2.1) + actionmailer (5.2.3) + actionpack (= 5.2.3) + actionview (= 5.2.3) + activejob (= 5.2.3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.2.1) - actionview (= 5.2.1) - activesupport (= 5.2.1) + actionpack (5.2.3) + actionview (= 5.2.3) + activesupport (= 5.2.3) rack (~> 2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.1) - activesupport (= 5.2.1) + actionview (5.2.3) + activesupport (= 5.2.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -35,26 +35,28 @@ GEM active_link_to (1.0.5) actionpack addressable - activejob (5.2.1) - activesupport (= 5.2.1) + activejob (5.2.3) + activesupport (= 5.2.3) globalid (>= 0.3.6) - activemodel (5.2.1) - activesupport (= 5.2.1) - activerecord (5.2.1) - activemodel (= 5.2.1) - activesupport (= 5.2.1) + activemodel (5.2.3) + activesupport (= 5.2.3) + activerecord (5.2.3) + activemodel (= 5.2.3) + activesupport (= 5.2.3) arel (>= 9.0) - activestorage (5.2.1) - actionpack (= 5.2.1) - activerecord (= 5.2.1) + activestorage (5.2.3) + actionpack (= 5.2.3) + activerecord (= 5.2.3) marcel (~> 0.3.1) - activesupport (5.2.1) + activesupport (5.2.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) - addressable (2.5.2) - public_suffix (>= 2.0.2, < 4.0) + acts_as_list (1.0.0) + activerecord (>= 4.2) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) arel (9.0.0) ast (2.4.0) autoprefixer-rails (8.6.5) @@ -67,8 +69,9 @@ GEM babel-transpiler (0.7.0) babel-source (>= 4.0, < 6) execjs (~> 2.0) - bcrypt (3.1.12) - better_html (1.0.11) + batch-loader (1.4.1) + bcrypt (3.1.13) + better_html (1.0.14) actionview (>= 4.0) activesupport (>= 4.0) ast (~> 2.0) @@ -78,15 +81,15 @@ GEM smart_properties builder (3.2.3) byebug (10.0.2) - capybara (3.11.0) + capybara (3.29.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) rack (>= 1.6.0) rack-test (>= 0.6.3) - regexp_parser (~> 1.2) + regexp_parser (~> 1.5) xpath (~> 3.2) - carrierwave (1.2.3) + carrierwave (1.3.1) activemodel (>= 4.0.0) activesupport (>= 4.0.0) mime-types (>= 1.16) @@ -101,13 +104,13 @@ GEM cells-rails (0.0.9) actionpack (>= 3.0) cells (>= 4.1.6, < 5.0.0) - childprocess (0.9.0) - ffi (~> 1.0, >= 1.0.11) + charlock_holmes (0.7.6) + childprocess (3.0.0) coercible (1.0.0) descendants_tracker (~> 0.0.1) - coffee-rails (4.2.2) + coffee-rails (5.0.0) coffee-script (>= 2.2.0) - railties (>= 4.0.0) + railties (>= 5.2.0) coffee-script (2.4.1) coffee-script-source execjs @@ -116,7 +119,7 @@ GEM crack (0.4.3) safe_yaml (~> 1.0.0) crass (1.0.4) - css_parser (1.6.0) + css_parser (1.7.0) addressable date_validator (0.9.0) activemodel @@ -124,73 +127,77 @@ GEM db-query-matchers (0.9.0) activesupport (>= 4.0, <= 6.0) rspec (~> 3.0) - decidim (0.14.4) - decidim-accountability (= 0.14.4) - decidim-admin (= 0.14.4) - decidim-api (= 0.14.4) - decidim-assemblies (= 0.14.4) - decidim-blogs (= 0.14.4) - decidim-budgets (= 0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) - decidim-debates (= 0.14.4) - decidim-generators (= 0.14.4) - decidim-meetings (= 0.14.4) - decidim-pages (= 0.14.4) - decidim-participatory_processes (= 0.14.4) - decidim-proposals (= 0.14.4) - decidim-sortitions (= 0.14.4) - decidim-surveys (= 0.14.4) - decidim-system (= 0.14.4) - decidim-verifications (= 0.14.4) - decidim-accountability (0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim (0.18.0) + decidim-accountability (= 0.18.0) + decidim-admin (= 0.18.0) + decidim-api (= 0.18.0) + decidim-assemblies (= 0.18.0) + decidim-blogs (= 0.18.0) + decidim-budgets (= 0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) + decidim-debates (= 0.18.0) + decidim-forms (= 0.18.0) + decidim-generators (= 0.18.0) + decidim-meetings (= 0.18.0) + decidim-pages (= 0.18.0) + decidim-participatory_processes (= 0.18.0) + decidim-proposals (= 0.18.0) + decidim-sortitions (= 0.18.0) + decidim-surveys (= 0.18.0) + decidim-system (= 0.18.0) + decidim-verifications (= 0.18.0) + decidim-accountability (0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) kaminari (~> 1.0) searchlight (~> 4.1) - decidim-admin (0.14.4) + decidim-admin (0.18.0) active_link_to (~> 1.0) - decidim-core (= 0.14.4) - devise (~> 4.2) + decidim-core (= 0.18.0) + devise (~> 4.6) devise-i18n (~> 1.2) devise_invitable (~> 1.7) jquery-rails (~> 4.3) sassc (~> 1.12, >= 1.12.1) sassc-rails (~> 1.3) - decidim-api (0.14.4) - graphiql-rails (~> 1.4) - graphql (~> 1.6) + decidim-api (0.18.0) + graphiql-rails (~> 1.4, < 1.5) + graphql (~> 1.6, < 1.8.11) rack-cors (~> 1.0) sprockets-es6 (~> 0.9.2) - decidim-assemblies (0.14.4) - decidim-core (= 0.14.4) - decidim-blogs (0.14.4) - decidim-admin (= 0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim-assemblies (0.18.0) + decidim-core (= 0.18.0) + decidim-blogs (0.18.0) + decidim-admin (= 0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) httparty (~> 0.16.0) jquery-tmpl-rails (~> 1.1) kaminari (~> 1.0) - decidim-budgets (0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim-budgets (0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) kaminari (~> 1.0) searchlight (~> 4.1) - decidim-comments (0.14.4) - decidim-core (= 0.14.4) + decidim-comments (0.18.0) + decidim-core (= 0.18.0) jquery-rails (~> 4.0) - decidim-core (0.14.4) + decidim-core (0.18.0) active_link_to (~> 1.0) autoprefixer-rails (~> 8.0) + batch-loader (~> 1.2) carrierwave (~> 1.1) cells-erb (~> 0.1.0) cells-rails (~> 0.0.9) + charlock_holmes (>= 0.7.6) date_validator (~> 0.9.0) - decidim-api (= 0.14.4) - devise (~> 4.3) + decidim-api (= 0.18.0) + devise (~> 4.6) devise-i18n (~> 1.2) doorkeeper (~> 4.4) doorkeeper-i18n (~> 4.0) + etherpad-lite (~> 0.3) file_validators (~> 2.1) foundation-rails (~> 6.4, < 6.5) foundation_rails_helper (~> 3.0) @@ -201,7 +208,8 @@ GEM kaminari (~> 1.0) loofah (~> 2.0, >= 2.2.1) mini_magick (~> 4.8) - nobspw (~> 0.4.0) + mustache (~> 1.1.0) + nobspw (~> 0.6.0) omniauth (~> 1.6) omniauth-facebook (~> 4.0) omniauth-google-oauth2 (~> 0.5.0) @@ -210,12 +218,13 @@ GEM pg (>= 0.18, < 2) pg_search (~> 2.1, >= 2.1.0) premailer-rails (~> 1.9) + rack (>= 2.0.6) rack-attack (~> 5.2) rails (>= 5.2, < 6.0.x) rails-i18n (~> 5.0) - rectify (~> 0.11.0) + rectify (~> 0.13.0) redis (~> 4.0) - rubyzip (~> 1.2) + rubyzip (~> 1.2, >= 1.2.2) sassc (~> 1.12, >= 1.12.1) sassc-rails (~> 1.3) spreadsheet (~> 1.1) @@ -224,16 +233,16 @@ GEM uglifier (~> 4.0) valid_email2 (~> 2.1) wisper (~> 2.0) - decidim-debates (0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim-debates (0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) kaminari (~> 1.0) searchlight (~> 4.1) - decidim-dev (0.14.4) + decidim-dev (0.18.0) byebug (~> 10.0) capybara (~> 3.0) db-query-matchers (~> 0.9.0) - decidim (= 0.14.4) + decidim (= 0.18.0) erb_lint (~> 0.0.22) factory_bot_rails (~> 4.8) i18n-tasks (~> 0.9.18) @@ -252,71 +261,85 @@ GEM system_test_html_screenshots (~> 0.1.1) webmock (~> 3.0) wisper-rspec (~> 1.0) - decidim-generators (0.14.4) - decidim-core (= 0.14.4) - decidim-meetings (0.14.4) + decidim-forms (0.18.0) + decidim-core (= 0.18.0) + decidim-generators (0.18.0) + decidim-core (= 0.18.0) + decidim-meetings (0.18.0) cells-erb (~> 0.1.0) cells-rails (~> 0.0.9) - decidim-core (= 0.14.4) + decidim-core (= 0.18.0) + decidim-forms (= 0.18.0) httparty (~> 0.16.0) icalendar (~> 2.4) jquery-tmpl-rails (~> 1.1) kaminari (~> 1.0) searchlight (~> 4.1) - decidim-pages (0.14.4) - decidim-core (= 0.14.4) - decidim-participatory_processes (0.14.4) - decidim-core (= 0.14.4) - decidim-proposals (0.14.4) + decidim-pages (0.18.0) + decidim-core (= 0.18.0) + decidim-participatory_processes (0.18.0) + decidim-core (= 0.18.0) + decidim-proposals (0.18.0) + acts_as_list (>= 0.9) cells-erb (~> 0.1.0) cells-rails (~> 0.0.9) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) + diffy (>= 3.3) + doc2text (>= 0.4.0) kaminari (~> 1.0) ransack (~> 2.0) + redcarpet (>= 3.4) social-share-button (~> 1.0) - decidim-sortitions (0.14.4) - decidim-admin (= 0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) - decidim-proposals (= 0.14.4) + decidim-sortitions (0.18.0) + decidim-admin (= 0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) + decidim-proposals (= 0.18.0) social-share-button (~> 1.0) - decidim-surveys (0.14.4) - decidim-core (= 0.14.4) - decidim-system (0.14.4) + decidim-surveys (0.18.0) + decidim-core (= 0.18.0) + decidim-forms (= 0.18.0) + decidim-system (0.18.0) active_link_to (~> 1.0) - decidim-core (= 0.14.4) - devise (~> 4.2) + decidim-core (= 0.18.0) + devise (~> 4.6) devise-i18n (~> 1.2) devise_invitable (~> 1.7) jquery-rails (~> 4.3) sassc (~> 1.12, >= 1.12.1) sassc-rails (~> 1.3) - decidim-verifications (0.14.4) - decidim-core (= 0.14.4) + decidim-verifications (0.18.0) + decidim-core (= 0.18.0) declarative-builder (0.1.0) declarative-option (< 0.2.0) declarative-option (0.1.0) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) - devise (4.5.0) + devise (4.7.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) - railties (>= 4.1.0, < 6.0) + railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-i18n (1.7.0) - devise (>= 4.5) + devise-i18n (1.8.2) + devise (>= 4.6) devise_invitable (1.7.5) actionmailer (>= 4.1.0) devise (>= 4.0.0) diff-lcs (1.3) - docile (1.3.1) + diffy (3.3.0) + doc2text (0.4.1) + nokogiri (~> 1.8, >= 1.8.2) + rubyzip (~> 1.2, >= 1.2.2) + docile (1.3.2) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) doorkeeper (4.4.3) railties (>= 4.2) - doorkeeper-i18n (4.0.0) + doorkeeper-i18n (4.0.1) equalizer (0.0.11) - erb_lint (0.0.28) + erb_lint (0.0.30) activesupport better_html (~> 1.0.7) html_tokenizer @@ -325,7 +348,9 @@ GEM smart_properties erbse (0.1.3) temple - erubi (1.7.1) + erubi (1.9.0) + etherpad-lite (0.3.0) + rest-client (>= 1.6) execjs (2.7.0) factory_bot (4.11.1) activesupport (>= 3.0.0) @@ -334,7 +359,7 @@ GEM railties (>= 3.0.0) faker (1.9.1) i18n (>= 0.7) - faraday (0.15.3) + faraday (0.17.0) multipart-post (>= 1.2, < 3) ffi (1.9.25) file_validators (2.3.0) @@ -350,24 +375,27 @@ GEM activesupport (>= 4.1, < 6.0) railties (>= 4.1, < 6.0) tzinfo (~> 1.2, >= 1.2.2) - geocoder (1.5.0) - globalid (0.4.1) + geocoder (1.5.2) + globalid (0.4.2) activesupport (>= 4.2.0) - graphiql-rails (1.5.0) + graphiql-rails (1.4.11) railties sprockets-rails - graphql (1.8.11) - hashdiff (0.3.7) - hashie (3.5.7) - highline (2.0.0) + graphql (1.8.10) + hashdiff (0.3.9) + hashie (3.6.0) + highline (2.0.2) html_tokenizer (0.0.7) htmlentities (4.3.4) - httparty (0.16.3) + http-accept (1.7.0) + http-cookie (1.0.3) + domain_name (~> 0.5) + httparty (0.16.4) mime-types (~> 3.0) multi_xml (>= 0.5.2) i18n (1.1.1) concurrent-ruby (~> 1.0) - i18n-tasks (0.9.28) + i18n-tasks (0.9.29) activesupport (>= 4.0.2) ast (>= 2.1.0) erubi @@ -377,21 +405,21 @@ GEM rails-i18n rainbow (>= 2.2.2, < 4.0) terminal-table (>= 1.5.1) - icalendar (2.5.1) + icalendar (2.5.3) ice_cube (~> 0.16) ice_cube (0.16.3) ice_nine (0.11.2) invisible_captcha (0.10.0) rails (>= 3.2.0) - jaro_winkler (1.5.1) - jquery-rails (4.3.3) + jaro_winkler (1.5.3) + jquery-rails (4.3.5) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) jquery-tmpl-rails (1.1.0) rails (>= 3.1.0) - json (2.1.0) - jwt (2.1.0) + json (2.2.0) + jwt (2.2.1) kaminari (1.1.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.1.1) @@ -407,7 +435,7 @@ GEM kramdown (1.17.0) ladle (1.0.1) open4 (~> 1.0) - loofah (2.2.3) + loofah (2.3.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -419,47 +447,49 @@ GEM mixlib-cli (~> 1.7, >= 1.7.0) mixlib-config (~> 2.2, >= 2.2.1) method_source (0.9.2) - mime-types (3.2.2) + mime-types (3.3) mime-types-data (~> 3.2015) - mime-types-data (3.2018.0812) - mimemagic (0.3.2) - mini_magick (4.9.2) - mini_mime (1.0.1) - mini_portile2 (2.3.0) - minitest (5.11.3) + mime-types-data (3.2019.0904) + mimemagic (0.3.3) + mini_magick (4.9.5) + mini_mime (1.0.2) + mini_portile2 (2.4.0) + minitest (5.12.2) mixlib-cli (1.7.0) - mixlib-config (2.2.13) + mixlib-config (2.2.18) tomlrb multi_json (1.13.1) multi_xml (0.6.0) - multipart-post (2.0.0) + multipart-post (2.1.1) + mustache (1.1.0) net-ldap (0.16.1) - nio4r (2.3.1) - nobspw (0.4.0) - nokogiri (1.8.5) - mini_portile2 (~> 2.3.0) + netrc (0.11.0) + nio4r (2.5.2) + nobspw (0.6.1) + nokogiri (1.10.4) + mini_portile2 (~> 2.4.0) oauth (0.5.4) - oauth2 (1.4.1) - faraday (>= 0.8, < 0.16.0) + oauth2 (1.4.2) + faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 3) - omniauth (1.8.1) - hashie (>= 3.4.6, < 3.6.0) + omniauth (1.9.0) + hashie (>= 3.4.6, < 3.7.0) rack (>= 1.6.2, < 3) omniauth-facebook (4.0.0) omniauth-oauth2 (~> 1.2) - omniauth-google-oauth2 (0.5.3) + omniauth-google-oauth2 (0.5.4) jwt (>= 1.5) omniauth (>= 1.1.1) omniauth-oauth2 (>= 1.5) omniauth-oauth (1.1.0) oauth omniauth (~> 1.0) - omniauth-oauth2 (1.5.0) + omniauth-oauth2 (1.6.0) oauth2 (~> 1.1) - omniauth (~> 1.2) + omniauth (~> 1.9) omniauth-twitter (1.4.0) omniauth-oauth (~> 1.1) rack @@ -469,109 +499,117 @@ GEM activerecord (>= 4.2, < 5.3) paper_trail-association_tracking (< 2) request_store (~> 1.1) - paper_trail-association_tracking (1.0.0) - parallel (1.12.1) - parser (2.5.3.0) + paper_trail-association_tracking (1.1.1) + parallel (1.18.0) + parser (2.6.5.0) ast (~> 2.4.0) - pg (1.1.3) - pg_search (2.1.2) + pg (1.1.4) + pg_search (2.3.0) activerecord (>= 4.2) activesupport (>= 4.2) - arel (>= 6) + polyamorous (2.3.0) + activerecord (>= 5.0) powerpack (0.1.2) premailer (1.11.1) addressable css_parser (>= 1.6.0) htmlentities (>= 4.0.0) - premailer-rails (1.10.2) - actionmailer (>= 3, < 6) + premailer-rails (1.10.3) + actionmailer (>= 3) premailer (~> 1.7, >= 1.7.9) - public_suffix (3.0.3) - puma (3.12.0) - rack (2.0.6) + public_suffix (4.0.1) + puma (3.12.1) + rack (2.0.7) rack-attack (5.4.2) rack (>= 1.0, < 3) - rack-cors (1.0.2) + rack-cors (1.0.3) rack-test (1.1.0) rack (>= 1.0, < 3) - rails (5.2.1) - actioncable (= 5.2.1) - actionmailer (= 5.2.1) - actionpack (= 5.2.1) - actionview (= 5.2.1) - activejob (= 5.2.1) - activemodel (= 5.2.1) - activerecord (= 5.2.1) - activestorage (= 5.2.1) - activesupport (= 5.2.1) + rails (5.2.3) + actioncable (= 5.2.3) + actionmailer (= 5.2.3) + actionpack (= 5.2.3) + actionview (= 5.2.3) + activejob (= 5.2.3) + activemodel (= 5.2.3) + activerecord (= 5.2.3) + activestorage (= 5.2.3) + activesupport (= 5.2.3) bundler (>= 1.3.0) - railties (= 5.2.1) + railties (= 5.2.3) sprockets-rails (>= 2.0.0) - rails-controller-testing (1.0.2) - actionpack (~> 5.x, >= 5.0.1) - actionview (~> 5.x, >= 5.0.1) - activesupport (~> 5.x) + rails-controller-testing (1.0.4) + actionpack (>= 5.0.1.x) + actionview (>= 5.0.1.x) + activesupport (>= 5.0.1.x) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.0.4) + rails-html-sanitizer (1.2.0) loofah (~> 2.2, >= 2.2.2) - rails-i18n (5.1.2) + rails-i18n (5.1.3) i18n (>= 0.7, < 2) railties (>= 5.0, < 6) - railties (5.2.1) - actionpack (= 5.2.1) - activesupport (= 5.2.1) + railties (5.2.3) + actionpack (= 5.2.3) + activesupport (= 5.2.3) method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) rainbow (3.0.0) - rake (12.3.1) - ransack (2.1.0) + rake (13.0.0) + ransack (2.3.0) actionpack (>= 5.0) activerecord (>= 5.0) activesupport (>= 5.0) i18n - rectify (0.11.0) + polyamorous (= 2.3.0) + rectify (0.13.0) activemodel (>= 4.1.0) activerecord (>= 4.1.0) activesupport (>= 4.1.0) virtus (~> 1.0.5) wisper (>= 1.6.1) - redis (4.0.3) - regexp_parser (1.3.0) + redcarpet (3.5.0) + redis (4.1.3) + regexp_parser (1.6.0) request_store (1.4.1) rack (>= 1.4) - responders (2.4.0) - actionpack (>= 4.2.0, < 5.3) - railties (>= 4.2.0, < 5.3) - rspec (3.8.0) - rspec-core (~> 3.8.0) - rspec-expectations (~> 3.8.0) - rspec-mocks (~> 3.8.0) + responders (3.0.0) + actionpack (>= 5.0) + railties (>= 5.0) + rest-client (2.1.0) + http-accept (>= 1.7.0, < 2.0) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 4.0) + netrc (~> 0.8) + rspec (3.9.0) + rspec-core (~> 3.9.0) + rspec-expectations (~> 3.9.0) + rspec-mocks (~> 3.9.0) rspec-cells (0.3.4) cells (>= 4.0.0, < 6.0.0) rspec-rails (~> 3.2) - rspec-core (3.8.0) - rspec-support (~> 3.8.0) - rspec-expectations (3.8.2) + rspec-core (3.9.0) + rspec-support (~> 3.9.0) + rspec-expectations (3.9.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.8.0) + rspec-support (~> 3.9.0) rspec-html-matchers (0.9.1) nokogiri (~> 1) rspec (>= 3.0.0.a, < 4) - rspec-mocks (3.8.0) + rspec-mocks (3.9.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.8.0) - rspec-rails (3.8.1) + rspec-support (~> 3.9.0) + rspec-rails (3.9.0) actionpack (>= 3.0) activesupport (>= 3.0) railties (>= 3.0) - rspec-core (~> 3.8.0) - rspec-expectations (~> 3.8.0) - rspec-mocks (~> 3.8.0) - rspec-support (~> 3.8.0) - rspec-support (3.8.0) + rspec-core (~> 3.9.0) + rspec-expectations (~> 3.9.0) + rspec-mocks (~> 3.9.0) + rspec-support (~> 3.9.0) + rspec-support (3.9.0) rspec_junit_formatter (0.3.0) rspec-core (>= 2, < 4, != 2.12.0) rubocop (0.58.2) @@ -584,10 +622,10 @@ GEM unicode-display_width (~> 1.0, >= 1.0.1) rubocop-rspec (1.30.0) rubocop (>= 0.58.0) - ruby-ole (1.2.12.1) - ruby-progressbar (1.10.0) - rubyzip (1.2.2) - safe_yaml (1.0.4) + ruby-ole (1.2.12.2) + ruby-progressbar (1.10.1) + rubyzip (1.3.0) + safe_yaml (1.0.5) sass (3.4.25) sassc (1.12.1) ffi (~> 1.9.6) @@ -600,18 +638,18 @@ GEM sprockets-rails tilt searchlight (4.1.0) - selenium-webdriver (3.141.0) - childprocess (~> 0.5) - rubyzip (~> 1.2, >= 1.2.2) - simplecov (0.16.1) + selenium-webdriver (3.142.6) + childprocess (>= 0.5, < 4.0) + rubyzip (>= 1.2.2) + simplecov (0.17.1) docile (~> 1.1) json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - smart_properties (1.13.1) - social-share-button (1.1.0) + smart_properties (1.15.0) + social-share-button (1.2.1) coffee-rails - spreadsheet (1.1.8) + spreadsheet (1.2.4) ruby-ole (>= 1.0) sprockets (3.7.2) concurrent-ruby (~> 1.0) @@ -624,24 +662,27 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) - system_test_html_screenshots (0.1.1) - actionpack (>= 5.2, < 6.0.x) - temple (0.8.0) + system_test_html_screenshots (0.1.2) + actionpack (>= 5.2, < 6.0.a) + temple (0.8.2) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thor (0.20.3) thread_safe (0.3.6) - tilt (2.0.8) - tomlrb (1.2.7) - truncato (0.7.10) + tilt (2.0.10) + tomlrb (1.2.8) + truncato (0.7.11) htmlentities (~> 4.3.1) - nokogiri (~> 1.8.0, >= 1.7.0) + nokogiri (>= 1.7.0, <= 2.0) tzinfo (1.2.5) thread_safe (~> 0.1) uber (0.1.0) - uglifier (4.1.19) + uglifier (4.2.0) execjs (>= 0.3.0, < 3) - unicode-display_width (1.4.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.6) + unicode-display_width (1.6.0) valid_email2 (2.3.1) activemodel (>= 3.2) mail (~> 2.5) @@ -652,13 +693,13 @@ GEM equalizer (~> 0.0, >= 0.0.9) warden (1.2.8) rack (>= 2.0.6) - webmock (3.4.2) + webmock (3.5.1) addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff - websocket-driver (0.7.0) + websocket-driver (0.7.1) websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.3) + websocket-extensions (0.1.4) wisper (2.0.0) wisper-rspec (1.1.0) xpath (3.2.0) @@ -668,9 +709,9 @@ PLATFORMS ruby DEPENDENCIES - decidim-dev (= 0.14.4) + decidim-dev (= 0.18.0) decidim-ldap! faker BUNDLED WITH - 1.16.4 + 1.17.3 diff --git a/docs/overrides.md b/docs/overrides.md index c24a8709..ea21df20 100644 --- a/docs/overrides.md +++ b/docs/overrides.md @@ -50,6 +50,18 @@ It includes the same changes found in the previous file (devise/sessions/new.htm It modifies the lines 76 to 78 to remove the signup link for ldap enabled organizations. +**app/views/decidim/authorization_modals/_content.html.erb** + +Starting at line 26, a new behaviour has been included to show custom error messages to the custom action authorizer created for +the project. + +### Helpers + +**app/helpers/application_helper.rb** + +This file is not overriding any Decidim behaviour, but it's using Decidim internal instance variables to be able to show custom error messages +for the decidim age action authorizer. Whenever a new upgrade is applied, it's recommended to check if the code still works as expected. + ### Locales This Decidim installation replaces the Assemblies text for Participatory committees. These @@ -78,3 +90,13 @@ Permissions system. If the Decidim permissions engine changes the following file - [decidim-ldap/lib/decidim/ldap/extensions/controller_with_ldap_permissions.rb](/decidim-ldap/lib/decidim/ldap/extensions/controller_with_ldap_permissions.rb) - [decidim-ldap/app/models/decidim/ldap/permissions/extra_account_permissions.rb](/decidim-ldap/app/models/decidim/ldap/permissions/extra_account_permissions.rb) + + +**config/initializers/subcensus_authorizer.rb** + +SubcensusAuthorizer is overriding the Decidim Age Action Authorizer created for this project. As only one action authorizer can be assigned to an +AuthorizationHandler and we wanted to keep the Decidim Age Action Authorizer as an independent engine, we decided that overriding the current behaviour +was the best way to implement this feature. + +It is using the Decidim internal API to be able to perform the required authorization. Whenever the project is updated this file needs to be +checked for incompatibilities. diff --git a/spec/decidim_dummy_app/Gemfile b/spec/decidim_dummy_app/Gemfile index d9673e1b..73b5755c 100644 --- a/spec/decidim_dummy_app/Gemfile +++ b/spec/decidim_dummy_app/Gemfile @@ -6,8 +6,8 @@ ruby RUBY_VERSION # This is the original line, but it doesn't work # gem "decidim", path: "../.." -gem 'decidim', '~> 0.14.4' -gem 'decidim-admin', '~> 0.14.4' +gem 'decidim', '~> 0.18.0' +gem 'decidim-admin', '0.18.0' gem 'decidim-ldap', path: '../../decidim-ldap' # Uncomment the following line if you want to use decidim-assemblies plugin @@ -24,7 +24,7 @@ group :development, :test do gem 'byebug', platform: :mri # gem "decidim-dev", path: "../.." - gem 'decidim-dev', '~> 0.14.4' + gem 'decidim-dev', '0.18.0' end group :development do diff --git a/spec/decidim_dummy_app/Gemfile.lock b/spec/decidim_dummy_app/Gemfile.lock index 36e55367..10fa3748 100644 --- a/spec/decidim_dummy_app/Gemfile.lock +++ b/spec/decidim_dummy_app/Gemfile.lock @@ -1,8 +1,8 @@ PATH remote: ../../decidim-ldap specs: - decidim-ldap (0.14.4) - decidim-core (= 0.14.4) + decidim-ldap (0.18.0) + decidim-core (= 0.18.0) ladle net-ldap @@ -53,6 +53,8 @@ GEM i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) + acts_as_list (1.0.0) + activerecord (>= 4.2) addressable (2.5.2) public_suffix (>= 2.0.2, < 4.0) arel (9.0.0) @@ -67,8 +69,9 @@ GEM babel-transpiler (0.7.0) babel-source (>= 4.0, < 6) execjs (~> 2.0) - bcrypt (3.1.12) - better_html (1.0.11) + batch-loader (1.4.1) + bcrypt (3.1.13) + better_html (1.0.14) actionview (>= 4.0) activesupport (>= 4.0) ast (~> 2.0) @@ -81,15 +84,15 @@ GEM msgpack (~> 1.0) builder (3.2.3) byebug (10.0.2) - capybara (3.11.0) + capybara (3.29.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) rack (>= 1.6.0) rack-test (>= 0.6.3) - regexp_parser (~> 1.2) + regexp_parser (~> 1.5) xpath (~> 3.2) - carrierwave (1.2.3) + carrierwave (1.3.1) activemodel (>= 4.0.0) activesupport (>= 4.0.0) mime-types (>= 1.16) @@ -104,13 +107,13 @@ GEM cells-rails (0.0.9) actionpack (>= 3.0) cells (>= 4.1.6, < 5.0.0) - childprocess (0.9.0) - ffi (~> 1.0, >= 1.0.11) + charlock_holmes (0.7.6) + childprocess (3.0.0) coercible (1.0.0) descendants_tracker (~> 0.0.1) - coffee-rails (4.2.2) + coffee-rails (5.0.0) coffee-script (>= 2.2.0) - railties (>= 4.0.0) + railties (>= 5.2.0) coffee-script (2.4.1) coffee-script-source execjs @@ -119,7 +122,7 @@ GEM crack (0.4.3) safe_yaml (~> 1.0.0) crass (1.0.4) - css_parser (1.6.0) + css_parser (1.7.0) addressable date_validator (0.9.0) activemodel @@ -127,73 +130,77 @@ GEM db-query-matchers (0.9.0) activesupport (>= 4.0, <= 6.0) rspec (~> 3.0) - decidim (0.14.4) - decidim-accountability (= 0.14.4) - decidim-admin (= 0.14.4) - decidim-api (= 0.14.4) - decidim-assemblies (= 0.14.4) - decidim-blogs (= 0.14.4) - decidim-budgets (= 0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) - decidim-debates (= 0.14.4) - decidim-generators (= 0.14.4) - decidim-meetings (= 0.14.4) - decidim-pages (= 0.14.4) - decidim-participatory_processes (= 0.14.4) - decidim-proposals (= 0.14.4) - decidim-sortitions (= 0.14.4) - decidim-surveys (= 0.14.4) - decidim-system (= 0.14.4) - decidim-verifications (= 0.14.4) - decidim-accountability (0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim (0.18.0) + decidim-accountability (= 0.18.0) + decidim-admin (= 0.18.0) + decidim-api (= 0.18.0) + decidim-assemblies (= 0.18.0) + decidim-blogs (= 0.18.0) + decidim-budgets (= 0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) + decidim-debates (= 0.18.0) + decidim-forms (= 0.18.0) + decidim-generators (= 0.18.0) + decidim-meetings (= 0.18.0) + decidim-pages (= 0.18.0) + decidim-participatory_processes (= 0.18.0) + decidim-proposals (= 0.18.0) + decidim-sortitions (= 0.18.0) + decidim-surveys (= 0.18.0) + decidim-system (= 0.18.0) + decidim-verifications (= 0.18.0) + decidim-accountability (0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) kaminari (~> 1.0) searchlight (~> 4.1) - decidim-admin (0.14.4) + decidim-admin (0.18.0) active_link_to (~> 1.0) - decidim-core (= 0.14.4) - devise (~> 4.2) + decidim-core (= 0.18.0) + devise (~> 4.6) devise-i18n (~> 1.2) devise_invitable (~> 1.7) jquery-rails (~> 4.3) sassc (~> 1.12, >= 1.12.1) sassc-rails (~> 1.3) - decidim-api (0.14.4) - graphiql-rails (~> 1.4) - graphql (~> 1.6) + decidim-api (0.18.0) + graphiql-rails (~> 1.4, < 1.5) + graphql (~> 1.6, < 1.8.11) rack-cors (~> 1.0) sprockets-es6 (~> 0.9.2) - decidim-assemblies (0.14.4) - decidim-core (= 0.14.4) - decidim-blogs (0.14.4) - decidim-admin (= 0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim-assemblies (0.18.0) + decidim-core (= 0.18.0) + decidim-blogs (0.18.0) + decidim-admin (= 0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) httparty (~> 0.16.0) jquery-tmpl-rails (~> 1.1) kaminari (~> 1.0) - decidim-budgets (0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim-budgets (0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) kaminari (~> 1.0) searchlight (~> 4.1) - decidim-comments (0.14.4) - decidim-core (= 0.14.4) + decidim-comments (0.18.0) + decidim-core (= 0.18.0) jquery-rails (~> 4.0) - decidim-core (0.14.4) + decidim-core (0.18.0) active_link_to (~> 1.0) autoprefixer-rails (~> 8.0) + batch-loader (~> 1.2) carrierwave (~> 1.1) cells-erb (~> 0.1.0) cells-rails (~> 0.0.9) + charlock_holmes (>= 0.7.6) date_validator (~> 0.9.0) - decidim-api (= 0.14.4) - devise (~> 4.3) + decidim-api (= 0.18.0) + devise (~> 4.6) devise-i18n (~> 1.2) doorkeeper (~> 4.4) doorkeeper-i18n (~> 4.0) + etherpad-lite (~> 0.3) file_validators (~> 2.1) foundation-rails (~> 6.4, < 6.5) foundation_rails_helper (~> 3.0) @@ -204,7 +211,8 @@ GEM kaminari (~> 1.0) loofah (~> 2.0, >= 2.2.1) mini_magick (~> 4.8) - nobspw (~> 0.4.0) + mustache (~> 1.1.0) + nobspw (~> 0.6.0) omniauth (~> 1.6) omniauth-facebook (~> 4.0) omniauth-google-oauth2 (~> 0.5.0) @@ -213,12 +221,13 @@ GEM pg (>= 0.18, < 2) pg_search (~> 2.1, >= 2.1.0) premailer-rails (~> 1.9) + rack (>= 2.0.6) rack-attack (~> 5.2) rails (>= 5.2, < 6.0.x) rails-i18n (~> 5.0) - rectify (~> 0.11.0) + rectify (~> 0.13.0) redis (~> 4.0) - rubyzip (~> 1.2) + rubyzip (~> 1.2, >= 1.2.2) sassc (~> 1.12, >= 1.12.1) sassc-rails (~> 1.3) spreadsheet (~> 1.1) @@ -227,16 +236,16 @@ GEM uglifier (~> 4.0) valid_email2 (~> 2.1) wisper (~> 2.0) - decidim-debates (0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim-debates (0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) kaminari (~> 1.0) searchlight (~> 4.1) - decidim-dev (0.14.4) + decidim-dev (0.18.0) byebug (~> 10.0) capybara (~> 3.0) db-query-matchers (~> 0.9.0) - decidim (= 0.14.4) + decidim (= 0.18.0) erb_lint (~> 0.0.22) factory_bot_rails (~> 4.8) i18n-tasks (~> 0.9.18) @@ -255,71 +264,85 @@ GEM system_test_html_screenshots (~> 0.1.1) webmock (~> 3.0) wisper-rspec (~> 1.0) - decidim-generators (0.14.4) - decidim-core (= 0.14.4) - decidim-meetings (0.14.4) + decidim-forms (0.18.0) + decidim-core (= 0.18.0) + decidim-generators (0.18.0) + decidim-core (= 0.18.0) + decidim-meetings (0.18.0) cells-erb (~> 0.1.0) cells-rails (~> 0.0.9) - decidim-core (= 0.14.4) + decidim-core (= 0.18.0) + decidim-forms (= 0.18.0) httparty (~> 0.16.0) icalendar (~> 2.4) jquery-tmpl-rails (~> 1.1) kaminari (~> 1.0) searchlight (~> 4.1) - decidim-pages (0.14.4) - decidim-core (= 0.14.4) - decidim-participatory_processes (0.14.4) - decidim-core (= 0.14.4) - decidim-proposals (0.14.4) + decidim-pages (0.18.0) + decidim-core (= 0.18.0) + decidim-participatory_processes (0.18.0) + decidim-core (= 0.18.0) + decidim-proposals (0.18.0) + acts_as_list (>= 0.9) cells-erb (~> 0.1.0) cells-rails (~> 0.0.9) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) + diffy (>= 3.3) + doc2text (>= 0.4.0) kaminari (~> 1.0) ransack (~> 2.0) + redcarpet (>= 3.4) social-share-button (~> 1.0) - decidim-sortitions (0.14.4) - decidim-admin (= 0.14.4) - decidim-comments (= 0.14.4) - decidim-core (= 0.14.4) - decidim-proposals (= 0.14.4) + decidim-sortitions (0.18.0) + decidim-admin (= 0.18.0) + decidim-comments (= 0.18.0) + decidim-core (= 0.18.0) + decidim-proposals (= 0.18.0) social-share-button (~> 1.0) - decidim-surveys (0.14.4) - decidim-core (= 0.14.4) - decidim-system (0.14.4) + decidim-surveys (0.18.0) + decidim-core (= 0.18.0) + decidim-forms (= 0.18.0) + decidim-system (0.18.0) active_link_to (~> 1.0) - decidim-core (= 0.14.4) - devise (~> 4.2) + decidim-core (= 0.18.0) + devise (~> 4.6) devise-i18n (~> 1.2) devise_invitable (~> 1.7) jquery-rails (~> 4.3) sassc (~> 1.12, >= 1.12.1) sassc-rails (~> 1.3) - decidim-verifications (0.14.4) - decidim-core (= 0.14.4) + decidim-verifications (0.18.0) + decidim-core (= 0.18.0) declarative-builder (0.1.0) declarative-option (< 0.2.0) declarative-option (0.1.0) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) - devise (4.5.0) + devise (4.7.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) - railties (>= 4.1.0, < 6.0) + railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-i18n (1.7.0) - devise (>= 4.5) + devise-i18n (1.8.2) + devise (>= 4.6) devise_invitable (1.7.5) actionmailer (>= 4.1.0) devise (>= 4.0.0) diff-lcs (1.3) - docile (1.3.1) + diffy (3.3.0) + doc2text (0.4.1) + nokogiri (~> 1.8, >= 1.8.2) + rubyzip (~> 1.2, >= 1.2.2) + docile (1.3.2) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) doorkeeper (4.4.3) railties (>= 4.2) - doorkeeper-i18n (4.0.0) + doorkeeper-i18n (4.0.1) equalizer (0.0.11) - erb_lint (0.0.28) + erb_lint (0.0.30) activesupport better_html (~> 1.0.7) html_tokenizer @@ -329,6 +352,8 @@ GEM erbse (0.1.3) temple erubi (1.7.1) + etherpad-lite (0.3.0) + rest-client (>= 1.6) execjs (2.7.0) factory_bot (4.11.1) activesupport (>= 3.0.0) @@ -337,7 +362,7 @@ GEM railties (>= 3.0.0) faker (1.9.1) i18n (>= 0.7) - faraday (0.15.3) + faraday (0.17.0) multipart-post (>= 1.2, < 3) ffi (1.9.25) file_validators (2.3.0) @@ -353,24 +378,27 @@ GEM activesupport (>= 4.1, < 6.0) railties (>= 4.1, < 6.0) tzinfo (~> 1.2, >= 1.2.2) - geocoder (1.5.0) + geocoder (1.5.2) globalid (0.4.1) activesupport (>= 4.2.0) - graphiql-rails (1.5.0) + graphiql-rails (1.4.11) railties sprockets-rails - graphql (1.8.11) - hashdiff (0.3.7) - hashie (3.5.7) - highline (2.0.0) + graphql (1.8.10) + hashdiff (0.3.9) + hashie (3.6.0) + highline (2.0.2) html_tokenizer (0.0.7) htmlentities (4.3.4) - httparty (0.16.3) + http-accept (1.7.0) + http-cookie (1.0.3) + domain_name (~> 0.5) + httparty (0.16.4) mime-types (~> 3.0) multi_xml (>= 0.5.2) i18n (1.1.1) concurrent-ruby (~> 1.0) - i18n-tasks (0.9.28) + i18n-tasks (0.9.29) activesupport (>= 4.0.2) ast (>= 2.1.0) erubi @@ -380,21 +408,21 @@ GEM rails-i18n rainbow (>= 2.2.2, < 4.0) terminal-table (>= 1.5.1) - icalendar (2.5.1) + icalendar (2.5.3) ice_cube (~> 0.16) ice_cube (0.16.3) ice_nine (0.11.2) invisible_captcha (0.10.0) rails (>= 3.2.0) - jaro_winkler (1.5.1) - jquery-rails (4.3.3) + jaro_winkler (1.5.3) + jquery-rails (4.3.5) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) jquery-tmpl-rails (1.1.0) rails (>= 3.1.0) - json (2.1.0) - jwt (2.1.0) + json (2.2.0) + jwt (2.2.1) kaminari (1.1.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.1.1) @@ -434,48 +462,50 @@ GEM mixlib-cli (~> 1.7, >= 1.7.0) mixlib-config (~> 2.2, >= 2.2.1) method_source (0.9.2) - mime-types (3.2.2) + mime-types (3.3) mime-types-data (~> 3.2015) - mime-types-data (3.2018.0812) - mimemagic (0.3.2) - mini_magick (4.9.2) + mime-types-data (3.2019.0904) + mimemagic (0.3.3) + mini_magick (4.9.5) mini_mime (1.0.1) mini_portile2 (2.3.0) minitest (5.11.3) mixlib-cli (1.7.0) - mixlib-config (2.2.13) + mixlib-config (2.2.18) tomlrb msgpack (1.2.4) multi_json (1.13.1) multi_xml (0.6.0) - multipart-post (2.0.0) + multipart-post (2.1.1) + mustache (1.1.0) net-ldap (0.16.1) - nio4r (2.3.1) - nobspw (0.4.0) + netrc (0.11.0) + nio4r (2.5.2) + nobspw (0.6.1) nokogiri (1.8.5) mini_portile2 (~> 2.3.0) oauth (0.5.4) - oauth2 (1.4.1) - faraday (>= 0.8, < 0.16.0) + oauth2 (1.4.2) + faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 3) - omniauth (1.8.1) - hashie (>= 3.4.6, < 3.6.0) + omniauth (1.9.0) + hashie (>= 3.4.6, < 3.7.0) rack (>= 1.6.2, < 3) omniauth-facebook (4.0.0) omniauth-oauth2 (~> 1.2) - omniauth-google-oauth2 (0.5.3) + omniauth-google-oauth2 (0.5.4) jwt (>= 1.5) omniauth (>= 1.1.1) omniauth-oauth2 (>= 1.5) omniauth-oauth (1.1.0) oauth omniauth (~> 1.0) - omniauth-oauth2 (1.5.0) + omniauth-oauth2 (1.6.0) oauth2 (~> 1.1) - omniauth (~> 1.2) + omniauth (~> 1.9) omniauth-twitter (1.4.0) omniauth-oauth (~> 1.1) rack @@ -485,29 +515,30 @@ GEM activerecord (>= 4.2, < 5.3) paper_trail-association_tracking (< 2) request_store (~> 1.1) - paper_trail-association_tracking (1.0.0) - parallel (1.12.1) - parser (2.5.3.0) + paper_trail-association_tracking (1.1.1) + parallel (1.18.0) + parser (2.6.5.0) ast (~> 2.4.0) - pg (1.1.3) - pg_search (2.1.2) + pg (1.1.4) + pg_search (2.3.0) activerecord (>= 4.2) activesupport (>= 4.2) - arel (>= 6) + polyamorous (2.3.0) + activerecord (>= 5.0) powerpack (0.1.2) premailer (1.11.1) addressable css_parser (>= 1.6.0) htmlentities (>= 4.0.0) - premailer-rails (1.10.2) - actionmailer (>= 3, < 6) + premailer-rails (1.10.3) + actionmailer (>= 3) premailer (~> 1.7, >= 1.7.9) public_suffix (3.0.3) puma (3.12.0) rack (2.0.6) rack-attack (5.4.2) rack (>= 1.0, < 3) - rack-cors (1.0.2) + rack-cors (1.0.3) rack-test (1.1.0) rack (>= 1.0, < 3) rails (5.2.1) @@ -523,16 +554,16 @@ GEM bundler (>= 1.3.0) railties (= 5.2.1) sprockets-rails (>= 2.0.0) - rails-controller-testing (1.0.2) - actionpack (~> 5.x, >= 5.0.1) - actionview (~> 5.x, >= 5.0.1) - activesupport (~> 5.x) + rails-controller-testing (1.0.4) + actionpack (>= 5.0.1.x) + actionview (>= 5.0.1.x) + activesupport (>= 5.0.1.x) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) rails-html-sanitizer (1.0.4) loofah (~> 2.2, >= 2.2.2) - rails-i18n (5.1.2) + rails-i18n (5.1.3) i18n (>= 0.7, < 2) railties (>= 5.0, < 6) railties (5.2.1) @@ -543,54 +574,61 @@ GEM thor (>= 0.19.0, < 2.0) rainbow (3.0.0) rake (12.3.1) - ransack (2.1.0) + ransack (2.3.0) actionpack (>= 5.0) activerecord (>= 5.0) activesupport (>= 5.0) i18n + polyamorous (= 2.3.0) rb-fsevent (0.10.3) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) - rectify (0.11.0) + rectify (0.13.0) activemodel (>= 4.1.0) activerecord (>= 4.1.0) activesupport (>= 4.1.0) virtus (~> 1.0.5) wisper (>= 1.6.1) - redis (4.0.3) - regexp_parser (1.3.0) + redcarpet (3.5.0) + redis (4.1.3) + regexp_parser (1.6.0) request_store (1.4.1) rack (>= 1.4) - responders (2.4.0) - actionpack (>= 4.2.0, < 5.3) - railties (>= 4.2.0, < 5.3) - rspec (3.8.0) - rspec-core (~> 3.8.0) - rspec-expectations (~> 3.8.0) - rspec-mocks (~> 3.8.0) + responders (3.0.0) + actionpack (>= 5.0) + railties (>= 5.0) + rest-client (2.1.0) + http-accept (>= 1.7.0, < 2.0) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 4.0) + netrc (~> 0.8) + rspec (3.9.0) + rspec-core (~> 3.9.0) + rspec-expectations (~> 3.9.0) + rspec-mocks (~> 3.9.0) rspec-cells (0.3.4) cells (>= 4.0.0, < 6.0.0) rspec-rails (~> 3.2) - rspec-core (3.8.0) - rspec-support (~> 3.8.0) - rspec-expectations (3.8.2) + rspec-core (3.9.0) + rspec-support (~> 3.9.0) + rspec-expectations (3.9.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.8.0) + rspec-support (~> 3.9.0) rspec-html-matchers (0.9.1) nokogiri (~> 1) rspec (>= 3.0.0.a, < 4) - rspec-mocks (3.8.0) + rspec-mocks (3.9.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.8.0) - rspec-rails (3.8.1) + rspec-support (~> 3.9.0) + rspec-rails (3.9.0) actionpack (>= 3.0) activesupport (>= 3.0) railties (>= 3.0) - rspec-core (~> 3.8.0) - rspec-expectations (~> 3.8.0) - rspec-mocks (~> 3.8.0) - rspec-support (~> 3.8.0) - rspec-support (3.8.0) + rspec-core (~> 3.9.0) + rspec-expectations (~> 3.9.0) + rspec-mocks (~> 3.9.0) + rspec-support (~> 3.9.0) + rspec-support (3.9.0) rspec_junit_formatter (0.3.0) rspec-core (>= 2, < 4, != 2.12.0) rubocop (0.58.2) @@ -603,11 +641,11 @@ GEM unicode-display_width (~> 1.0, >= 1.0.1) rubocop-rspec (1.30.0) rubocop (>= 0.58.0) - ruby-ole (1.2.12.1) - ruby-progressbar (1.10.0) + ruby-ole (1.2.12.2) + ruby-progressbar (1.10.1) ruby_dep (1.5.0) - rubyzip (1.2.2) - safe_yaml (1.0.4) + rubyzip (1.3.0) + safe_yaml (1.0.5) sass (3.4.25) sassc (1.12.1) ffi (~> 1.9.6) @@ -620,18 +658,18 @@ GEM sprockets-rails tilt searchlight (4.1.0) - selenium-webdriver (3.141.0) - childprocess (~> 0.5) - rubyzip (~> 1.2, >= 1.2.2) - simplecov (0.16.1) + selenium-webdriver (3.142.6) + childprocess (>= 0.5, < 4.0) + rubyzip (>= 1.2.2) + simplecov (0.17.1) docile (~> 1.1) json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - smart_properties (1.13.1) - social-share-button (1.1.0) + smart_properties (1.15.0) + social-share-button (1.2.1) coffee-rails - spreadsheet (1.1.8) + spreadsheet (1.2.4) ruby-ole (>= 1.0) spring (2.0.2) activesupport (>= 4.2) @@ -649,24 +687,27 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) - system_test_html_screenshots (0.1.1) - actionpack (>= 5.2, < 6.0.x) - temple (0.8.0) + system_test_html_screenshots (0.1.2) + actionpack (>= 5.2, < 6.0.a) + temple (0.8.2) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thor (0.20.3) thread_safe (0.3.6) - tilt (2.0.8) - tomlrb (1.2.7) - truncato (0.7.10) + tilt (2.0.10) + tomlrb (1.2.8) + truncato (0.7.11) htmlentities (~> 4.3.1) - nokogiri (~> 1.8.0, >= 1.7.0) + nokogiri (>= 1.7.0, <= 2.0) tzinfo (1.2.5) thread_safe (~> 0.1) uber (0.1.0) uglifier (4.1.19) execjs (>= 0.3.0, < 3) - unicode-display_width (1.4.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.6) + unicode-display_width (1.6.0) valid_email2 (2.3.1) activemodel (>= 3.2) mail (~> 2.5) @@ -682,13 +723,13 @@ GEM activemodel (>= 5.0) bindex (>= 0.4.0) railties (>= 5.0) - webmock (3.4.2) + webmock (3.5.1) addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff - websocket-driver (0.7.0) + websocket-driver (0.7.1) websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.3) + websocket-extensions (0.1.4) wisper (2.0.0) wisper-rspec (1.1.0) xpath (3.2.0) @@ -700,9 +741,9 @@ PLATFORMS DEPENDENCIES bootsnap byebug - decidim (~> 0.14.4) - decidim-admin (~> 0.14.4) - decidim-dev (~> 0.14.4) + decidim (~> 0.18.0) + decidim-admin (= 0.18.0) + decidim-dev (= 0.18.0) decidim-ldap! faker letter_opener_web @@ -717,4 +758,4 @@ RUBY VERSION ruby 2.5.1p57 BUNDLED WITH - 1.16.4 + 1.17.3