From fba9f3d2fbafa9f474ca6c5776078440edd1562a Mon Sep 17 00:00:00 2001 From: Torsten Date: Fri, 20 Jan 2023 16:49:11 +0200 Subject: [PATCH] use simple_form and hash updates --- app/controllers/merged/cards_controller.rb | 11 ++--------- app/controllers/merged/sections_controller.rb | 5 +---- app/models/merged/view_base.rb | 7 +++++++ 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/app/controllers/merged/cards_controller.rb b/app/controllers/merged/cards_controller.rb index 6699cda..5580095 100644 --- a/app/controllers/merged/cards_controller.rb +++ b/app/controllers/merged/cards_controller.rb @@ -36,15 +36,8 @@ module Merged end def update - @card.allowed_fields.each do |key| - if( params.has_key?(key) ) - @card.update(key, params[key]) - end - end - options = params[:option] - @card.option_definitions.each do |option| - @card.set_option(option.name, options[option.name]) - end if options + @card.update(params[:card]) + @card.update_options( params[:options]) @card.edit_save(current_member.email) redirect_to section_cards_url(@card.section.id) , notice: "Updated #{@card.header}" end diff --git a/app/controllers/merged/sections_controller.rb b/app/controllers/merged/sections_controller.rb index 27299a9..2812fa7 100644 --- a/app/controllers/merged/sections_controller.rb +++ b/app/controllers/merged/sections_controller.rb @@ -66,10 +66,7 @@ module Merged def update @section.update(params[:section]) - options = params[:option] - @section.option_definitions.each do |option| - @section.set_option(option.name, options[option.name]) - end if options + @section.update_options( params[:options]) @section.edit_save(current_member.email) redirect_to :section , notice: "Update ok" end diff --git a/app/models/merged/view_base.rb b/app/models/merged/view_base.rb index 22f82ee..610eca7 100644 --- a/app/models/merged/view_base.rb +++ b/app/models/merged/view_base.rb @@ -59,6 +59,7 @@ module Merged end def update(hash) + return unless hash hash.each do |key , value| raise "unsuported field #{key} for #{template}:#{allowed_fields}" unless allowed_fields.include?(key.to_sym) if(! attributes[key].nil? ) # first setting ok, types not (yet?) specified @@ -70,6 +71,12 @@ module Merged end end + def update_options( options ) + return unless options + option_definitions.each do |option| + set_option(option.name, options[option.name]) + end + end #other may be nil def swap_index_with(other) return unless other