AWSのCloudFormation用。
AWSのElasticBeanstalk用。
- lib/monkey_patching_faker.rb
日本語を使うとFakerがslugにも日本を使おうとしてvalidationでコケるのを、英語にすることで回避するためのpatch。 本家に取り込まれているのでそのうち消せるはず。
- lib/decidim/cfj/test/factories.rb
rspec用。
- lib/assets/
- lib/tasks/
現状はカラ。
- test/fixtures/
- test/helpers
- test/integration/
- test/controllers
- test/mailsers
カラなので見なくてよさそう。
- db/seed.rb
seedデータ作成用。lib/monkey_patching_faker を読み込むのと、user_extensionを用のデータを追加している。
- db/migrate/以下
マイグレーションファイル。今のところは変更なし。
Decidim::UserExtensionモジュール。ユーザー属性拡張をgem(Rails Engine)の形で実装している。
- config/application.rb
minitestからrspecに変更。
- config/initializers/decidim.rb
Decidimアプリケーションの設定を行っている。いろいろ設定を変更している。
locale修正
メールアドレス(config.mail_sender)修正
HTMLヘッダスニペット(config.enable_html_header_snippets)を設定
Deviseの設定変更し (config.unconfirmed_access_for)、さらにその設定を反映(Devise.allow_unconfirmed_access_for = Decidim.unconfirmed_access_for
)
ダウンロード用CSVのカンマを設定(config.default_csv_col_sep)
- config/initializers/decidim_verifications.rb
Decidim::Verifications
のworkflowに:user_extension_authorization_handler
の情報を追加。
- config/routes.rb
LetterOpenerWeb
を追加。
- config/locales/ja.yml
個別のデータを追加。Decidim本家にフィードバックしたものでも、最新版のDecidimにしか反映されていない場合はここを修正する。
fakerの文字列もここに追加している。
- app/assets/javascript/decidim/editor.js.es6
エディタの改修用JS。
- app/assets/config/manifest.js
初期化時に生成されたままのJSファイル。
空。
スタイルシートはいろいろ手を入れている。
- app/assets/stylesheets/application.css
初期化時のまま。
- app/assets/stylesheets/forms.scss
UserExtensionFormのためCSSを変更。
初期状態のまま。
- app/controllers/application_controller.rb
デフォルトの空のまま。
- app/controllers/decidim_controller.rb
最終的にこのファイル自体は空のままになった。
別途、Decidim::UserExtension::Engine
でDecidim::UserExtension::Concerns::Controllers::NeedsUserExtension
をincludeしている。
- app/forms/decidim/proposals/proposal_wizard_create_step_form.rb
本家のdecidim/decidim-proposals/app/forms/decidim/proposals/proposal_wizard_create_step_form.rb
に手を入れたもの。
titleのvalidationに手を入れて、最短8文字まで許すようにしている。etiquette
も消しているのに注意。
--- app/forms/decidim/proposals/proposal_wizard_create_step_form.rb 2021-02-27 01:36:39.000000000 +0900
+++ ../decidim/decidim-proposals/app/forms/decidim/proposals/proposal_wizard_create_step_form.rb 2021-03-02 17:49:24.000000000 +0900
@@ -11,8 +11,8 @@
attribute :body_template, String
attribute :user_group_id, Integer
- validates :title, :body, presence: true
- validates :title, length: { in: 8..150 }
+ validates :title, :body, presence: true, etiquette: true
+ validates :title, length: { in: 15..150 }
validates :body, proposal_length: {
minimum: 15,
maximum: ->(record) { record.component.settings.proposal_length }
- app/forms/decidim/proposals/admin/proposal_form.rb
同じく管理画面用に手を入れたもの。2020/12/24にmap_model
が追加されたのに注意。
--- app/forms/decidim/proposals/admin/proposal_form.rb 2021-02-27 01:36:39.000000000 +0900
+++ ../decidim/decidim-proposals/app/forms/decidim/proposals/admin/proposal_form.rb 2021-02-21 02:16:34.000000000 +0900
@@ -6,13 +6,21 @@
# A form object to be used when admin users want to create a proposal.
class ProposalForm < Decidim::Proposals::Admin::ProposalBaseForm
translatable_attribute :title, String do |field, _locale|
- validates field, length: { in: 8..150 }, if: proc { |resource| resource.send(field).present? }
+ validates field, length: { in: 15..150 }, if: proc { |resource| resource.send(field).present? }
end
translatable_attribute :body, String
validates :title, :body, translatable_presence: true
validate :notify_missing_attachment_if_errored
+
+ def map_model(model)
+ super(model)
+ presenter = ProposalPresenter.new(model)
+
+ self.title = presenter.title(all_locales: title.is_a?(Hash))
+ self.body = presenter.body(all_locales: body.is_a?(Hash))
+ end
end
end
end
- app/services/user_extension_authorization_handler.rb
Decidim::UserExtensionのためのAuthorizationHandler
。基本的には何もしない。
- app/uploaders/decidim/application_uploader.rb
decidim/decidim#6720 に対応するための変更が入っている
codeforjapan/decidim-cfj#101 も関係してる?
また、0.23.2 (#7322)のときに入ったskip_ssrf_protection?
が漏れているのに注意
--- a/app/uploaders/decidim/application_uploader.rb
+++ b/../decidim/decidim-core/app/uploaders/decidim/application_uploader.rb
@@ -17,6 +17,10 @@ def store_dir
default_path
end
+ def skip_ssrf_protection?(_uri)
+ true
+ end
+
protected
# Validates that the associated model is always within an organization in
@@ -26,13 +30,6 @@ def validate_inside_organization
return if model.is_a?(Decidim::Organization)
return if model.respond_to?(:organization) && model.organization.is_a?(Decidim::Organization)
- # HACK: Temporary fix for https://github.com/decidim/decidim/issues/6720
- # If this is fixed by decidim, this file (application_uploader.rb)
- # should be deleted to keep in sync with upstream!
- return if model.class.to_s == "decidim/hero_homepage_content_block"
- # Fix for https://github.com/codeforjapan/decidim-cfj/issues/101
- return if model.nil?
-
raise CarrierWave::IntegrityError, I18n.t("carrierwave.errors.not_inside_organization")
end
end
- app/views/decidim/blogs/posts/show.html.erb
#24 の回避用に修正。
--- app/views/decidim/proposals/admin/proposals/_form.html.erb 2020-11-09 22:27:37.000000000 +0900
+++ ../decidim/decidim-proposals/app/views/decidim/proposals/admin/proposals/_form.html.erb 2021-02-21 02:16:34.000000000 +0900
@@ -5,7 +5,7 @@
<div class="card-section">
<div class="row column hashtags__container">
- <%= form.translated :text_field, :title, class: "js-hashtags", hashtaggable: true %>
+ <%= form.translated :text_field, :title, autofocus: true, class: "js-hashtags", hashtaggable: true %>
</div>
<div class="row column hashtags__container">
- app/views/decidim/blogs/posts/show.html.erb
#107 に関連して、 #126 でブログ詳細ページのレイアウトの修正。
--- app/views/decidim/blogs/posts/show.html.erb 2020-11-14 01:13:10.000000000 +0900
+++ ../decidim/decidim-blogs/app/views/decidim/blogs/posts/show.html.erb 2021-02-21 02:16:34.000000000 +0900
@@ -16,16 +16,18 @@
%>
<div class="row column view-header">
+ <div class="m-bottom">
<%= link_to :posts, class: "small hollow" do %>
<%= icon "chevron-left", class: "icon--small", role: "img", "aria-hidden": true %>
<%= t(".back") %>
<% end %>
+ </div>
<h2 class="heading2"><%= translated_attribute post.title %></h2>
<%= cell "decidim/author", present(post.author), from: post %>
</div>
<div class="row">
- <div class="columns section view-side mediumlarge-4 mediumlarge-push-8 large-3 large-push-9">
<% if show_endorsements_card? %>
+ <div class="columns section view-side mediumlarge-4 mediumlarge-push-8 large-3 large-push-9">
<div class="card">
<div class="card__content">
<div class="row collapse buttons__row">
@@ -44,9 +46,9 @@
<%= follow_button_for(post) %>
</div>
</div>
- <% end %>
</div>
- <div class="columns mediumlarge-8 mediumlarge-pull-4">
+ <% end %>
+ <div class="columns mediumlarge-8 <%= "mediumlarge-pull-4" if show_endorsements_card? %>">
<div class="section">
<%= decidim_sanitize translated_attribute post.body %>
</div>
- app/views/layouts/decidim/_main_footer.html.erb
#101 で一時的にリンクを非表示にするために導入したが、元に戻したので現状は不要なはず。
- bin/get_author_rank.sh
- bin/get_comments.sh
管理用CLIツール(スクリプト)。
- lib/decidim/cfj/test/factories.rb
decidim-cfj用のspecを書くためのfactory置き場。requireしているだけ。今のところは使ってない(decidim-cfj独自のfactoryを使っていないため)。
- lib/monkey_patching_faker.rb
Fakerのslug日本語の扱い(slugは日本語ロケールでも日本語化しない)の修正。将来的にはDecidim本体の更新によって捨てられるはず。