decidim-core 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/decidim/extras/_add_comments.scss +9 -0
  3. data/app/assets/stylesheets/decidim/extras/_label-required.scss +3 -0
  4. data/app/assets/stylesheets/decidim/extras/_reference.scss +3 -0
  5. data/app/assets/stylesheets/decidim/extras/_social_icons_mini.scss +10 -0
  6. data/app/commands/decidim/invite_user.rb +1 -1
  7. data/app/commands/decidim/update_account.rb +2 -6
  8. data/app/constraints/decidim/current_feature.rb +11 -18
  9. data/app/constraints/decidim/current_participatory_process.rb +35 -0
  10. data/app/controllers/concerns/decidim/devise_controllers.rb +1 -0
  11. data/app/controllers/concerns/decidim/locale_switcher.rb +2 -2
  12. data/app/controllers/concerns/decidim/needs_authorization.rb +1 -2
  13. data/app/controllers/concerns/decidim/needs_organization.rb +1 -2
  14. data/app/controllers/concerns/decidim/needs_participatory_process.rb +19 -10
  15. data/app/controllers/decidim/account_controller.rb +13 -9
  16. data/app/controllers/decidim/application_controller.rb +3 -8
  17. data/app/controllers/decidim/devise/registrations_controller.rb +0 -1
  18. data/app/controllers/decidim/devise/sessions_controller.rb +0 -1
  19. data/app/controllers/decidim/errors_controller.rb +15 -0
  20. data/app/controllers/decidim/features/base_controller.rb +1 -0
  21. data/app/controllers/decidim/participatory_process_groups_controller.rb +6 -2
  22. data/app/controllers/decidim/participatory_process_steps_controller.rb +1 -0
  23. data/app/controllers/decidim/participatory_processes_controller.rb +3 -3
  24. data/app/helpers/decidim/application_helper.rb +3 -0
  25. data/app/helpers/decidim/feature_path_helper.rb +35 -0
  26. data/app/helpers/decidim/feature_reference_helper.rb +4 -2
  27. data/app/helpers/decidim/icon_helper.rb +20 -0
  28. data/app/helpers/decidim/menu_helper.rb +1 -1
  29. data/app/helpers/decidim/participatory_process_helper.rb +0 -14
  30. data/app/models/decidim/feature.rb +9 -1
  31. data/app/models/decidim/static_page.rb +1 -0
  32. data/app/models/decidim/user.rb +2 -0
  33. data/app/queries/decidim/highlighted_participatory_processes.rb +1 -1
  34. data/app/views/decidim/account/show.html.erb +1 -3
  35. data/app/views/decidim/devise/shared/_omniauth_buttons.html.erb +1 -1
  36. data/app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb +20 -0
  37. data/app/views/{pages/500.html.erb → decidim/errors/internal_server_error.html.erb} +0 -0
  38. data/app/views/{pages/404.html.erb → decidim/errors/not_found.html.erb} +1 -1
  39. data/app/views/decidim/shared/_login_modal.html.erb +4 -0
  40. data/app/views/decidim/shared/_share_modal.html.erb +1 -1
  41. data/app/views/layouts/decidim/_process_header.html.erb +2 -2
  42. data/config/i18n-tasks.yml +2 -0
  43. data/config/initializers/invisible_captcha.rb +2 -2
  44. data/config/locales/ca.yml +14 -8
  45. data/config/locales/en.yml +13 -7
  46. data/config/locales/es.yml +13 -7
  47. data/config/locales/eu.yml +0 -7
  48. data/config/locales/fi.yml +0 -7
  49. data/config/locales/fr.yml +4 -11
  50. data/config/locales/it.yml +0 -7
  51. data/config/locales/nl.yml +0 -7
  52. data/config/routes.rb +2 -8
  53. data/db/migrate/20160817115213_devise_create_decidim_users.rb +6 -6
  54. data/db/migrate/20160920140207_devise_invitable_add_to_decidim_users.rb +9 -9
  55. data/db/seeds.rb +2 -2
  56. data/lib/decidim/core.rb +25 -1
  57. data/lib/decidim/core/engine.rb +0 -1
  58. data/lib/decidim/core/test.rb +1 -0
  59. data/lib/decidim/core/test/factories.rb +11 -6
  60. data/lib/decidim/core/test/shared_examples/comments_examples.rb +69 -66
  61. data/lib/decidim/core/test/shared_examples/errors.rb +21 -0
  62. data/lib/decidim/core/test/shared_examples/has_reference.rb +18 -2
  63. data/lib/decidim/core/test/shared_examples/manage_moderations_examples.rb +2 -2
  64. data/lib/decidim/core/version.rb +1 -1
  65. data/lib/decidim/devise_failure_app.rb +1 -1
  66. data/lib/decidim/form_builder.rb +89 -5
  67. data/lib/decidim/has_reference.rb +3 -15
  68. data/lib/decidim/notifiable.rb +22 -0
  69. data/lib/devise/models/decidim_validatable.rb +4 -4
  70. metadata +41 -16
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.shared_examples_for "a 404 page" do
4
+ before do
5
+ allow(Rails.application).to \
6
+ receive(:env_config).with(no_args).and_wrap_original do |m, *|
7
+ m.call.merge(
8
+ "action_dispatch.show_exceptions" => true,
9
+ "action_dispatch.show_detailed_exceptions" => false
10
+ )
11
+ end
12
+
13
+ visit target_path
14
+ end
15
+
16
+ it "leads to a 404" do
17
+ expect(page).to have_content("The page you're looking for can't be found")
18
+
19
+ expect(page).to have_http_status(:not_found)
20
+ end
21
+ end
@@ -1,13 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  shared_examples_for "has reference" do
4
+ before do
5
+ allow(Decidim).to receive(:calculate_reference_method).and_return(nil)
6
+ end
7
+
4
8
  context "when the reference is nil" do
