decidim: mirror koopa-decidim setup (9027, docs for /sm showcase)
This commit is contained in:
parent
d519fb3c80
commit
9ae0dfa429
21 changed files with 998 additions and 2 deletions
78
configs/decidim/bootstrap.rb
Normal file
78
configs/decidim/bootstrap.rb
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
# frozen_string_literal: true
|
||||
# Create system admin + organization + org admin. Idempotent.
|
||||
# Usage: bundle exec rails runner /code/lib/koopa_bootstrap.rb
|
||||
|
||||
host = ENV.fetch("DECIDIM_HOST", "decidim.hacktivism.ch")
|
||||
sys_email = ENV.fetch("DECIDIM_SYSTEM_EMAIL")
|
||||
sys_password = ENV.fetch("DECIDIM_SYSTEM_PASSWORD")
|
||||
admin_email = ENV.fetch("DECIDIM_ADMIN_EMAIL")
|
||||
admin_password = ENV.fetch("DECIDIM_ADMIN_PASSWORD")
|
||||
admin_name = ENV.fetch("DECIDIM_ADMIN_NAME", "hacktivism")
|
||||
org_name = ENV.fetch("DECIDIM_APPLICATION_NAME", "hacktivism")
|
||||
|
||||
sys = Decidim::System::Admin.find_or_initialize_by(email: sys_email)
|
||||
sys.password = sys_password
|
||||
sys.password_confirmation = sys_password
|
||||
sys.save!
|
||||
puts "system admin: #{sys.email}"
|
||||
|
||||
org = Decidim::Organization.find_by(host: host)
|
||||
if org.nil?
|
||||
attrs = {
|
||||
host: host,
|
||||
default_locale: ENV.fetch("DECIDIM_DEFAULT_LOCALE", "en"),
|
||||
available_locales: ENV.fetch("DECIDIM_AVAILABLE_LOCALES", "en,de,fr").split(","),
|
||||
reference_prefix: "HCK",
|
||||
time_zone: "Europe/Zurich",
|
||||
users_registration_mode: "enabled",
|
||||
force_users_to_authenticate_before_access_organization: false,
|
||||
available_authorizations: [],
|
||||
tos_version: Time.current,
|
||||
colors: {
|
||||
"primary" => "#e8a838",
|
||||
"secondary" => "#3ecfbf",
|
||||
"tertiary" => "#3d3128",
|
||||
"success" => "#16a34a",
|
||||
"warning" => "#f0d090",
|
||||
"alert" => "#e7131a"
|
||||
},
|
||||
header_snippets: %(<link rel="stylesheet" href="/hacktivism.css"><script src="/hacktivism-consent.js"></script><link rel="icon" href="/hacktivism-favicon.svg">)
|
||||
}
|
||||
name_val = { "en" => org_name, "de" => org_name, "fr" => org_name }
|
||||
desc_val = { "en" => "hacktivism participatory platform", "de" => "hacktivism Partizipationsplattform", "fr" => "plateforme participative hacktivism" }
|
||||
begin
|
||||
org = Decidim::Organization.new(attrs.merge(name: name_val, description: desc_val))
|
||||
org.save!
|
||||
rescue StandardError
|
||||
org = Decidim::Organization.new(attrs.merge(name: org_name, description: "hacktivism participatory platform"))
|
||||
org.save!
|
||||
end
|
||||
Decidim::System::CreateDefaultPages.call(org) if defined?(Decidim::System::CreateDefaultPages)
|
||||
Decidim::System::CreateDefaultContentBlocks.call(org) if defined?(Decidim::System::CreateDefaultContentBlocks)
|
||||
puts "organization created host=#{org.host}"
|
||||
else
|
||||
org.colors = {
|
||||
"primary" => "#e8a838",
|
||||
"secondary" => "#3ecfbf",
|
||||
"tertiary" => "#3d3128",
|
||||
"success" => "#16a34a",
|
||||
"warning" => "#f0d090",
|
||||
"alert" => "#e7131a"
|
||||
}
|
||||
org.header_snippets = %(<link rel="stylesheet" href="/hacktivism.css"><script src="/hacktivism-consent.js"></script><link rel="icon" href="/hacktivism-favicon.svg">)
|
||||
org.save!
|
||||
puts "organization updated host=#{org.host}"
|
||||
end
|
||||
|
||||
user = Decidim::User.find_or_initialize_by(email: admin_email, organization: org)
|
||||
user.name = admin_name
|
||||
user.nickname = admin_name.downcase.gsub(/[^a-z0-9_]/, "")[0, 20]
|
||||
user.password = admin_password
|
||||
user.password_confirmation = admin_password
|
||||
user.admin = true
|
||||
user.confirmed_at ||= Time.current
|
||||
user.tos_agreement = true
|
||||
user.accepted_tos_version = org.tos_version
|
||||
user.locale = org.default_locale
|
||||
user.save!
|
||||
puts "org admin: #{user.email}"
|
||||
Loading…
Add table
Add a link
Reference in a new issue