Add "why do you want to join" field to invite requests (#10524)

* Add "why do you want to join" field to invite requests

Fix #10512

* Remove unused translations

* Fix broken registrations when no invite request text is submitted
This commit is contained in:
Eugen Rochko
2019-04-09 16:06:30 +02:00
committed by Yamagishi Kazutoshi
parent 0f3719f16f
commit 8b69a66380
57 changed files with 125 additions and 62 deletions

View File

@ -16,7 +16,10 @@ class AboutController < ApplicationController
private
def new_user
User.new.tap(&:build_account)
User.new.tap do |user|
user.build_account
user.build_invite_request
end
end
helper_method :new_user

View File

@ -30,7 +30,7 @@ module Admin
private
def set_accounts
@accounts = Account.joins(:user).merge(User.pending).page(params[:page])
@accounts = Account.joins(:user).merge(User.pending).includes(user: :invite_request).page(params[:page])
end
def form_account_batch_params

View File

@ -10,6 +10,10 @@ class Auth::RegistrationsController < Devise::RegistrationsController
before_action :set_instance_presenter, only: [:new, :create, :update]
before_action :set_body_classes, only: [:new, :create, :edit, :update]
def new
super(&:build_invite_request)
end
def destroy
not_found
end
@ -24,17 +28,17 @@ class Auth::RegistrationsController < Devise::RegistrationsController
def build_resource(hash = nil)
super(hash)
resource.locale = I18n.locale
resource.invite_code = params[:invite_code] if resource.invite_code.blank?
resource.agreement = true
resource.locale = I18n.locale
resource.invite_code = params[:invite_code] if resource.invite_code.blank?
resource.agreement = true
resource.current_sign_in_ip = request.remote_ip
resource.current_sign_in_ip = request.remote_ip if resource.current_sign_in_ip.nil?
resource.build_account if resource.account.nil?
end
def configure_sign_up_params
devise_parameter_sanitizer.permit(:sign_up) do |u|
u.permit({ account_attributes: [:username] }, :email, :password, :password_confirmation, :invite_code)
u.permit({ account_attributes: [:username], invite_request_attributes: [:text] }, :email, :password, :password_confirmation, :invite_code)
end
end