Skip to content

Commit 7c6ca74

Browse files
committed
Fix validation preventing file upload
1 parent ece5d15 commit 7c6ca74

2 files changed

Lines changed: 54 additions & 10 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# frozen_string_literal: true
2+
3+
### Decidim Zuerich Override
4+
#
5+
# Created at: 2025-08-25
6+
# Author: Thomas Burkhalter
7+
#
8+
# Original:
9+
# Module: decidim-admin
10+
# Class: app/forms/decidim/admin/attachment_form.rb
11+
#
12+
# Why?:
13+
# The validation for the `link` field checks for a valid url
14+
# even if a file is uploaded instead.
15+
#
16+
# Original Code:
17+
# ```ruby
18+
# validates :link, url: true, if: -> { link.present? }
19+
# ```
20+
#
21+
###
22+
23+
module DecidimZuerich
24+
module Admin
25+
module AttachmentForm
26+
extend ActiveSupport::Concern
27+
28+
included do
29+
_validators[:link] = []
30+
31+
link_callbacks = _validate_callbacks.select do |callback|
32+
callback.filter.attributes.include?(:link)
33+
end
34+
35+
link_callbacks.each do |callback|
36+
_validate_callbacks.delete(callback)
37+
end
38+
39+
validates :link, url: true, if: -> { link.present? }
40+
end
41+
end
42+
end
43+
end

config/initializers/decidim_zuerich_customization.rb

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,21 @@
1212
INCLUDES = [
1313
#[Decidim::Debates::CreateDebateEvent, DecidimZuerich::Debates::CreateDebateEvent],
1414
[Decidim::FormBuilder, DecidimZuerich::FormBuilder],
15-
[Decidim::Forms::Admin::UpdateQuestionnaire, DecidimZuerich::Forms::Admin::UpdateQuestionnaire]
15+
[Decidim::Forms::Admin::UpdateQuestionnaire, DecidimZuerich::Forms::Admin::UpdateQuestionnaire],
16+
[Decidim::Admin::AttachmentForm, DecidimZuerich::Admin::AttachmentForm]
1617
].freeze
1718

1819

1920
PREPENDS = [
20-
#[Decidim::ApplicationMailer, DecidimZuerich::ApplicationMailer],
21-
#[Decidim::ParticipatoryProcesses::Permissions, DecidimZuerich::ParticipatoryProcesses::Permissions],
22-
#[Decidim::Proposals::MapHelper, DecidimZuerich::Proposals::MapHelper],
23-
#[Decidim::System::RegisterOrganization, DecidimZuerich::System::RegisterOrganization],
24-
#[Decidim::System::UpdateOrganization, DecidimZuerich::System::UpdateOrganization],
25-
[Decidim::Upgrade::WysiwygMigrator, DecidimZuerich::Upgrade::WysiwygMigrator],
26-
[Decidim::PushNotificationMessage, DecidimZuerich::PushNotificationMessage],
27-
[Decidim::PushNotificationPresenter, DecidimZuerich::PushNotificationPresenter],
28-
[Decidim::LayoutHelper, DecidimZuerich::LayoutHelper]
21+
#[Decidim::ApplicationMailer, DecidimZuerich::ApplicationMailer],
22+
#[Decidim::ParticipatoryProcesses::Permissions, DecidimZuerich::ParticipatoryProcesses::Permissions],
23+
#[Decidim::Proposals::MapHelper, DecidimZuerich::Proposals::MapHelper],
24+
#[Decidim::System::RegisterOrganization, DecidimZuerich::System::RegisterOrganization],
25+
#[Decidim::System::UpdateOrganization, DecidimZuerich::System::UpdateOrganization],
26+
[Decidim::Upgrade::WysiwygMigrator, DecidimZuerich::Upgrade::WysiwygMigrator],
27+
[Decidim::PushNotificationMessage, DecidimZuerich::PushNotificationMessage],
28+
[Decidim::PushNotificationPresenter, DecidimZuerich::PushNotificationPresenter],
29+
[Decidim::LayoutHelper, DecidimZuerich::LayoutHelper]
2930
].freeze
3031

3132
OVERRIDES = [

0 commit comments

Comments
 (0)