ArchimediaZerogroup / alchemy-custom-model

Gem for simplify custom model implementations
MIT License
2 stars 0 forks source link

Alchemy::Custom::Model [WIP]

Short description and motivation.

Usage

How to use my plugin.

Installation

Add this line to your application's Gemfile:

gem 'alchemy-custom-model'

And then execute:

$ bundle

Or install it yourself as:

$ gem install alchemy-custom-model

Then run the installer

bin/rails  alchemy_custom_model:install

Usage

* attach yours belongs_to relations to alchemy_elements
```ruby

    # For attachments, the foreign_key is the key defined in the model, can be omitted if it's standard Rails naming
    belongs_to :file, class_name: "Alchemy::Attachment", optional: true, foreign_key: :file_id
    global_id_setter :file

    # For Pictures
    belongs_to :picture, class_name: 'Alchemy::Picture', optional: true, touch: true
    global_id_setter :picture

<%= base_form_container do %>

<%= simple_form_for [:admin,@obj] do |f| %>
<%= f.input :name %> <%= rich_text_editor(f, :description) %> <%= single_image_input(f, :picture) %> <%= single_attachment_input(f, :file) %> ... ``` * Per elementi come subobject seguire l'esempio di codice nei test che rivedono le varie opzioni * Per modelli che si legano direttamente con componenti di alchemy è necessario utilizzare delle relazioni generiche che identificato il record: ```ruby belongs_to :picture, class_name: 'Alchemy::Picture', touch: true belongs_to :alchemy_file_instance, class_name: 'Alchemy::Picture', foreign_key: :picture_id #relazione generica per i files utilizzata nel volume di elfinder ``` * Per la visualizzazione creare quindi un layout in Alchemy con attributi custom_model e custom_model_action che serve per identificare la generazione dei link index e show ```yml - name: layout_name_list elements: [element_for_list] custom_model: "CustomModelClass" custom_model_action: "index" cache: false - name: layout_name_show elements: [element_for_show] custom_model: "CustomModelClass" custom_model_action: "show" cache: false ``` * E' necessario quindi creare le due pagine nella struttura di alchemy ## Development git clone --recursive git@github.com:ArchimediaZerogroup/alchemy-custom-model.git docker build -t alchemy_custom_image . docker run -it -p3000:3000 --rm -v "$(pwd)":/app alchemy_custom_image bin/rails s -b 0.0.0.0 ## License The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).