-
Notifications
You must be signed in to change notification settings - Fork 2
Custom file placements (single)
Petr Marek edited this page Jan 14, 2019
·
1 revision
Let's create a catalogue placement for Folio::Site in MyProject.
Use folio_image_placement for Folio::Image placements and folio_document_placement for Folio::Document placements.
# app/models/my_project/catalogue_placement.rb
class MyProject::CataloguePlacement < Folio::FilePlacement::Base
folio_document_placement :catalogue_placement
end# app/decorators/models/folio/site_decorator.rb
Folio::Site.class_eval do
include Folio::HasAttachments
has_one_placement(:catalogue, placement: 'MyProject::CataloguePlacement')
endhas_one_placement creates two relations - has_one :catalogue_placement and has_one :catalogue, through: :catalogue_placement
# app/decorators/controllers/folio/console/base_controller_decorator.rb
Folio::Console::BaseController.class_eval do
private
def additional_file_placements_strong_params_keys
%i[
catalogue_placement_attributes
]
end
end# config/locales/activerecord.cs.yml
---
cs:
activerecord:
attributes:
folio/site:
catalogue_placement: KatalogUse the react_picker helper.
/ app/views/folio/console/sites/_additional_form_fields.slim
= react_picker f, :catalogue_placement, \
file_type: 'Folio::Document', \
title: Folio::Site.human_attribute_name(:catalogue_placement)