5
9
  before do
6
10
  subject[:reference] = nil
7
11
  end
8
12
 
9
- it "generates a valid reference" do
10
- expect(subject.reference).to match(/[A-z]+/)
13
+ context "when there is not a custom resource reference generator present" do
14
+ it "generates a valid reference" do
15
+ expect(subject.reference).to match(/[A-z]+/)
16
+ end
17
+ end
18
+
19
+ context "when there is a custom resource reference generator present" do
20
+ before do
21
+ allow(Decidim).to receive(:resource_reference_generator).and_return(->(resource, _feature) { "1234-#{resource.id}" })
22
+ end
23
+
24
+ it "generates a valid reference" do
25
+ expect(subject.reference).to eq("1234-#{subject.id}")
26
+ end
11
27
  end
12
28
  end
13
29
 
@@ -13,7 +13,7 @@ RSpec.shared_examples "manage moderations" do
13
13
  let!(:hidden_moderations) do
14
14
  reportables.last(1).map do |reportable|
15
15
  moderation = create(:moderation, reportable: reportable, report_count: 3, hidden_at: Time.current)
16
- create_list(:report, 3, moderation: moderation)
16
+ create_list(:report, 3, moderation: moderation, reason: :spam)
17
17
  moderation
18
18
  end
19
19
  end
@@ -30,7 +30,7 @@ RSpec.shared_examples "manage moderations" do
30
30
  moderations.each do |moderation|
31
31
  within "tr[data-id=\"#{moderation.id}\"]" do
32
32
  expect(page).to have_content moderation.reportable.reported_content_url
33
- expect(page).to have_content moderation.reports.first.reason
33
+ expect(page).to have_content "Spam"
34
34
  end
35
35
  end
36
36
  end
@@ -3,7 +3,7 @@
3
3
  # This holds Decidim's version and the Rails version on which it depends.
4
4
  module Decidim
5
5
  def self.version
6
- "0.3.2"
6
+ "0.4.0"
7
7
  end
8
8
 
9
9
  def self.rails_version
@@ -6,7 +6,7 @@ module Decidim
6
6
  # introducing a bug).
7
7
  class DeviseFailureApp < ::Devise::FailureApp
8
8
  def scope_url
9
- opts = {}
9
+ opts = {}
10
10
 
11
11
  # Initialize script_name with nil to prevent infinite loops in
12
12
  # authenticated mounted engines in rails 4.2 and 5.0
@@ -89,7 +89,7 @@ module Decidim
89
89
 
90
90
  content_tag(:div, class: "editor") do
91
91
  template = ""
92
- template += label(name) if options[:label] != false
92
+ template += label(name, options[:label].to_s || name) if options[:label] != false
93
93
  template += hidden_field(name, options)
