diff --git a/app/models/metadata_has_many.rb b/app/models/metadata_has_many.rb index b4db4454..a15f1241 100644 --- a/app/models/metadata_has_many.rb +++ b/app/models/metadata_has_many.rb @@ -42,6 +42,9 @@ class MetadataHasMany < MetadataRelatedPosts return true unless inverse? (had_many - has_many).each do |remove| + # No modificar nada si la relación ya estaba deshecha + next unless remove[inverse]&.value == post.uuid.value + remove[inverse]&.value = remove[inverse].default_value end diff --git a/app/views/posts/_htmx_form.haml b/app/views/posts/_htmx_form.haml index 6968cda7..afa1b44c 100644 --- a/app/views/posts/_htmx_form.haml +++ b/app/views/posts/_htmx_form.haml @@ -75,6 +75,7 @@ Enviamos valores vacíos o arrastrados desde el formulario anterior para los atributos ignorados - except.each do |attr| - %input{ type: 'hidden', name: "#{base}[#{attr}]", value: pluck_param(attr, optional: true) } + - if (value = pluck_param(attr, optional: true)).present? + %input{ type: 'hidden', name: "#{base}[#{attr}]", value: value } = yield(:post_form) diff --git a/app/views/posts/modal.haml b/app/views/posts/modal.haml index e589dfa8..93d7e6a5 100644 --- a/app/views/posts/modal.haml +++ b/app/views/posts/modal.haml @@ -59,7 +59,7 @@ = render 'posts/attributes', site: site, post: post, dir: dir, base: base, locale: locale, except: except -# @todo Volver obligatorios? - except.each do |attr| - - if (value = pluck_param(attr, optional: true)) + - if (value = pluck_param(attr, optional: true)).present? = hidden_field_tag "#{base}[#{attr}]", value - content_for :"#{modal_id}_footer" do