diff --git a/app/helpers/admin/application_helper.rb b/app/helpers/admin/application_helper.rb index 8eecec8163b92f288f2b0ad0d01f7f597964499b..91f5526ed5ad01a928e9abddfc2dac25a2465ae8 100644 --- a/app/helpers/admin/application_helper.rb +++ b/app/helpers/admin/application_helper.rb @@ -81,6 +81,21 @@ module Admin::ApplicationHelper collection end + def collection_tree_for_checkboxes(list, except = nil) + collection = collection_tree(list, except) + collection.map { |object| + [ + sanitize(object[:label]), + object[:id], + { + data: { + parent: object[:parent_id] + } + } + ] + } + end + private def polymorphic_url_param(object_or_class, **options) diff --git a/app/views/admin/communication/website/posts/_form.html.erb b/app/views/admin/communication/website/posts/_form.html.erb index 953383672c28991ce41f213a991a34a0f4c85ab8..c96bd6db126780c99ed5ccd4da9cb474fbec37ae 100644 --- a/app/views/admin/communication/website/posts/_form.html.erb +++ b/app/views/admin/communication/website/posts/_form.html.erb @@ -11,6 +11,17 @@ <%= f.input :text, as: :rich_text_area %> </div> </div> + <div class="card flex-fill w-100"> + <div class="card-header"> + <h5 class="card-title mb-0"><%= t('activerecord.attributes.communication/website/post.categories') %></h5> + </div> + <div class="card-body"> + <%= f.association :categories, + label_text: false, + as: :check_boxes, + collection: collection_tree_for_checkboxes(@website.categories) if @website.categories.any? %> + </div> + </div> </div> <div class="col-md-4"> <div class="card flex-fill w-100"> @@ -28,13 +39,6 @@ <%= f.input :published_at, html5: true %> <%= f.input :pinned %> <%= f.association :author, collection: current_university.people.authors.ordered %> - <%= f.association :categories, - as: :check_boxes, - collection: collection_tree(@website.categories).map { |category| [ - sanitize(category[:label]), - category[:id], - { data: { parent: category[:parent_id] } } - ] } if @website.categories.any? %> </div> </div> <div class="card flex-fill w-100">