94
94
  template += content_tag(:div, nil, class: "editor-container", data: {
95
95
  toolbar: options[:toolbar]
@@ -144,7 +144,7 @@ module Decidim
144
144
  iso_value = value.present? ? value.strftime("%Y-%m-%d") : ""
145
145
 
146
146
  template = ""
147
- template += label(attribute, label_for(attribute))
147
+ template += label(attribute, label_for(attribute) + required_for_attribute(attribute))
148
148
  template += @template.text_field(
149
149
  @object_name,
150
150
  attribute,
@@ -166,7 +166,7 @@ module Decidim
166
166
  formatted_value = I18n.localize(value, format: :timepicker)
167
167
  end
168
168
  template = ""
169
- template += label(attribute, label_for(attribute))
169
+ template += label(attribute, label_for(attribute) + required_for_attribute(attribute))
170
170
  template += @template.text_field(
171
171
  @object_name,
172
172
  attribute,
@@ -180,6 +180,49 @@ module Decidim
180
180
  template.html_safe
181
181
  end
182
182
 
183
+ # Public: Generates a file upload field and sets the form as multipart.
184
+ # If the file is an image it displays the default image if present or the current one.
185
+ # By default it also generates a checkbox to delete the file. This checkbox can
186
+ # be hidden if `options[:optional]` is passed as `false`.
187
+ #
188
+ # attribute - The String name of the attribute to buidl the field.
189
+ # options - A Hash with options to build the field.
190
+ # * optional: Whether the file can be optional or not.
191
+ def upload(attribute, options = {})
192
+ self.multipart = true
193
+ options[:optional] = options[:optional].nil? ? true : options[:optional]
194
+
195
+ file = object.send attribute
196
+ template = ""
197
+ template += label(attribute, label_for(attribute) + required_for_attribute(attribute))
198
+ template += @template.file_field @object_name, attribute
199
+
200
+ if file_is_image?(file)
201
+ template += if file.present?
202
+ @template.label_tag I18n.t("current_image", scope: "decidim.forms")
203
+ else
204
+ @template.label_tag I18n.t("default_image", scope: "decidim.forms")
205
+ end
206
+ template += @template.link_to @template.image_tag(file.url), file.url, target: "_blank"
207
+ elsif file_is_present?(file)
208
+ template += @template.label_tag I18n.t("current_file", scope: "decidim.forms")
209
+ template += @template.link_to file.file.filename, file.url, target: "_blank"
210
+ end
211
+
212
+ if file_is_present?(file)
213
+ if options[:optional]
214
+ template += content_tag :div, class: "field" do
215
+ safe_join([
216
+ @template.check_box(@object_name, "remove_#{attribute}"),
217
+ label("remove_#{attribute}", label_for("remove_#{attribute}"))
218
+ ])
219
+ end
220
+ end
221
+ end
222
+
223
+ template.html_safe
224
+ end
225
+
183
226
  private
184
227
 
185
228
  # Private: Override from FoundationRailsHelper in order to render
@@ -251,9 +294,26 @@ module Decidim
251
294
  #
252
295
  # Returns Boolean.
253
296
  def attribute_required?(attribute)
254
- validator = find_validator(attribute, ActiveModel::Validations::PresenceValidator)
297
+ validator = find_validator(attribute, ActiveModel::Validations::PresenceValidator) ||
298
+ find_validator(attribute, TranslatablePresenceValidator)
299
+
300
+ return unless validator
301
+
302
+ # Check if the if condition is present and it evaluates to true
303
+ if_condition = validator.options[:if]
304
+ validator_if_condition = if_condition.nil? ||
305
+ (string_or_symbol?(if_condition) ? object.send(if_condition) : if_condition.call(object))
306
+
307
+ # Check if the unless condition is present and it evaluates to false
308
+ unless_condition = validator.options[:unless]
309
+ validator_unless_condition = unless_condition.nil? ||
310
+ (string_or_symbol?(unless_condition) ? !object.send(unless_condition) : !unless_condition.call(object))
255
311
 
256
- validator && validator.options.blank?
312
+ validator_if_condition && validator_unless_condition
313
+ end
314
+
315
+ def string_or_symbol?(obj)
316
+ obj.is_a?(String) || obj.is_a?(Symbol)
257
317
  end
258
318
 
259
319
  # Private: Tries to find a length validator in the form object.
@@ -293,6 +353,7 @@ module Decidim
293
353
 
294
354
  text = default_label_text(object, attribute) if text.nil? || text == true
295
355
 
356
+ text += required_for_attribute(attribute)
296
357
  text = if field_before_label && block_given?
297
358
  safe_join([yield, text.html_safe])
298
359
  elsif block_given?
@@ -379,8 +440,31 @@ module Decidim
379
440
  options[:class] ||= ""
380
441
  options[:class] += " is-invalid-label"
381
442
  end
443
+ text += required_for_attribute(attribute)
382
444
 
383
445
  label(attribute, (text || "").html_safe, options)
384
446
  end
447
+
448
+ # Private: Returns whether the file is an image or not.
449
+ def file_is_image?(file)
450
+ return unless file && file.respond_to?(:url)
451
+ return file.content_type.start_with? "image" if file.content_type.present?
452
+ Mime::Type.lookup_by_extension(File.extname(file.url)[1..-1]).to_s.start_with? "image" if file.url.present?
453
+ end
454
+
455
+ # Private: Returns whether the file exists or not.
456
+ def file_is_present?(file)
457
+ return unless file && file.respond_to?(:url)
458
+ file.present?
459
+ end
460
+
461
+ def required_for_attribute(attribute)
462
+ if attribute_required?(attribute)
463
+ return content_tag(:abbr, "*", title: I18n.t("required", scope: "forms"),
464
+ data: { tooltip: true, disable_hover: false }, 'aria-haspopup': true,
465
+ class: "label-required").html_safe
466
+ end
467
+ "".html_safe
468
+ end
385
469
  end
386
470
  end
@@ -19,25 +19,13 @@ module Decidim
19
19
 
20
20
  private
21
21
 
22
- # Public: Calculates a unique reference for the model in
23
- # the following format:
24
- #
25
- # "BCN-DPP-2017-02-6589" which in this example translates to:
26
- #
27
- # BCN: A setting configured at the organization to be prepended to each reference.
28
- # PROP: Unique name identifier for a resource: Decidim::Proposals::Proposal (MEET for meetings or PROJ for projects).
29
- # 2017-02: Year-Month of the resource creation date
30
- # 6589: ID of the resource
22
+ # Public: Calculates a unique reference for the model using the function
23
+ # provided by configuration
31
24
  #
32
25
  # Returns a String.
33
26
  def calculate_reference
34
27
  return unless feature
35
-
36
- ref = feature.participatory_process.organization.reference_prefix
37
- class_identifier = self.class.name.demodulize[0..3].upcase
38
- year_month = (created_at || Time.current).strftime("%Y-%m")
39
-
40
- [ref, class_identifier, year_month, id].join("-")
28
+ Decidim.resource_reference_generator.call(self, feature)
41
29
  end
42
30
 
43
31
  # Internal: Sets the unique reference to the model.
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/concern"
4
+
5
+ module Decidim
6
+ # Shared behaviour for notifiable models.
7
+ module Notifiable
8
+ extend ActiveSupport::Concern
9
+
10
+ included do
11
+ # Public: Whether the object is notifiable or not.
12
+ def notifiable?(_context)
13
+ true
14
+ end
15
+
16
+ # Public: A collection of users to send the notifications.
17
+ def users_to_notify
18
+ []
19
+ end
20
+ end
21
+ end
22
+ end
@@ -27,13 +27,13 @@ module Devise
27
27
  assert_validations_api!(base)
28
28
 
29
29
  base.class_eval do
30
- validates_presence_of :email, if: :email_required?
30
+ validates_presence_of :email, if: :email_required?
31
31
  validates_uniqueness_of :email, allow_blank: true, if: :email_changed?, scope: :organization
32
- validates_format_of :email, with: email_regexp, allow_blank: true, if: :email_changed?
32
+ validates_format_of :email, with: email_regexp, allow_blank: true, if: :email_changed?
33
33
 
34
- validates_presence_of :password, if: :password_required?
34
+ validates_presence_of :password, if: :password_required?
35
35
  validates_confirmation_of :password, if: :password_required?
36
- validates_length_of :password, within: password_length, allow_blank: true
36
+ validates_length_of :password, within: password_length, allow_blank: true
37
37
  end
38
38
  end
39
39
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-06-19 00:00:00.000000000 Z
13
+ date: 2017-07-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -96,6 +96,20 @@ dependencies:
96
96
  - - "~>"
97
97
  - !ruby/object:Gem::Version
98
98
  version: 0.9.1
99
+ - !ruby/object:Gem::Dependency
100
+ name: sass
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - '='
104
+ - !ruby/object:Gem::Version
105
+ version: 3.4.24
106
+ type: :runtime
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - '='
111
+ - !ruby/object:Gem::Version
112
+ version: 3.4.24
99
113
  - !ruby/object:Gem::Dependency
100
114
  name: sassc-rails
101
115
  requirement: !ruby/object:Gem::Requirement
@@ -200,14 +214,14 @@ dependencies:
200
214
  requirements:
201
215
  - - "~>"
202
216
  - !ruby/object:Gem::Version
203
- version: 0.20.0
217
+ version: 0.21.0
204
218
  type: :runtime
205
219
  prerelease: false
206
220
  version_requirements: !ruby/object:Gem::Requirement
207
221
  requirements:
208
222
  - - "~>"
209
223
  - !ruby/object:Gem::Version
210
- version: 0.20.0
224
+ version: 0.21.0
211
225
  - !ruby/object:Gem::Dependency
212
226
  name: redis
213
227
  requirement: !ruby/object:Gem::Requirement
@@ -452,70 +466,70 @@ dependencies:
452
466
  requirements:
453
467
  - - '='
454
468
  - !ruby/object:Gem::Version
455
- version: 0.3.2
469
+ version: 0.4.0
456
470
  type: :runtime
457
471
  prerelease: false
458
472
  version_requirements: !ruby/object:Gem::Requirement
459
473
  requirements:
460
474
  - - '='
461
475
  - !ruby/object:Gem::Version
462
- version: 0.3.2
476
+ version: 0.4.0
463
477
  - !ruby/object:Gem::Dependency
464
478
  name: decidim-dev
465
479
  requirement: !ruby/object:Gem::Requirement
466
480
  requirements:
467
481
  - - '='
468
482
  - !ruby/object:Gem::Version
469
- version: 0.3.2
483
+ version: 0.4.0
470
484
  type: :development
471
485
  prerelease: false
472
486
  version_requirements: !ruby/object:Gem::Requirement
473
487
  requirements:
474
488
  - - '='
475
489
  - !ruby/object:Gem::Version
476
- version: 0.3.2
490
+ version: 0.4.0
477
491
  - !ruby/object:Gem::Dependency
478
492
  name: decidim-proposals
479
493
  requirement: !ruby/object:Gem::Requirement
480
494
  requirements:
481
495
  - - '='
482
496
  - !ruby/object:Gem::Version
483
- version: 0.3.2
497
+ version: 0.4.0
484
498
  type: :development
485
499
  prerelease: false
486
500
  version_requirements: !ruby/object:Gem::Requirement
487
501
  requirements:
488
502
  - - '='
489
503
  - !ruby/object:Gem::Version
490
- version: 0.3.2
504
+ version: 0.4.0
491
505
  - !ruby/object:Gem::Dependency
492
506
  name: decidim-meetings
493
507
  requirement: !ruby/object:Gem::Requirement
494
508
  requirements:
495
509
  - - '='
496
510
  - !ruby/object:Gem::Version
497
- version: 0.3.2
511
+ version: 0.4.0
498
512
  type: :development
499
513
  prerelease: false
500
514
  version_requirements: !ruby/object:Gem::Requirement
501
515
  requirements:
502
516
  - - '='
503
517
  - !ruby/object:Gem::Version
504
- version: 0.3.2
518
+ version: 0.4.0
505
519
  - !ruby/object:Gem::Dependency
506
520
  name: decidim-results
507
521
  requirement: !ruby/object:Gem::Requirement
508
522
  requirements:
509
523
  - - '='
510
524
  - !ruby/object:Gem::Version
511
- version: 0.3.2
525
+ version: 0.4.0
512
526
  type: :development
513
527
  prerelease: false
514
528
  version_requirements: !ruby/object:Gem::Requirement
515
529
  requirements:
516
530
  - - '='
517
531
  - !ruby/object:Gem::Version
518
- version: 0.3.2
532
+ version: 0.4.0
519
533
  description: Adds core features so other engines can hook into the framework.
520
534
  email:
521
535
  - josepjaume@gmail.com
@@ -565,10 +579,14 @@ files:
565
579
  - app/assets/stylesheets/decidim/application.scss.erb
566
580
  - app/assets/stylesheets/decidim/editor.sass
567
581
  - app/assets/stylesheets/decidim/email.css
582
+ - app/assets/stylesheets/decidim/extras/_add_comments.scss
568
583
  - app/assets/stylesheets/decidim/extras/_embed.scss
584
+ - app/assets/stylesheets/decidim/extras/_label-required.scss
569
585
  - app/assets/stylesheets/decidim/extras/_leaflet.scss
570
586
  - app/assets/stylesheets/decidim/extras/_quill.scss
587
+ - app/assets/stylesheets/decidim/extras/_reference.scss
571
588
  - app/assets/stylesheets/decidim/extras/_register_form.scss
589
+ - app/assets/stylesheets/decidim/extras/_social_icons_mini.scss
572
590
  - app/assets/stylesheets/decidim/layouts/_home.scss
573
591
  - app/assets/stylesheets/decidim/layouts/_user.scss
574
592
  - app/assets/stylesheets/decidim/layouts/_view.scss
@@ -634,6 +652,7 @@ files:
634
652
  - app/commands/decidim/update_account.rb
635
653
  - app/commands/decidim/update_notifications_settings.rb
636
654
  - app/constraints/decidim/current_feature.rb
655
+ - app/constraints/decidim/current_participatory_process.rb
637
656
  - app/controllers/concerns/decidim/action_authorization.rb
638
657
  - app/controllers/concerns/decidim/devise_controllers.rb
639
658
  - app/controllers/concerns/decidim/feature_settings.rb
@@ -655,6 +674,7 @@ files:
655
674
  - app/controllers/decidim/devise/passwords_controller.rb
656
675
  - app/controllers/decidim/devise/registrations_controller.rb
657
676
  - app/controllers/decidim/devise/sessions_controller.rb
677
+ - app/controllers/decidim/errors_controller.rb
658
678
  - app/controllers/decidim/features/base_controller.rb
659
679
  - app/controllers/decidim/locales_controller.rb
660
680
  - app/controllers/decidim/notifications_settings_controller.rb
@@ -683,9 +703,11 @@ files:
683
703
  - app/helpers/decidim/authorization_form_helper.rb
684
704
  - app/helpers/decidim/cookies_helper.rb
685
705
  - app/helpers/decidim/decidim_form_helper.rb
706
+ - app/helpers/decidim/feature_path_helper.rb
686
707
  - app/helpers/decidim/feature_reference_helper.rb
687
708
  - app/helpers/decidim/filters_helper.rb
688
709
  - app/helpers/decidim/humanize_booleans_helper.rb
710
+ - app/helpers/decidim/icon_helper.rb
689
711
  - app/helpers/decidim/language_chooser_helper.rb
690
712
  - app/helpers/decidim/layout_helper.rb
691
713
  - app/helpers/decidim/localized_locales_helper.rb
@@ -782,6 +804,9 @@ files:
782
804
  - app/views/decidim/devise/sessions/new.html.erb
783
805
  - app/views/decidim/devise/shared/_links.html.erb
784
806
  - app/views/decidim/devise/shared/_omniauth_buttons.html.erb
807
+ - app/views/decidim/devise/shared/_omniauth_buttons_mini.html.erb
808
+ - app/views/decidim/errors/internal_server_error.html.erb
809
+ - app/views/decidim/errors/not_found.html.erb
785
810
  - app/views/decidim/export_mailer/export.html.erb
786
811
  - app/views/decidim/newsletter_mailer/newsletter.html.erb
787
812
  - app/views/decidim/notifications_settings/show.html.erb
@@ -844,8 +869,6 @@ files:
844
869
  - app/views/layouts/decidim/participatory_process.html.erb
845
870
  - app/views/layouts/decidim/user_profile.html.erb
846
871
  - app/views/layouts/decidim/widget.html.erb
847
- - app/views/pages/404.html.erb
848
- - app/views/pages/500.html.erb
849
872
  - app/views/pages/decidim_page.html.erb
850
873
  - app/views/pages/home.html.erb
851
874
  - app/views/pages/home/_extended.html.erb
@@ -967,6 +990,7 @@ files:
967
990
  - lib/decidim/core/test/factories.rb
968
991
  - lib/decidim/core/test/shared_examples/authorable.rb
969
992
  - lib/decidim/core/test/shared_examples/comments_examples.rb
993
+ - lib/decidim/core/test/shared_examples/errors.rb
970
994
  - lib/decidim/core/test/shared_examples/has_attachments.rb
971
995
  - lib/decidim/core/test/shared_examples/has_category.rb
972
996
  - lib/decidim/core/test/shared_examples/has_feature.rb
@@ -1003,6 +1027,7 @@ files:
1003
1027
  - lib/decidim/menu.rb
1004
1028
  - lib/decidim/menu_item.rb
1005
1029
  - lib/decidim/menu_registry.rb
1030
+ - lib/decidim/notifiable.rb
1006
1031
  - lib/decidim/page_finder.rb
1007
1032
  - lib/decidim/query_extensions.rb
1008
1033
  - lib/decidim/reportable.rb