The Homes module adds static home capabilities to any participatory process. It basically provides an interface to include arbitrary HTML content to any step.
Homes will be available as a Component for a Participatory Process.
Add this line to your application's Gemfile:
gem 'decidim-homes'
And then execute:
bundle
Para exemplificar vamos trabalhar com um atributo inteiro
, com o nome exemplo
.
module Decidim
module Homes
class Home < Homes::ApplicationRecord
# ......
attribute :exemplo, :integer
# ......
end
end
end
module Decidim
module Homes
module Admin
# This class holds a Form to update homes from Decidim's admin panel.
class HomeForm < Decidim::Form
# ......
attribute :exemplo, Integer
# ......
end
end
end
end
Para o commands temos que adicionar em 2 arquivos:
module Decidim
module Homes
module Admin
class UpdateHome < Decidim::Command
# ......
def update_home
Decidim.traceability.update!(
# .... outros atributos
exemplo: @form.exemplo
)
end
# ......
end
end
end
end
module Decidim
module Homes
module Admin
class CopyHome < Decidim::Command
# ......
def call
Decidim::Homes::Home.transaction do
homes = Decidim::Homes::Home.where(component: @context[:old_component])
homes.each do |home|
Decidim::Homes::Home.create!(
# .... outros atributos
exemplo: home.exemplo,
)
end
end
broadcast(:ok)
rescue ActiveRecord::RecordInvalid
broadcast(:invalid)
end
# ......
end
end
end
end
Caso voce ainda não tenha criado o banco, voce pode adicionar diretamente no arquivo de criação:
class CreateDecidimHomes < ActiveRecord::Migration[5.0]
def change
create_table :decidim_homes_homes do |t|
# .... outros atributos
t.integer :exemplo
t.timestamps
end
end
end
Mas caso o seu banco ja tenha sido criado, você precisa criar um arquivo de modificação:
Dentro do diretório Homes
execute o seguinte comando:
rails g migration AddExemploToHomes exemplo:integer
Deve-se esperar o seguinte código:
class AddExemploToHomes < ActiveRecord::Migration[6.0]
def change
add_column :decidim_homes_homes, :exemplo, :integer
end
end