From 3c3252c74fcced99a835aa834cd8e189d29ae8a5 Mon Sep 17 00:00:00 2001 From: "jonathan.kerr" Date: Fri, 18 Jul 2025 21:39:52 +0100 Subject: [PATCH 1/3] Remove need for sponsor avatar This will remove the need for an avatar for sponsors. This should be a temporary change, but will allow admins to continue creating new sponsors --- app/views/admin/sponsors/_form.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/sponsors/_form.html.haml b/app/views/admin/sponsors/_form.html.haml index 42e3c7d3c..952525c23 100644 --- a/app/views/admin/sponsors/_form.html.haml +++ b/app/views/admin/sponsors/_form.html.haml @@ -7,7 +7,7 @@ hint: raw(t('admin.shared.markdown_hint', link: link_to(t('admin.shared.markdown'), 'https://commonmark.org/help/'))) - if current_user.has_role?(:admin) = f.input :level, collection: Sponsor.levels.keys, label_method: :humanize - = f.input :avatar, as: :file, required: !@sponsor.avatar? + = f.input :avatar, as: :file - if @sponsor.avatar? = image_tag(@sponsor.avatar.url, alt: "#{@sponsor.name} logo", class: 'small-image mw-100 mb-4', 'data-test': 'sponsor-logo') = f.hidden_field :image_cache From f401d6767d94b1ada8dccc7d3e37414faf5e7e2e Mon Sep 17 00:00:00 2001 From: "jonathan.kerr" Date: Sat, 19 Jul 2025 09:31:30 +0100 Subject: [PATCH 2/3] Revert "Remove need for sponsor avatar" This reverts commit 3c3252c74fcced99a835aa834cd8e189d29ae8a5. --- app/views/admin/sponsors/_form.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/sponsors/_form.html.haml b/app/views/admin/sponsors/_form.html.haml index 952525c23..42e3c7d3c 100644 --- a/app/views/admin/sponsors/_form.html.haml +++ b/app/views/admin/sponsors/_form.html.haml @@ -7,7 +7,7 @@ hint: raw(t('admin.shared.markdown_hint', link: link_to(t('admin.shared.markdown'), 'https://commonmark.org/help/'))) - if current_user.has_role?(:admin) = f.input :level, collection: Sponsor.levels.keys, label_method: :humanize - = f.input :avatar, as: :file + = f.input :avatar, as: :file, required: !@sponsor.avatar? - if @sponsor.avatar? = image_tag(@sponsor.avatar.url, alt: "#{@sponsor.name} logo", class: 'small-image mw-100 mb-4', 'data-test': 'sponsor-logo') = f.hidden_field :image_cache From 3de105287eeb20e22ef969ce5e706181cad34356 Mon Sep 17 00:00:00 2001 From: "jonathan.kerr" Date: Sat, 19 Jul 2025 09:56:41 +0100 Subject: [PATCH 3/3] Make default avatar a square I've used a blank square from Wikipedia as a default for the avatar. This is a little brittle, because it assumes wikipedia will always be around and that we can use the square. We could alter this to be a square that we own, if we wanted. This should be changed as soon as we've properly fixed the logo upload --- app/controllers/admin/sponsors_controller.rb | 6 +++++- app/models/sponsor.rb | 2 +- app/uploaders/avatar_uploader.rb | 12 ++++++------ app/views/admin/sponsors/_form.html.haml | 2 +- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/controllers/admin/sponsors_controller.rb b/app/controllers/admin/sponsors_controller.rb index 8e23e2d90..cfc0c4bf6 100644 --- a/app/controllers/admin/sponsors_controller.rb +++ b/app/controllers/admin/sponsors_controller.rb @@ -63,12 +63,16 @@ def update private def sponsor_params - params.require(:sponsor).permit(:name, :avatar, :website, :seats, :accessibility_info, + params + .require(:sponsor) + .permit(:name, :avatar, :website, :seats, :accessibility_info, :number_of_coaches, :level, :description, address_attributes: %i[id flat street postal_code city latitude longitude directions], contacts_attributes: %i[id name surname email mailing_list_consent _destroy]) + .with_defaults(avatar: "https://en.m.wikipedia.org/wiki/File:Blank_Square.svg") + end def set_sponsor diff --git a/app/models/sponsor.rb b/app/models/sponsor.rb index 30443a3b8..682e6f8ce 100644 --- a/app/models/sponsor.rb +++ b/app/models/sponsor.rb @@ -31,7 +31,7 @@ class Sponsor < ApplicationRecord accepts_nested_attributes_for :address validates :level, inclusion: { in: Sponsor.levels.keys } - validates :name, :address, :avatar, :website, :level, presence: true + validates :name, :address, :website, :level, presence: true validate :website_is_url, if: :website? default_scope -> { order('updated_at desc') } diff --git a/app/uploaders/avatar_uploader.rb b/app/uploaders/avatar_uploader.rb index 1615e7590..2bb0b5e8b 100644 --- a/app/uploaders/avatar_uploader.rb +++ b/app/uploaders/avatar_uploader.rb @@ -12,12 +12,12 @@ def store_dir end # Provide a default URL as a default if there hasn't been a file uploaded: - # def default_url - # # For Rails 3.1+ asset pipeline compatibility: - # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_')) - # - # "/images/fallback/" + [version_name, "default.png"].compact.join('_') - # end + def default_url + # For Rails 3.1+ asset pipeline compatibility: + # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_')) + + "https://en.m.wikipedia.org/wiki/File:Blank_Square.svg" + end # Process files as they are uploaded: # process :scale => [200, 300] diff --git a/app/views/admin/sponsors/_form.html.haml b/app/views/admin/sponsors/_form.html.haml index 42e3c7d3c..952525c23 100644 --- a/app/views/admin/sponsors/_form.html.haml +++ b/app/views/admin/sponsors/_form.html.haml @@ -7,7 +7,7 @@ hint: raw(t('admin.shared.markdown_hint', link: link_to(t('admin.shared.markdown'), 'https://commonmark.org/help/'))) - if current_user.has_role?(:admin) = f.input :level, collection: Sponsor.levels.keys, label_method: :humanize - = f.input :avatar, as: :file, required: !@sponsor.avatar? + = f.input :avatar, as: :file - if @sponsor.avatar? = image_tag(@sponsor.avatar.url, alt: "#{@sponsor.name} logo", class: 'small-image mw-100 mb-4', 'data-test': 'sponsor-logo') = f.hidden_field :image_cache