Skip to content

Commit

Permalink
feat: Add multiple modules (#520)
Browse files Browse the repository at this point in the history
* feat: Add multiple modules

* fix: Change branches

* fix: Add missing migrations

* fix: Refactor migrations

* fix: Configure Half Signup

---------

Co-authored-by: quentinchampenois <[email protected]>
  • Loading branch information
AyakorK and Quentinchampenois authored May 17, 2024
1 parent b2fa9bf commit 2c3f6d5
Show file tree
Hide file tree
Showing 11 changed files with 122 additions and 18 deletions.
3 changes: 3 additions & 0 deletions .env-example
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,6 @@ RAILS_LOG_LEVEL=warn

#Timeout for the unsubscribe link of the newsletter
#NEWSLETTERS_UNSUBSCRIBE_TIMEOUT=

# Redirect to the TOS page after signup (default: true)
# DECIDIM_HALF_SIGNUP_SHOW_TOS_PAGE_AFTER_SIGNUP=true
8 changes: 6 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,23 @@ gem "decidim-conferences", "~> #{DECIDIM_VERSION}.0"
gem "decidim-initiatives", "~> #{DECIDIM_VERSION}.0"
gem "decidim-templates", "~> #{DECIDIM_VERSION}.0"

# Load Budgets Booth to avoid errors
gem "decidim-budgets_booth", github: "OpenSourcePolitics/decidim-module-ptp"

# External Decidim gems
gem "decidim-budget_category_voting", git: "https://github.com/alecslupu-pfa/decidim-budget_category_voting.git", branch: DECIDIM_BRANCH
gem "decidim-cache_cleaner"
gem "decidim-category_enhanced", "~> 0.0.1"
gem "decidim-decidim_awesome"
gem "decidim-extended_socio_demographic_authorization_handler", git: "https://github.com/OpenSourcePolitics/decidim-module-extended_socio_demographic_authorization_handler.git",
branch: DECIDIM_BRANCH
gem "decidim-extra_user_fields", git: "https://github.com/OpenSourcePolitics/decidim-module-extra_user_fields.git", branch: "release/0.27-stable"
gem "decidim-extra_user_fields", git: "https://github.com/OpenSourcePolitics/decidim-module-extra_user_fields.git", branch: "temp/twilio-compatibility-0.27"
gem "decidim-friendly_signup", git: "https://github.com/OpenSourcePolitics/decidim-module-friendly_signup.git"
gem "decidim-gallery", git: "https://github.com/OpenSourcePolitics/decidim-module-gallery.git", branch: "fix/nokogiri_deps"
gem "decidim-half_signup", git: "https://github.com/OpenSourcePolitics/decidim-module-half_sign_up.git", branch: "feature/half_signup_and_budgets_booth"
gem "decidim-homepage_interactive_map", git: "https://github.com/OpenSourcePolitics/decidim-module-homepage_interactive_map.git", branch: DECIDIM_BRANCH
gem "decidim-ludens", git: "https://github.com/OpenSourcePolitics/decidim-ludens.git", branch: DECIDIM_BRANCH
gem "decidim-phone_authorization_handler", git: "https://github.com/OpenSourcePolitics/decidim-module_phone_authorization_handler", branch: "release/0.27-stable"
gem "decidim-phone_authorization_handler", git: "https://github.com/OpenSourcePolitics/decidim-module_phone_authorization_handler", branch: DECIDIM_BRANCH
gem "decidim-spam_detection"
gem "decidim-survey_multiple_answers", git: "https://github.com/OpenSourcePolitics/decidim-module-survey_multiple_answers"
gem "decidim-term_customizer", git: "https://github.com/OpenSourcePolitics/decidim-module-term_customizer.git", branch: "fix/email_with_precompile"
Expand Down
42 changes: 27 additions & 15 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ GIT

GIT
remote: https://github.com/OpenSourcePolitics/decidim-module-extra_user_fields.git
revision: bc26f39233d3216d80fd62d23cbc2e9831173be4
branch: release/0.27-stable
revision: ce52252129fe2dc13c0cdf91a517e43790fff97f
branch: temp/twilio-compatibility-0.27
specs:
decidim-extra_user_fields (0.27.2)
country_select (~> 4.0)
country_select (~> 9.0)
decidim-core (>= 0.27.0, < 0.28)
deface (~> 1.5)

Expand All @@ -40,6 +40,15 @@ GIT
decidim-admin (>= 0.26.0, < 0.28.0)
decidim-core (>= 0.26.0, < 0.28.0)

GIT
remote: https://github.com/OpenSourcePolitics/decidim-module-half_sign_up.git
revision: cec7c1f329777a1a011214346c7a957475fa7679
branch: feature/half_signup_and_budgets_booth
specs:
decidim-half_signup (0.27.0)
countries (~> 5.1, >= 5.1.2)
decidim-core (~> 0.27.0)

GIT
remote: https://github.com/OpenSourcePolitics/decidim-module-homepage_interactive_map.git
revision: dd685166fdf953a11bd6a9e0dac56feca3bd0708
Expand All @@ -52,6 +61,14 @@ GIT
rgeo (~> 2.4)
rgeo-proj4 (~> 3.1)

GIT
remote: https://github.com/OpenSourcePolitics/decidim-module-ptp.git
revision: 18c7422633b743ff6fe63e1dda90bb3480d741a8
specs:
decidim-budgets_booth (0.27.0)
decidim-budgets (~> 0.27.0)
decidim-core (~> 0.27.0)

GIT
remote: https://github.com/OpenSourcePolitics/decidim-module-survey_multiple_answers
revision: 65ea83227f99d0f3d6237f98334ecc914a2a5597
Expand Down Expand Up @@ -292,13 +309,10 @@ GEM
commonmarker (0.23.10)
concurrent-ruby (1.2.3)
connection_pool (2.4.1)
countries (3.1.0)
i18n_data (~> 0.11.0)
sixarm_ruby_unaccent (~> 1.1)
unicode_utils (~> 1.4)
country_select (4.0.0)
countries (~> 3.0)
sort_alphabetical (~> 1.0)
countries (5.7.2)
unaccent (~> 0.3)
country_select (9.0.0)
countries (> 5.0, < 7.0)
crack (1.0.0)
bigdecimal
rexml
Expand Down Expand Up @@ -638,7 +652,6 @@ GEM
rails-i18n
rainbow (>= 2.2.2, < 4.0)
terminal-table (>= 1.5.1)
i18n_data (0.11.0)
icalendar (2.10.1)
ice_cube (~> 0.16)
ice_cube (0.16.4)
Expand Down Expand Up @@ -1000,15 +1013,12 @@ GEM
simplecov (~> 0.19)
simplecov-html (0.12.3)
simplecov_json_formatter (0.1.4)
sixarm_ruby_unaccent (1.2.2)
smart_properties (1.17.0)
snaky_hash (2.0.1)
hashie
version_gem (~> 1.1, >= 1.1.1)
social-share-button (1.2.4)
coffee-rails
sort_alphabetical (1.1.0)
unicode_utils (>= 1.2.2)
spring (2.1.1)
spring-watcher-listen (2.0.1)
listen (>= 2.7, < 4.0)
Expand Down Expand Up @@ -1038,8 +1048,8 @@ GEM
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
uber (0.1.0)
unaccent (0.4.0)
unicode-display_width (2.5.0)
unicode_utils (1.4.0)
uri (0.13.0)
valid_email2 (2.3.1)
activemodel (>= 3.2)
Expand Down Expand Up @@ -1119,6 +1129,7 @@ DEPENDENCIES
dalli
decidim (~> 0.27.0)
decidim-budget_category_voting!
decidim-budgets_booth!
decidim-cache_cleaner
decidim-category_enhanced (~> 0.0.1)
decidim-conferences (~> 0.27.0)
Expand All @@ -1128,6 +1139,7 @@ DEPENDENCIES
decidim-extra_user_fields!
decidim-friendly_signup!
decidim-gallery!
decidim-half_signup!
decidim-homepage_interactive_map!
decidim-initiatives (~> 0.27.0)
decidim-ludens!
Expand Down
1 change: 1 addition & 0 deletions config/initializers/decidim.rb
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
# take over user accounts.
#
config.enable_html_header_snippets = true
config.sms_gateway_service = "Decidim::Verifications::Sms::ExampleGateway"

# SMS gateway configuration
#
Expand Down
7 changes: 7 additions & 0 deletions config/initializers/half_signup.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# frozen_string_literal: true

Decidim::HalfSignup.configure do |config|
config.show_tos_page_after_signup = Rails.application.secrets.dig(:decidim, :half_signup, :show_tos_page_after_signup)
config.auth_code_length = 4
config.default_countries = ENV.fetch("AVAILABLE_LOCALES", "fr").split(",").map(&:to_sym)
end
2 changes: 2 additions & 0 deletions config/secrets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ default: &default
repetition_times: <%= ENV.fetch("DECIDIM_ADMIN_PASSWORD_REPETITION_TIMES", 5).to_i %>
strong: <%= ENV.fetch("DECIDIM_ADMIN_PASSWORD_STRONG", "false").to_s %>
currency: <%= ENV["CURRENCY"] || "€" %>
half_signup:
show_tos_page_after_signup: <%= ENV.fetch("DECIDIM_HALF_SIGNUP_SHOW_TOS_PAGE_AFTER_SIGNUP", "true") == "true" %>
initiatives:
creation_enabled: <%= ENV.fetch("INITIATIVES_CREATION_ENABLED", "auto").to_s %>
similarity_threshold: <%= ENV.fetch("INITIATIVES_SIMILARITY_THRESHOLD", 0.25).to_f %>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# frozen_string_literal: true
# This migration comes from decidim_budgets_booth (originally 20230301155948)

class AddMainImageToDecidimBudgetsBudgets < ActiveRecord::Migration[6.1]
def up
add_column :decidim_budgets_budgets, :main_image, :string, if_not_exists: true
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# frozen_string_literal: true
# This migration comes from decidim_half_signup (originally 20230215093510)

class AddPhoneNumberToDecidimUser < ActiveRecord::Migration[6.1]
def up
add_column :decidim_users, :phone_number, :string, if_not_exists: true
add_column :decidim_users, :phone_country, :string, if_not_exists: true
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# frozen_string_literal: true
# This migration comes from decidim_budgets_booth (originally 20230303144938)

class CreateDecidimBudgetsUserData < ActiveRecord::Migration[6.1]
def up
create_table :decidim_budgets_user_data do |t|
t.jsonb :metadata
t.boolean :affirm_statements_are_correct, default: false
t.references :decidim_component, null: false, indec: true
t.references :decidim_user, null: false, index: true

t.timestamps
end

add_index :decidim_budgets_user_data, [:decidim_component_id, :decidim_user_id], unique: true, name: "decidim_budgets_user_data_unique_user_and_component"
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# frozen_string_literal: true
# This migration comes from decidim_half_signup (originally 20230214091207)

class CreateAuthSettings < ActiveRecord::Migration[6.1]
def up
create_table :decidim_half_signup_auth_settings do |t|
t.boolean :enable_partial_sms_signup, default: false
t.boolean :enable_partial_email_signup, default: false
t.string :slug
t.references :decidim_organization, foreign_key: true, index: { name: :index_half_signup_auth_settings_on_organization_id }

t.timestamps
end
end
end
28 changes: 27 additions & 1 deletion db/schema.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.

ActiveRecord::Schema.define(version: 2024_04_04_060339) do
ActiveRecord::Schema.define(version: 2024_04_26_092405) do

# These are extensions that must be enabled in order to support this database
enable_extension "ltree"
Expand Down Expand Up @@ -367,6 +367,7 @@
t.datetime "updated_at", null: false
t.bigint "decidim_scope_id"
t.json "category_budget_rules", default: []
t.string "main_image"
t.index ["decidim_component_id"], name: "index_decidim_budgets_budgets_on_decidim_component_id"
t.index ["decidim_scope_id"], name: "index_decidim_budgets_budgets_on_decidim_scope_id"
end
Expand Down Expand Up @@ -408,6 +409,18 @@
t.index ["decidim_scope_id"], name: "index_decidim_budgets_projects_on_decidim_scope_id"
end

create_table "decidim_budgets_user_data", force: :cascade do |t|
t.jsonb "metadata"
t.boolean "affirm_statements_are_correct", default: false
t.bigint "decidim_component_id", null: false
t.bigint "decidim_user_id", null: false
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["decidim_component_id", "decidim_user_id"], name: "decidim_budgets_user_data_unique_user_and_component", unique: true
t.index ["decidim_component_id"], name: "index_decidim_budgets_user_data_on_decidim_component_id"
t.index ["decidim_user_id"], name: "index_decidim_budgets_user_data_on_decidim_user_id"
end

create_table "decidim_calendar_external_events", force: :cascade do |t|
t.jsonb "title", null: false
t.datetime "start_at", null: false
Expand Down Expand Up @@ -866,6 +879,16 @@
t.index ["user_id"], name: "index_decidim_gamification_badge_scores_on_user_id"
end

create_table "decidim_half_signup_auth_settings", force: :cascade do |t|
t.boolean "enable_partial_sms_signup", default: false
t.boolean "enable_partial_email_signup", default: false
t.string "slug"
t.bigint "decidim_organization_id"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["decidim_organization_id"], name: "index_half_signup_auth_settings_on_organization_id"
end

create_table "decidim_hashtags", force: :cascade do |t|
t.bigint "decidim_organization_id"
t.string "name"
Expand Down Expand Up @@ -1955,6 +1978,8 @@
t.datetime "digest_sent_at"
t.datetime "password_updated_at"
t.string "previous_passwords", default: [], array: true
t.string "phone_number"
t.string "phone_country"
t.index ["confirmation_token"], name: "index_decidim_users_on_confirmation_token", unique: true
t.index ["decidim_organization_id"], name: "index_decidim_users_on_decidim_organization_id"
t.index ["email", "decidim_organization_id"], name: "index_decidim_users_on_email_and_decidim_organization_id", unique: true, where: "((deleted_at IS NULL) AND (managed = false) AND ((type)::text = 'Decidim::User'::text))"
Expand Down Expand Up @@ -2096,6 +2121,7 @@
add_foreign_key "decidim_debates_debates", "decidim_scopes"
add_foreign_key "decidim_editor_images", "decidim_organizations"
add_foreign_key "decidim_editor_images", "decidim_users", column: "decidim_author_id"
add_foreign_key "decidim_half_signup_auth_settings", "decidim_organizations"
add_foreign_key "decidim_identities", "decidim_organizations"
add_foreign_key "decidim_initiatives_settings", "decidim_organizations"
add_foreign_key "decidim_newsletters", "decidim_users", column: "author_id"
Expand Down

0 comments on commit 2c3f6d5

Please sign in to comment.