decidim-core 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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