diff --git a/app/controllers/courses/practices_controller.rb b/app/controllers/courses/practices_controller.rb index 6ca92fadcb9..818f1304b8d 100644 --- a/app/controllers/courses/practices_controller.rb +++ b/app/controllers/courses/practices_controller.rb @@ -3,7 +3,7 @@ class Courses::PracticesController < ApplicationController def index @course = Course.find(params[:course_id]) - @categories = @course.categories.order(:created_at) + @categories = @course.categories.includes(practices: %i[practices_books learning_minute_statistic started_students]).order(:created_at) @learnings = current_user.learnings end end diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index 1970339a236..b3acb69aec5 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -3,7 +3,7 @@ class WelcomeController < ApplicationController skip_before_action :require_active_user_login, raise: false layout 'welcome' - DEFAULT_COURSE = 'Railsプログラマー' + DEFAULT_COURSE = 'Railsエンジニア' def index @mentors = current_user ? User.mentors_sorted_by_created_at : User.visible_sorted_mentors diff --git a/app/decorators/user_decorator.rb b/app/decorators/user_decorator.rb index 0d70b08d366..f08debb4aeb 100644 --- a/app/decorators/user_decorator.rb +++ b/app/decorators/user_decorator.rb @@ -29,11 +29,11 @@ def cached_completed_percentage end def completed_fraction - "修了: #{completed_practices.size} (必須: #{completed_practices_include_progress.size}/#{practices_include_progress.size})" + "修了: #{completed_practices.size} (必須: #{completed_practices_include_progress_size}/#{practices_include_progress.pluck(:id).uniq.size})" end def completed_fraction_in_metas - "#{completed_practices.size} (必須:#{completed_practices_include_progress.size})" + "#{completed_practices.size} (必須:#{completed_practices_include_progress_size})" end def customer_url diff --git a/app/helpers/meta_tags_helper.rb b/app/helpers/meta_tags_helper.rb index 2c67c7f2bcf..2852fa7ef62 100644 --- a/app/helpers/meta_tags_helper.rb +++ b/app/helpers/meta_tags_helper.rb @@ -7,7 +7,7 @@ def default_meta_tags site: 'FBC', reverse: true, charset: 'utf-8', - description: '月額29,800円、全機能が使えるお試し期間付き。フィヨルドブートキャンプは現場の即戦力になるためのスキルとプログラミングの楽しさを伝える、現役エンジニアが考える理想のプログラミングスクールの実現に励んでいます。', + description: '月額29,800円、全機能が使えるお試し期間付き。FBCは現場の即戦力になるためのスキルとプログラミングの楽しさを伝える、現役ソフトウェアエンジニアが考える理想のプログラミングスクールの実現に励んでいます。', viewport: 'width=device-width, initial-scale=1.0', og: { title: :title, @@ -31,7 +31,7 @@ def default_meta_tags def welcome_meta_tags default_meta_tags.deep_merge({ title:, - description: '月額29,800円、全機能が使えるお試し期間付き。フィヨルドブートキャンプは現場の即戦力になるためのスキルとプログラミングの楽しさを伝える、現役エンジニアが考える理想のプログラミングスクールの実現に励んでいます。', + description: '月額29,800円、全機能が使えるお試し期間付き。FBCは現場の即戦力になるためのスキルとプログラミングの楽しさを伝える、現役ソフトウェアエンジニアが考える理想のプログラミングスクールの実現に励んでいます。', og: { title: title || 'FJORD BOOT CAMP(フィヨルドブートキャンプ)', description: :description diff --git a/app/javascript/stylesheets/application/blocks/practice/_categories.sass b/app/javascript/stylesheets/application/blocks/practice/_categories.sass index 27279abe917..b77aedc6b30 100644 --- a/app/javascript/stylesheets/application/blocks/practice/_categories.sass +++ b/app/javascript/stylesheets/application/blocks/practice/_categories.sass @@ -48,15 +48,12 @@ .categories-item__description +position(relative) margin-bottom: 1rem - p - +text-block(.875rem 1.6 0 .6em) - *:last-child - margin-bottom: 0 .categories-item__edit float: right margin-left: .5rem +position(relative, top -.25rem) + z-index: 2 .categories-item__edit-link +size(2rem) diff --git a/app/javascript/stylesheets/application/blocks/user/_user-group.sass b/app/javascript/stylesheets/application/blocks/user/_user-group.sass index 1a114c51fbe..7bc1d59fa53 100644 --- a/app/javascript/stylesheets/application/blocks/user/_user-group.sass +++ b/app/javascript/stylesheets/application/blocks/user/_user-group.sass @@ -57,6 +57,8 @@ .user-group__counts +media-breakpoint-up(md) margin-top: -.5rem + flex: 1 + max-width: 29rem .card-counts__item width: 3.5rem color: var(--default-text) diff --git a/app/javascript/stylesheets/atoms/_a-form-help.sass b/app/javascript/stylesheets/atoms/_a-form-help.sass index a8ddb0cde60..0aa6fce9aa7 100644 --- a/app/javascript/stylesheets/atoms/_a-form-help.sass +++ b/app/javascript/stylesheets/atoms/_a-form-help.sass @@ -2,7 +2,12 @@ font-size: .75rem color: var(--semi-muted-text) &:not(:first-child) - margin-top: .5em + margin-top: .5rem + label + &:not(:first-child) + margin-top: 0 + & + input, + & + textarea + margin-top: .5rem em font-style: normal font-weight: 600 diff --git a/app/javascript/stylesheets/atoms/_a-long-text.sass b/app/javascript/stylesheets/atoms/_a-long-text.sass index 642da7c5fd7..81ca7cdd11a 100644 --- a/app/javascript/stylesheets/atoms/_a-long-text.sass +++ b/app/javascript/stylesheets/atoms/_a-long-text.sass @@ -10,6 +10,16 @@ font-size: .8125rem +media-breakpoint-down(sm) font-size: .75rem + &.has-no-headding + h1, + h2, + h3, + h4, + h5, + h6 + +text-block(1em 1.6 0 .625em, 600) + border: none + padding: 0 .a-long-text + & margin-top: 2em padding-top: 2em diff --git a/app/javascript/stylesheets/atoms/_a-short-text.sass b/app/javascript/stylesheets/atoms/_a-short-text.sass index 7c3f7802c3a..8b6a748f4cb 100644 --- a/app/javascript/stylesheets/atoms/_a-short-text.sass +++ b/app/javascript/stylesheets/atoms/_a-short-text.sass @@ -1,8 +1,8 @@ .a-short-text p - +text-block(1em 1.7 .75em) + +text-block(1em 1.6 .75em) li - +text-block(1em 1.7) + +text-block(1em 1.6) ol, ul margin-left: 1.25em @@ -26,6 +26,9 @@ >li >ul list-style-type: square + a + +hover-link-reversal + +default-link hr display: block +size(100% 0) @@ -37,5 +40,17 @@ text-align: center &.is-sm font-size: .8125rem + &.has-no-headding + h1, + h2, + h3, + h4, + h5, + h6 + +text-block(1em 1.6 0 .625em, 700) + border: none + padding: 0 *:first-child margin-top: 0 + *:last-child + margin-bottom: 0 diff --git a/app/javascript/stylesheets/config/mixins/_long-text-style.sass b/app/javascript/stylesheets/config/mixins/_long-text-style.sass index 83e4e2295ba..823df980d95 100644 --- a/app/javascript/stylesheets/config/mixins/_long-text-style.sass +++ b/app/javascript/stylesheets/config/mixins/_long-text-style.sass @@ -77,7 +77,7 @@ +text-block(1.125em 1.6, 600) margin-bottom: .625em h6 - +text-block(1em 1.86 0 .625em, 600) + +text-block(1em 1.6 0 .625em, 600) p +text-block(1em 1.86) margin-bottom: 1.5em diff --git a/app/models/user.rb b/app/models/user.rb index 786182cd4f6..32ea366a275 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -492,7 +492,7 @@ def away? end def completed_percentage - completed_practices_include_progress.size.to_f / practices_include_progress.size * MAX_PERCENTAGE + completed_practices_include_progress_size.to_f / practices_include_progress.pluck(:id).uniq.size * MAX_PERCENTAGE end def completed_practices_size_by_category @@ -508,9 +508,9 @@ def completed_practices_size_by_category .count('DISTINCT practices.id') end - def completed_practices_include_progress + def completed_practices_include_progress_size practices_include_progress.joins(:learnings) - .merge(Learning.complete.where(user_id: id)) + .merge(Learning.complete.where(user_id: id)).pluck(:id).uniq.size end def active? diff --git a/app/views/application/_user_menu.html.slim b/app/views/application/_user_menu.html.slim index b3cf0375e0a..2db7ff448ac 100644 --- a/app/views/application/_user_menu.html.slim +++ b/app/views/application/_user_menu.html.slim @@ -4,6 +4,10 @@ = link_to root_path, class: 'header-dropdown__item-link' do | ダッシュボード + li.header-dropdown__item + = link_to user_path(id: current_user.id), + class: 'header-dropdown__item-link' do + | マイプロフィール li.header-dropdown__item = link_to edit_current_user_path, class: 'header-dropdown__item-link' do diff --git a/app/views/articles/_ad.html.slim b/app/views/articles/_ad.html.slim index 314c862a2e2..558292ccd5f 100644 --- a/app/views/articles/_ad.html.slim +++ b/app/views/articles/_ad.html.slim @@ -12,8 +12,8 @@ aside.bootcamp-ad .a-short-text.is-sm p | フィヨルドブートキャンプは、 - | プログラマーとして就職を目指せるスキルを - | 「プロの現場でプラス戦力として数えられるプログラマー」とし、 + | ソフトウェアエンジニアとして就職を目指せるスキルを + | 「プロの現場でプラス戦力として数えられるソフトウェアエンジニア」とし、 | それを身につけることを目標とした | オンラインプログラミングスクールです。 br diff --git a/app/views/articles/_share_button_facebook.html.erb b/app/views/articles/_share_button_facebook.html.erb index d492e338d7d..6d081ee3d95 100644 --- a/app/views/articles/_share_button_facebook.html.erb +++ b/app/views/articles/_share_button_facebook.html.erb @@ -1,8 +1,8 @@
-
+
シェアする
diff --git a/app/views/articles/_share_button_hatena.html.erb b/app/views/articles/_share_button_hatena.html.erb index 93a91d28ab3..b11847908ca 100644 --- a/app/views/articles/_share_button_hatena.html.erb +++ b/app/views/articles/_share_button_hatena.html.erb @@ -1,5 +1,5 @@ このエントリーをはてなブックマークに追加 diff --git a/app/views/articles/_share_button_x.html.erb b/app/views/articles/_share_button_x.html.erb index a56c8745c09..0d14a2881b2 100644 --- a/app/views/articles/_share_button_x.html.erb +++ b/app/views/articles/_share_button_x.html.erb @@ -1,5 +1,5 @@ diff --git a/app/views/articles/_share_buttons.html.slim b/app/views/articles/_share_buttons.html.slim index dc82491a03e..0b41262d317 100644 --- a/app/views/articles/_share_buttons.html.slim +++ b/app/views/articles/_share_buttons.html.slim @@ -3,6 +3,6 @@ li.share-buttons__item.is-x = render 'share_button_x', article: article li.share-buttons__item - = render 'share_button_facebook', article: article + = render 'share_button_facebook', article_id: article.id li.share-buttons__item - = render 'share_button_hatena', article: article + = render 'share_button_hatena', article_id: article.id diff --git a/app/views/articles/show.html.slim b/app/views/articles/show.html.slim index d434ed0f7cf..93f4547ea07 100644 --- a/app/views/articles/show.html.slim +++ b/app/views/articles/show.html.slim @@ -46,7 +46,7 @@ ruby: = l(@article.created_at) - else = l(@article.published_at) - = render 'share_buttons', article: @article.id + = render 'share_buttons', article: @article - if @article.display_thumbnail_in_body? - if @article.prepared_thumbnail? = image_tag @article.prepared_thumbnail_url, class: 'article__image' @@ -55,7 +55,7 @@ ruby: .article__body .js-markdown-view.a-long-text.is-md = @article.body - = render 'share_buttons', article: @article.id + = render 'share_buttons', article: @article - if admin_or_mentor_login? hr.a-border .card-footer diff --git a/app/views/courses/practices/_courses_practices.html.slim b/app/views/courses/practices/_courses_practices.html.slim index d2da2277e72..0dd2bfa2ee4 100644 --- a/app/views/courses/practices/_courses_practices.html.slim +++ b/app/views/courses/practices/_courses_practices.html.slim @@ -14,7 +14,7 @@ .categories-item__edit.is-only-mentor a.categories-item__edit-link href=edit_mentor_category_path(category.id, course_id: course_id) i.fa-solid.fa-pen - .a-long-text.is-md + .a-short-text.is-md.has-no-headding.js-markdown-view = category.description .categories-item__body.a-card .category-practices diff --git a/app/views/home/_welcome_message.html.slim b/app/views/home/_welcome_message.html.slim index dee9073dac7..cf2798bd3bc 100644 --- a/app/views/home/_welcome_message.html.slim +++ b/app/views/home/_welcome_message.html.slim @@ -53,7 +53,7 @@ | 自分の気持ちをアウトプットする場としてコミュニティを使うのがオススメです。 p | 学習が進まなくて辛い、新しいことを知って嬉しい、プログラミングができるようになって楽しい、 - | 仕事が忙しくて学習に時間が取れなくて悲しい、プログラマーとして就職できるのか不安...これから学習を進めていく上で色んな気持ちになるかと思いますが、 + | 仕事が忙しくて学習に時間が取れなくて悲しい、ソフトウェアエンジニアとして就職できるのか不安...これから学習を進めていく上で色んな気持ちになるかと思いますが、 | 気持ちをチャットや日報を使ってアウトプットしていきましょう。 | 辛いことに対しては親身に相談に乗ってくれたり、アドバイスをしてくれたり、嬉しいことは一緒に喜んでくれたり、 | コミュニティのみんなが「あなたのプログラミングを楽しむ気持ち」を育ててくれます。 diff --git a/app/views/home/_welcome_message_for_adviser.html.slim b/app/views/home/_welcome_message_for_adviser.html.slim index 08978b9d693..c8607bec084 100644 --- a/app/views/home/_welcome_message_for_adviser.html.slim +++ b/app/views/home/_welcome_message_for_adviser.html.slim @@ -23,9 +23,9 @@ | 「高給が欲しい」や「リモートで働きたい」だけでは、それを乗り切るのは難しく、 | プログラミング自体やコミュニティ、サービスを作る・育てること、チームより強めていくことを | 「好き」、「楽しい」と思えることが必須になります。 - | 「プログラミングが好きな気持ち」を育て、一人でも多くのエンジニアを輩出していきたいと考えています。 + | 「プログラミングが好きな気持ち」を育て、一人でも多くのプログラマーを輩出していきたいと考えています。 p - | そのためには、受講生、メンター、卒業生、会社所属のエンジニア、フリーランスのエンジニア、 + | そのためには、受講生、メンター、卒業生、会社所属のプログラマー、フリーランスのプログラマー、 | イベント主催者、コミュニティ運営者、OSS開発者...様々な立場の人がそれぞれの形でプログラミングや | コミュニティやサービス運営を楽しんでいる姿を受講生に見せることが重要だと考えています。 | また、それを見れる場を受講生に提供できることがフィヨルドブートキャンプの最大の資産であると考えています。 diff --git a/app/views/mentor/categories/_form.html.slim b/app/views/mentor/categories/_form.html.slim index 86b4e3d2856..9156813a4d2 100644 --- a/app/views/mentor/categories/_form.html.slim +++ b/app/views/mentor/categories/_form.html.slim @@ -16,14 +16,18 @@ .row.js-markdown-parent .col-md-6.col-xs-12 = f.label :description, class: 'a-form-label' - = f.text_area :description, class: 'a-text-input js-warning-form js-markdown markdown-form__text-area practices-edit__input', data: { 'preview': '.js-preview' } .a-form-help p - | このカテゴリーを学ぶことでできるようになること、なぜこれを学ぶのかの理由、学ぶにあたっての必要な前提条件(修了していないといけないプラクティスなど)を記入してください。 + | このカテゴリーを学ぶことでできるようになること、なぜこれを学ぶのかの理由、 + | 学ぶにあたっての必要な前提条件(修了していないといけないプラクティスなど)を + | 記入してください。 + br + | カテゴリーの説明には見出し(hタグ)も本文と同じ文字サイズで表示されます。 + = f.text_area :description, class: 'a-text-input js-warning-form js-markdown markdown-form__text-area practices-edit__input', data: { 'preview': '.js-preview' } .col-md-6.col-xs-12 - .a-form-label + .a-form-label.md:mt-16 | プレビュー - .js-preview.a-long-text.is-md.practices-edit__input.markdown-form__preview + .js-preview.a-short-text.is-md.has-no-headding.practices-edit__input.markdown-form__preview .form-actions ul.form-actions__items li.form-actions__item.is-main diff --git a/app/views/reports/show.html.slim b/app/views/reports/show.html.slim index eacbea64057..726976a45cc 100644 --- a/app/views/reports/show.html.slim +++ b/app/views/reports/show.html.slim @@ -4,14 +4,19 @@ = render 'users/page_title', user: @report.user = render 'users/page_tabs', user: @report.user -- if mentor_login? && !@report.first? && @report.latest_of_user? - .a-page-notice.is-only-mentor(class="#{@report.interval >= 10 ? 'is-danger' : ''}") - .container - .a-page-notice__inner - p - strong - | #{@report.interval}日 - | ぶりの日報です +- if admin_or_mentor_login? + - if @report.user.retired_on? + .a-page-notice.is-muted.is-only-mentor + .container + .a-page-notice__inner + p このユーザーは退会しています。 + - elsif !@report.first? && @report.latest_of_user? + .a-page-notice.is-only-mentor(class="#{@report.interval >= 10 ? 'is-danger' : ''}") + .container + .a-page-notice__inner + p + strong #{@report.interval}日 + | ぶりの日報です。 .page-body .container.is-xxl diff --git a/app/views/unauthorized/_about_fbc.html.slim b/app/views/unauthorized/_about_fbc.html.slim index b2cf2886155..c3a466330f7 100644 --- a/app/views/unauthorized/_about_fbc.html.slim +++ b/app/views/unauthorized/_about_fbc.html.slim @@ -1,6 +1,9 @@ .about-fbc .a-long-text.is-md p - | フィヨルドブートキャンプは、プログラマーとして就職を目指せるだけのスキルを身につけることを目標とした、 - | オンラインプログラミングスクールです。現場のプログラマーによる、徹底的に現場目線にこだわった、 - | 現場のプログラマーが考える、プログラミングスクールの在るべき姿の実現に励んでいます。 + | フィヨルドブートキャンプは、ソフトウェアエンジニアとして就職を + | 目指せるだけのスキルを身につけることを目標とした、 + | オンラインプログラミングスクールです。現場のソフトウェアエンジニアによる、 + | 徹底的に現場目線にこだわった、 + | 現場のソフトウェアエンジニアが考える、 + | プログラミングスクールの在るべき姿の実現に励んでいます。 diff --git a/app/views/users/comments/index.html.slim b/app/views/users/comments/index.html.slim index 5e38437c1de..e36c6fb9a5d 100644 --- a/app/views/users/comments/index.html.slim +++ b/app/views/users/comments/index.html.slim @@ -1,4 +1,4 @@ -- title "#{@user.login_name}コメント" +- title "#{@user.login_name}さんのコメント" - set_meta_tags description: "#{@user.login_name}さんのコメントページです。" = render 'users/page_title', user: @user diff --git a/app/views/users/form/_after_graduation_hope.html.slim b/app/views/users/form/_after_graduation_hope.html.slim index 691a44e9dfd..ca3e25172b6 100644 --- a/app/views/users/form/_after_graduation_hope.html.slim +++ b/app/views/users/form/_after_graduation_hope.html.slim @@ -1,6 +1,6 @@ .form-item#form-after-graduation-hope = f.label :after_graduation_hope, 'フィヨルドブートキャンプを卒業した自分はどうなっていたいかを教えてください', class: 'a-form-label' - = f.text_area :after_graduation_hope, class: 'a-text-input is-sm', placeholder: 'IT ジェンダーギャップ問題を解決するアプリケーションを作る事業に、エンジニアとして携わる。' + = f.text_area :after_graduation_hope, class: 'a-text-input is-sm', placeholder: 'ITジェンダーギャップ問題を解決するアプリケーションを作る事業に、プログラマーとして携わる。' .a-form-help p | フィヨルドブートキャンプを できるだけ詳細まで想像して、 diff --git a/app/views/users/form/_description.html.slim b/app/views/users/form/_description.html.slim index 70564a6a83f..ed2f466f8e3 100644 --- a/app/views/users/form/_description.html.slim +++ b/app/views/users/form/_description.html.slim @@ -4,7 +4,7 @@ placeholder = '株式会社XXXXの開発チームマネージャーのXXXXXです。' help_text = 'この情報は他のフィヨルドブートキャンプ参加者に公開されます。' else - placeholder = 'XXXXと申します。月・水・金の 10:00 〜 19:00 に活動します。XXXXと考えたため、プログラマーとして就職することを決意しました。今はXXXXで働いています。XXXXが好きでよくXXXXしています。XXXXが好きな方、仲良くしてください!!' + placeholder = 'XXXXと申します。月・水・金の 10:00 〜 19:00 に活動します。XXXXと考えたため、ソフトウェアエンジニアとして就職することを決意しました。今はXXXXで働いています。XXXXが好きでよくXXXXしています。XXXXが好きな方、仲良くしてください!!' help_text = 'この情報は他のフィヨルドブートキャンプ参加者に公開されます。あとからでも内容を変更することができます。' end = f.label :description, class: 'a-form-label is-required' diff --git a/app/views/users/products/index.html.slim b/app/views/users/products/index.html.slim index 3368860c858..5d96b2cd244 100644 --- a/app/views/users/products/index.html.slim +++ b/app/views/users/products/index.html.slim @@ -1,4 +1,4 @@ -- title "#{@user.login_name}の提出物一覧" +- title "#{@user.login_name}さんの提出物一覧" - set_meta_tags description: "#{@user.login_name}さんの提出物一覧ページです。" = render 'users/page_title', user: @user diff --git a/app/views/users/show.html.slim b/app/views/users/show.html.slim index e5c4af25c86..6efa0002e73 100644 --- a/app/views/users/show.html.slim +++ b/app/views/users/show.html.slim @@ -1,4 +1,4 @@ -- title @user.login_name +- title "#{@user.login_name}さんのプロフィール" - set_meta_tags description: "#{@user.login_name}さんのプロフィールページ" = render 'users/page_title', user: @user diff --git a/app/views/users/works/index.html.slim b/app/views/users/works/index.html.slim index f0805f75cd3..b33cfc8c056 100644 --- a/app/views/users/works/index.html.slim +++ b/app/views/users/works/index.html.slim @@ -1,4 +1,4 @@ -- title "#{@user.login_name}のポートフォリオ" +- title "#{@user.login_name}さんのポートフォリオ" - set_meta_tags description: "#{@user.login_name}さんのポートフォリオページです。" header.page-header @@ -45,7 +45,7 @@ header.page-header - else .a-empty-message.is-info p - | このページは、就職希望先のエンジニアや人事担当者が、#{@user.login_name}さんのスキルを手っ取り早く確認するための作品集ページ(ポートフォリオ)です。 + | このページは、就職希望先のプログラマーや人事担当者が、#{@user.login_name}さんのスキルを手っ取り早く確認するための作品集ページ(ポートフォリオ)です。 br | 自分の作ったGemや登壇した際の発表資料、自分で作ったWebサービス、自分が書いた書籍など、作品を登録していきましょう。 .page-body-actions diff --git a/app/views/welcome/_about.slim b/app/views/welcome/_about.slim index 20af6a33b96..f9171d29002 100644 --- a/app/views/welcome/_about.slim +++ b/app/views/welcome/_about.slim @@ -6,7 +6,7 @@ section.welcome-section.is-about#about | フィヨルドブートキャンプとは? .welcome-section__description p - | プログラマーとして就職を目指せるだけのスキルを身につけることを目標としたオンラインプログラミングスクールです。就職を目指せるスキルを弊社では「現場の人間にとって、戦力になるプログラマー」としています。具体的には、一人でWebサービスを作ることをゴールとした課題をやるのですが、それだけでなくチーム開発も経験できます。 + | ソフトウェアエンジニアとして就職を目指せるだけのスキルを身につけることを目標としたオンラインプログラミングスクールです。就職を目指せるスキルを弊社では「現場の人間にとって、戦力になるソフトウェアエンジニア」としています。具体的には、一人でWebサービスを作ることをゴールとした課題をやるのですが、それだけでなくチーム開発も経験できます。 .welcome-section__actions .welcome-section__actions-items diff --git a/app/views/welcome/_cases.slim b/app/views/welcome/_cases.slim index 46854d43e47..06c2dcf48c5 100644 --- a/app/views/welcome/_cases.slim +++ b/app/views/welcome/_cases.slim @@ -7,10 +7,10 @@ section.welcome-child-section.is-cases section.welcome-small-section .welcome-small-section__inner h3.welcome-small-section__title - | プログラマーとして
就職したい + | ソフトウェアエンジニアとして
就職したい .welcome-small-section__description p - | プログラマーとして就職できるスキルを身に着けたい!スキルだけじゃなく、開発のやり方や業界の情報、プログラマー友達も欲しい! + | ソフトウェアエンジニアとして就職できるスキルを身に着けたい!スキルだけじゃなく、開発のやり方や業界の情報、ソフトウェアエンジニア友達も欲しい! .col-xs-12.col-md-6 section.welcome-small-section .welcome-small-section__inner @@ -18,7 +18,7 @@ section.welcome-child-section.is-cases | 転職したいけど、
その前にスキルを付けたい .welcome-small-section__description p - | うちのやり方ってブログの記事や勉強会で聞いた話と比べて開発方法が古い...今の会社でプログラマーを続けていっていいのだろうか?...転職だ! + | うちのやり方ってブログの記事や勉強会で聞いた話と比べて開発方法が古い...今の会社でソフトウェアエンジニアを続けていっていいのだろうか?...転職だ! .col-xs-12.col-md-6 section.welcome-small-section .welcome-small-section__inner @@ -31,7 +31,7 @@ section.welcome-child-section.is-cases section.welcome-small-section .welcome-small-section__inner h3.welcome-small-section__title - | プログラマーに
ジョブチェンジしたい + | ソフトウェアエンジニアに
ジョブチェンジしたい .welcome-small-section__description p - | プログラマーではなく、企画としてITに関わっていたけど、プログラマーの方が楽しそう!自分もコードを書いてサービスを開発したい! + | ソフトウェアエンジニアではなく、企画としてITに関わっていたけど、ソフトウェアエンジニアの方が楽しそう!自分もコードを書いてサービスを開発したい! diff --git a/app/views/welcome/_faq.slim b/app/views/welcome/_faq.slim index 40fd80f1e5b..aac78957aa9 100644 --- a/app/views/welcome/_faq.slim +++ b/app/views/welcome/_faq.slim @@ -26,7 +26,7 @@ | 短時間でも毎日必ず学習する場合と間が空いてしまう場合など、時間のかけかたにも影響があったりもします。 p | 知的好奇心が求めるままに気になったこともきっちり調べる人は、時間がかかっても、 - | 就職後に仕事やプログラマーコミュニティで大活躍をしているので、卒業までの時間が短ければいいとは考えていません。 + | 就職後に仕事やソフトウェアエンジニアコミュニティで大活躍をしているので、卒業までの時間が短ければいいとは考えていません。 p | フィヨルドブートキャンプとしては、卒業までの時間が長くなり過ぎないように、 | 泣く泣くカリキュラムを削ったりなどもしているのですが、 @@ -47,10 +47,10 @@ | 退会をしない限りは請求は止まらず、オンライン学習アプリにログインをしていなくても請求されてしまうので、 | 学習をやめる場合は必ず退会を行ってください。 p - | フィヨルドブートキャンプでは、プログラマーになることを考えたけど、 + | フィヨルドブートキャンプでは、ソフトウェアエンジニアになることを考えたけど、 | 自分には向いていなかったことに気づくことも大きな価値だと考えています。 p - | プログラマーに向いてない、プログラミングが楽しめないと思ったときのリスクを + | ソフトウェアエンジニアに向いてない、プログラミングが楽しめないと思ったときのリスクを | 最小限にするため、一度に大金を支払うのではなく、月額課金制にしています。 .col-lg-4.col-md-6.col-xs-12 section.faqs-item @@ -89,7 +89,7 @@ | その歴史は受講生が抱えているわからないことを、どうやって拾い上げるかの歴史でもありました。 p | 人によっては質問をすることが恥ずかしいと感じてしまう人もいまずが、 - | 質問をすることはプログラマーにとってとても重要なスキルの一つと考えているため、 + | 質問をすることはソフトウェアエンジニアにとってとても重要なスキルの一つと考えているため、 | それを鍛えるためにたくさんの質問をする方法を用意しています。 p | 学習をする度に提出する日報に質問を書く、 @@ -209,7 +209,7 @@ .faqs-item__inner h3.faqs-item__title = image_tag('question.svg', class: 'faqs-item__title-icon') - | プログラマーは男性が多いと聞いたことがありますが、女性でも大丈夫ですか? + | ソフトウェアエンジニアは男性が多いと聞いたことがありますが、女性でも大丈夫ですか? .faqs-item__body p | 全く問題ありません。 @@ -218,13 +218,13 @@ | 正確な数字は出せないのですが、女性比率は男性 : 女性で半々に近いくらい高いです。 | イベントによっては女性の参加者の方が多いこともあります。 p - | たくさんの女性が卒業しプログラマーとして就職し活躍しています。 + | たくさんの女性が卒業しソフトウェアエンジニアとして就職し活躍しています。 .col-lg-4.col-md-6.col-xs-12 section.faqs-item .faqs-item__inner h3.faqs-item__title = image_tag('question.svg', class: 'faqs-item__title-icon') - | 30代なのですが、エンジニアとして就職することは可能ですか? + | 30代なのですが、ソフトウェアエンジニアとして就職することは可能ですか? .faqs-item__body p | 今までの観測範囲から言いますと、30代の方はそれほど不利な感じはないです。 diff --git a/app/views/welcome/_job_hunt_support.html.slim b/app/views/welcome/_job_hunt_support.html.slim index 3a68c85a218..02f3aceab29 100644 --- a/app/views/welcome/_job_hunt_support.html.slim +++ b/app/views/welcome/_job_hunt_support.html.slim @@ -15,7 +15,7 @@ section.welcome-section.is-job-hunt-support .welcome-small-section__description p | 複数社合同での企業説明会をオンラインで行っています。 - | 実際に企業で働いているエンジニアがどのように仕事しているのかなどを + | 実際に企業で働いているソフトウェアエンジニアがどのように仕事しているのかなどを | 知ることの出来る貴重な機会にもなります。 | また、動画の録画をいつでも観れます。 @@ -65,7 +65,7 @@ section.welcome-section.is-job-hunt-support | 面接
技術試験のサポート .welcome-small-section__description p - | 現役エンジニアのメンターによる、 + | 現役ソフトウェアエンジニアのメンターによる、 | テクニカル面接でのコーディング問題や技術的質問への対策、 | 模擬面接を通じての自己紹介や経験の説明の練習、 | 一般的な面接質問への答え方のコーチングを行います。 diff --git a/app/views/welcome/_process.slim b/app/views/welcome/_process.slim index f6845d007b6..7904ce19574 100644 --- a/app/views/welcome/_process.slim +++ b/app/views/welcome/_process.slim @@ -16,7 +16,9 @@ section.welcome-section.is-process#process | プラクティスに着手 .welcome-small-section__description p - | フィヨルドブートキャンプオリジナルのオンライン学習アプリに教材(プラクティス)があります。卒業を目指してそれを順に進めていきます。基本的に途中のプラクティスを飛ばしたり、複数のプラクティスをつまみ食いしながら進めるのは禁止しています。 + | フィヨルドブートキャンプオリジナルのオンライン学習アプリに教材(プラクティス)があります。 + | 卒業を目指してそれを順に進めていきます。基本的に途中のプラクティスを飛ばしたり、 + | 複数のプラクティスをつまみ食いしながら進めるのは禁止しています。 section.welcome-small-section .welcome-small-section__inner.a-card = image_tag('report.svg', class: 'welcome-small-section__icon') @@ -27,11 +29,19 @@ section.welcome-section.is-process#process | 日報を書く .welcome-small-section__description p - | 学習をした日は必ずオンライン学習アプリの日報機能を使って日報を提出します。日報には学習で学んだこと、難しかったこと、わからなかったこと、などを書きます。実際に現場でプログラマーとして働く際は、テキストでのコミュニケーションがとても重要になります。日頃から日報を書くことが文章を書く練習になります。上手く学習が進まなかった場合は、メンターや他のブートキャンプ生から日報のコメントでアドバイスがもらえます。 + | 学習をした日は必ずオンライン学習アプリの日報機能を使って日報を提出します。 + | 日報には学習で学んだこと、難しかったこと、わからなかったこと、などを書きます。 + | 実際に現場でソフトウェアエンジニアとして働く際は、テキストでのコミュニケーションが + | とても重要になります。 + | 日頃から日報を書くことが文章を書く練習になります。 + | 上手く学習が進まなかった場合は、メンターや他のブートキャンプ生から日報の + | コメントでアドバイスがもらえます。 p - | 卒業までに書いてきた日報は、自分が学び続けられる人であること、ちゃんとスキルを身につけていることの証明として、就職活動でも活用できます。 + | 卒業までに書いてきた日報は、自分が学び続けられる人であること、 + | ちゃんとスキルを身につけていることの証明として、就職活動でも活用できます。 p - | また、オンライン学習アプリには先輩が残した日報がたくさんあるので、それも教材として役立ちます。 + | また、オンライン学習アプリには先輩が残した日報がたくさんあるので、 + | それも教材として役立ちます。 section.welcome-small-section .welcome-small-section__inner.a-card = image_tag('question_1.svg', class: 'welcome-small-section__icon') @@ -42,7 +52,12 @@ section.welcome-section.is-process#process | 質問をする .welcome-small-section__description p - | わからないことは質問をして解決をします。質問は、オンライン学習アプリの質問機能を使って質問するか、チャットから質問ができます。メンター、もしくは先輩ブートキャンプ生が質問に答えてくれます。積極的に質問をしたり、質問に答えていくことで上手な質問の仕方を学びます。やはり、テキストでのコミュニケーションが重要ですね。 + | わからないことは質問をして解決をします。質問は、 + | オンライン学習アプリの質問機能を使って質問するか、 + | チャットから質問ができます。 + | メンター、もしくは先輩ブートキャンプ生が質問に答えてくれます。 + | 積極的に質問をしたり、質問に答えていくことで上手な質問の仕方を学びます。 + | やはり、テキストでのコミュニケーションが重要ですね。 section.welcome-small-section .welcome-small-section__inner.a-card = image_tag('chat.svg', class: 'welcome-small-section__icon') @@ -53,7 +68,12 @@ section.welcome-section.is-process#process | コミュニケーション .welcome-small-section__description p - | 学習の息抜きに他のブートキャンプ生の日報にコメントをしたり、チャットで雑談をしたりできます。これもテキストでのコミュニケーションの練習になるので、積極的にチャットで発言することを推奨しています。チャットの雑談の話題は、Rubyコミュニティのミートアップ情報や、RubyやRailsなどのアップデートの話、知り合いが取り上げられた記事の紹介、自分で作ったWebサービスの宣伝などが多いです。 + | 学習の息抜きに他のブートキャンプ生の日報にコメントをしたり、 + | チャットで雑談をしたりできます。これもテキストでのコミュニケーションの練習になるので、 + | 積極的にチャットで発言することを推奨しています。 + | チャットの雑談の話題は、Rubyコミュニティのミートアップ情報や、 + | RubyやRailsなどのアップデートの話、知り合いが取り上げられた記事の紹介、 + | 自分で作ったWebサービスの宣伝などが多いです。 section.welcome-small-section .welcome-small-section__inner.a-card = image_tag('product.svg', class: 'welcome-small-section__icon') @@ -64,7 +84,9 @@ section.welcome-section.is-process#process | 課題提出 .welcome-small-section__description p - | プラクティスのほとんどは、最後に成果物を提出します。それをメンターに確認してもらい、OKだったらそのプラクティスは完了になります。その成果物も、ちゃんとスキルを身につけていることの証明として、就職活動でも活用できます。 + | プラクティスのほとんどは、最後に成果物を提出します。 + | それをメンターに確認してもらい、OKだったらそのプラクティスは完了になります。 + | その成果物も、ちゃんとスキルを身につけていることの証明として、就職活動でも活用できます。 section.welcome-small-section .welcome-small-section__inner.a-card = image_tag('graduate.svg', class: 'welcome-small-section__icon') @@ -73,4 +95,10 @@ section.welcome-section.is-process#process | 卒業 .welcome-small-section__description p - | 1 〜 5 を繰り返し、最後のプラクティスを終えたらブートキャンプ卒業になります。その後、就活をする際はアドバイスはしますが、どの企業の採用選考を受けるかは個人の自由です。就職に必要なのはプログラミングスキルだけではないので、ブートキャンプを卒業したからといって必ず就職できるとは限りませんが、就職への近道にはなります。オンライン学習アプリは、ブートキャンプ卒業生が就職した企業のプログラマーも見れるようになっているので、スカウトが来る可能性も十分あります。 + | 1 〜 5 を繰り返し、最後のプラクティスを終えたらブートキャンプ卒業になります。 + | その後、就活をする際はアドバイスはしますが、どの企業の採用選考を受けるかは個人の自由です。 + | 就職に必要なのはプログラミングスキルだけではないので、 + | ブートキャンプを卒業したからといって必ず就職できるとは限りませんが、 + | 就職への近道にはなります。オンライン学習アプリは、 + | ブートキャンプ卒業生が就職した企業のソフトウェアエンジニアも見れるようになっているので、 + | スカウトが来る可能性も十分あります。 diff --git a/app/views/welcome/index.html.slim b/app/views/welcome/index.html.slim index ba0457c7abf..6c32c8d737b 100644 --- a/app/views/welcome/index.html.slim +++ b/app/views/welcome/index.html.slim @@ -1,5 +1,5 @@ - set_meta_tags(site: 'FJORD BOOT CAMP(フィヨルドブートキャンプ)', - description: '月額29,800円、全機能が使えるお試し期間付き。フィヨルドブートキャンプは現場の即戦力になるためのスキルとプログラミングの楽しさを伝える、現役エンジニアが考える理想のプログラミングスクールの実現に励んでいます。') + description: '月額29,800円、全機能が使えるお試し期間付き。FBCは現場の即戦力になるためのスキルとプログラミングの楽しさを伝える、現役ソフトウェアエンジニアが考える理想のプログラミングスクールの実現に励んでいます。') - content_for :extra_body_classes, 'welcome welcome-home' - content_for :head_last do = javascript_include_tag 'https://sdk.form.run/js/v2/formrun.js' diff --git a/app/views/welcome/practices.html.slim b/app/views/welcome/practices.html.slim index eccc14853c1..8a9456a94af 100644 --- a/app/views/welcome/practices.html.slim +++ b/app/views/welcome/practices.html.slim @@ -1,6 +1,6 @@ - title '学習内容' - set_meta_tags(site: 'FJORD BOOT CAMP(フィヨルドブートキャンプ)', - description: 'フィヨルドブートキャンプの学習内容一覧を表示しています。フィヨルドブートキャンプは現場の即戦力になるためのスキルとプログラミングの楽しさを伝える、現役エンジニアが考える理想のプログラミングスクールの実現に励んでいます。') + description: 'フィヨルドブートキャンプの学習内容一覧を表示しています。FBCは現場の即戦力になるためのスキルとプログラミングの楽しさを伝える、現役ソフトウェアエンジニアが考える理想のプログラミングスクールの実現に励んでいます。') .welcome-page-header .container.is-xl diff --git a/app/views/welcome/training.html.slim b/app/views/welcome/training.html.slim index acd4174baa3..a7fa5a78307 100644 --- a/app/views/welcome/training.html.slim +++ b/app/views/welcome/training.html.slim @@ -1,7 +1,7 @@ - content_for :extra_body_classes, 'welcome no-forms' - title '研修利用' - set_meta_tags(site: 'FJORD BOOT CAMP(フィヨルドブートキャンプ)', - description: 'フィヨルドブートキャンプのカリキュラムは「プログラマーとして就職するためのカリキュラム」ではなく「現場のプラスの戦力になるためのカリキュラム」なので、法人の研修にも最適です。料金は月額99,800円です。') + description: 'フィヨルドブートキャンプのカリキュラムは「ソフトウェアエンジニアとして就職するためのカリキュラム」ではなく「現場のプラスの戦力になるためのカリキュラム」なので、法人の研修にも最適です。料金は月額99,800円です。') .welcome-page-header .container.is-xl @@ -21,7 +21,7 @@ p | フィヨルドブートキャンプは企業の研修代行も行っております。 p - | 私たちのカリキュラムは「プログラマーとして就職するためのカリキュラム」ではありません。 + | 私たちのカリキュラムは「ソフトウェアエンジニアとして就職するためのカリキュラム」ではありません。 | 「現場のプラスの戦力になるためのカリキュラム」です。 | 新人がチームに加わった際、ほとんどの場合は教育にリソースが取られ、 | 戦力としてはマイナスになってしまいます。 diff --git a/db/fixtures/categories.yml b/db/fixtures/categories.yml index 338e5c6061b..efae29aa68d 100644 --- a/db/fixtures/categories.yml +++ b/db/fixtures/categories.yml @@ -107,3 +107,8 @@ category22: name: "就職活動" slug: "job-hunting" description: "就職に向けての準備に入ります。" + +category23: + name: "Ruby on Rails(Rails 6.1版)" + slug: "ruby-on-rails" + description: "まずはここからはじめましょう。ここでの学習の進め方を学びます。" diff --git a/db/fixtures/categories_practices.yml b/db/fixtures/categories_practices.yml index af107ca92a9..090fbcc0cfa 100644 --- a/db/fixtures/categories_practices.yml +++ b/db/fixtures/categories_practices.yml @@ -316,4 +316,23 @@ categories_practice63: categories_practice64: practice: practice64 category: category10 + +categories_practice111_1: + practice: practice111 + category: category6 + position: 14 + +categories_practice111_2: + practice: practice111 + category: category23 + position: 2 + +categories_practice112_1: + practice: practice112 + category: category6 + position: 15 + +categories_practice112_2: + practice: practice112 + category: category23 position: 3 diff --git a/db/fixtures/check_box_choices.yml b/db/fixtures/check_box_choices.yml index 11f0224d97e..91cce4c7928 100644 --- a/db/fixtures/check_box_choices.yml +++ b/db/fixtures/check_box_choices.yml @@ -7,7 +7,7 @@ check_box_choice1: check_box_choice2: check_box: check_box1 - choices: "エンジニアとしてやっていけるか不安" + choices: "プログラマーとしてやっていけるか不安" reason_for_choice_required: false created_at: <%= Time.current %> updated_at: <%= Time.current %> diff --git a/db/fixtures/courses.yml b/db/fixtures/courses.yml index 76720dc98bf..e16dbf5d2aa 100644 --- a/db/fixtures/courses.yml +++ b/db/fixtures/courses.yml @@ -1,15 +1,15 @@ course1: - title: Railsプログラマー - description: "Linux, Web, Ruby, Railsなどを学んでWebエンジニアになろう。" + title: Railsエンジニア + description: "Linux, Web, Ruby, Railsなどを学んでRailsエンジニアになろう。" course2: - title: Unityゲームプログラマー - description: "Unity, C#を学んでゲームプログラマーになろう。" + title: Unityゲームエンジニア + description: "Unity, C#を学んでゲームエンジニアになろう。" course3: title: iOSプログラマー description: "iOS, Swiftを学んでiOSプログラマーになろう。" course4: - title: フロントエンドプログラマー - description: "JavaScriptやTypeScriptなどを学んでフロントエンドプログラマーになろう。" + title: フロントエンドエンジニア + description: "JavaScriptやTypeScriptなどを学んでフロントエンドエンジニアになろう。" diff --git a/db/fixtures/courses_categories.yml b/db/fixtures/courses_categories.yml index 2230e6bbe96..2fb36cc124b 100644 --- a/db/fixtures/courses_categories.yml +++ b/db/fixtures/courses_categories.yml @@ -127,3 +127,8 @@ courses_category26: course: course4 category: category10 position: 18 + +courses_category27: + course: course1 + category: category23 + position: 19 diff --git a/db/fixtures/learnings.yml b/db/fixtures/learnings.yml index 5228a893105..a9c0b8a1e1a 100644 --- a/db/fixtures/learnings.yml +++ b/db/fixtures/learnings.yml @@ -120,7 +120,7 @@ learning<%= i + 18 %>: learning23: user: harikirio - practice: practice1 + practice: practice5 status: "complete" completion_message_displayed: false @@ -129,3 +129,15 @@ learning24: practice: practice61 status: "complete" completion_message_displayed: false + +learning25: + user: harikirio + practice: practice111 + status: "complete" + completion_message_displayed: false + +learning26: + user: harikirio + practice: practice112 + status: "complete" + completion_message_displayed: false diff --git a/db/fixtures/practices.yml b/db/fixtures/practices.yml index 76cdf8e36dc..0711136b726 100644 --- a/db/fixtures/practices.yml +++ b/db/fixtures/practices.yml @@ -733,4 +733,19 @@ practice110: summary: "概要です" description: "概要欄(概要文&OGP画像)を表示します" goal: "goal..." + +practice111: + title: "複数カテゴリに所属するプラクティス1" + summary: "概要です" + description: "複数のカテゴリに所属しているプラクティスです(必修ではありません)" + goal: "goal..." + include_progress: false + memo: "memo for mentors..." + +practice112: + title: "複数カテゴリに所属するプラクティス2" + summary: "概要です" + description: "複数のカテゴリに所属しているプラクティスです(必修です)" + goal: "goal..." + include_progress: true memo: "memo for mentors..." diff --git a/db/fixtures/reports.yml b/db/fixtures/reports.yml index 276d9287bc7..f6e6a77c30f 100644 --- a/db/fixtures/reports.yml +++ b/db/fixtures/reports.yml @@ -322,3 +322,19 @@ report<%= i + 71 %>: MaruMaru Inc.で研修をしました。 reported_on: <%= Time.now - 1.month + i.day %> <% end %> + +report87: + user: yameo + title: "退会済みユーザーの日報1" + emotion: 1 + description: |- + なかなか頑張れていない + reported_on: <%= Time.now - 1.month - 11.day %> + +report88: + user: yameo + title: "退会済みユーザーの日報2" + emotion: 1 + description: |- + お世話になりました + reported_on: <%= Time.now - 1.month - 1.day %> diff --git a/db/fixtures/users.yml b/db/fixtures/users.yml index cf8ebd41311..8d1cbd89de8 100644 --- a/db/fixtures/users.yml +++ b/db/fixtures/users.yml @@ -420,7 +420,7 @@ senpai: facebook_url: https://www.facebook.com/fjordllc/senpai blog_url: http://senpai.org company: company2 - description: "研修聖子の会社の先輩エンジニアです。アドバイザーです。" + description: "研修聖子の会社の先輩プログラマーです。アドバイザーです。" course: course1 job: office_worker os: mac diff --git a/test/decorators/user_decorator_test.rb b/test/decorators/user_decorator_test.rb index 4b6921a02ea..78af4b3614a 100644 --- a/test/decorators/user_decorator_test.rb +++ b/test/decorators/user_decorator_test.rb @@ -73,34 +73,34 @@ class UserDecoratorTest < ActiveDecoratorTestCase test '#completed_fraction don\'t calculate practice that include_progress: false' do user = @admin_mentor_user - old_fraction = user.completed_practices_include_progress.size + old_fraction = user.completed_practices_include_progress_size user.completed_practices << practices(:practice5) assert_not_equal old_fraction, user.completed_fraction - old_fraction = user.completed_practices_include_progress.size + old_fraction = user.completed_practices_include_progress_size user.completed_practices << practices(:practice53) - assert_equal old_fraction, user.completed_practices_include_progress.size + assert_equal old_fraction, user.completed_practices_include_progress_size end test '#completed_fraction don\'t calculate practice unrelated cource' do - old_fraction = @admin_mentor_user.completed_practices_include_progress.size + old_fraction = @admin_mentor_user.completed_practices_include_progress_size @admin_mentor_user.completed_practices << practices(:practice5) - assert_not_equal old_fraction, @admin_mentor_user.completed_practices_include_progress.size + assert_not_equal old_fraction, @admin_mentor_user.completed_practices_include_progress_size - old_fraction = @admin_mentor_user.completed_practices_include_progress.size + old_fraction = @admin_mentor_user.completed_practices_include_progress_size @admin_mentor_user.completed_practices << practices(:practice55) - assert_equal old_fraction, @admin_mentor_user.completed_practices_include_progress.size + assert_equal old_fraction, @admin_mentor_user.completed_practices_include_progress_size end test '#completed_fraction_in_metas' do fraction_in_metas = '2 (必須:1)' + @non_required_subject_completed_user.completed_practices = [] @non_required_subject_completed_user.completed_practices << practices(:practice5) @non_required_subject_completed_user.completed_practices << practices(:practice61) - assert_equal fraction_in_metas, @non_required_subject_completed_user.completed_fraction_in_metas end end diff --git a/test/fixtures/categories.yml b/test/fixtures/categories.yml index 684c706cb02..efae29aa68d 100644 --- a/test/fixtures/categories.yml +++ b/test/fixtures/categories.yml @@ -102,3 +102,13 @@ category21: name: "ゲームのテスト" slug: "game-test" description: "まずはここからはじめましょう。ここでの学習の進め方を学びます。" + +category22: + name: "就職活動" + slug: "job-hunting" + description: "就職に向けての準備に入ります。" + +category23: + name: "Ruby on Rails(Rails 6.1版)" + slug: "ruby-on-rails" + description: "まずはここからはじめましょう。ここでの学習の進め方を学びます。" diff --git a/test/fixtures/categories_practices.yml b/test/fixtures/categories_practices.yml index 069ec52adbb..176d54f027e 100644 --- a/test/fixtures/categories_practices.yml +++ b/test/fixtures/categories_practices.yml @@ -282,3 +282,28 @@ categories_practice57: practice: practice57 category: category2 position: 3 + +categories_practice61: + practice: practice61 + category: category22 + position: 1 + +categories_practice62_1: + practice: practice62 + category: category6 + position: 14 + +categories_practice62_2: + practice: practice62 + category: category23 + position: 1 + +categories_practice63_1: + practice: practice63 + category: category6 + position: 15 + +categories_practice63_2: + practice: practice63 + category: category23 + position: 2 diff --git a/test/fixtures/courses.yml b/test/fixtures/courses.yml index a944370b9e3..9d6ccbef668 100644 --- a/test/fixtures/courses.yml +++ b/test/fixtures/courses.yml @@ -1,10 +1,10 @@ course1: - title: Railsプログラマー - description: "Linux, Web, Ruby, Railsなどを学んでWebエンジニアになろう。" + title: Railsエンジニア + description: "Linux, Web, Ruby, Railsなどを学んでRailsエンジニアになろう。" course2: - title: Unityゲームプログラマー - description: "Unity, C#を学んでゲームプログラマーになろう。" + title: Unityゲームエンジニア + description: "Unity, C#を学んでゲームエンジニアになろう。" course3: title: iOSプログラマー diff --git a/test/fixtures/courses_categories.yml b/test/fixtures/courses_categories.yml index 6edd215d55f..b7ef5f58d6a 100644 --- a/test/fixtures/courses_categories.yml +++ b/test/fixtures/courses_categories.yml @@ -117,3 +117,13 @@ courses_category24: course: course3 category: category15 position: 3 + +courses_category25: + course: course1 + category: category22 + position: 17 + +courses_category26: + course: course1 + category: category23 + position: 18 diff --git a/test/fixtures/learnings.yml b/test/fixtures/learnings.yml index 4ef97d2a5a6..9c1fd1351db 100644 --- a/test/fixtures/learnings.yml +++ b/test/fixtures/learnings.yml @@ -117,3 +117,28 @@ learning<%= i + 18 %>: created_at: <%= (today - (2.weeks - 1.day) - i.day).to_formatted_s(:db) %> updated_at: <%= (today - (2.weeks - 1.day) - i.day).to_formatted_s(:db) %> <% end %> + + +learning23: + user: harikirio + practice: practice5 + status: "complete" + completion_message_displayed: false + +learning24: + user: harikirio + practice: practice61 + status: "complete" + completion_message_displayed: false + +learning25: + user: harikirio + practice: practice62 + status: "complete" + completion_message_displayed: false + +learning26: + user: harikirio + practice: practice63 + status: "complete" + completion_message_displayed: false diff --git a/test/fixtures/practices.yml b/test/fixtures/practices.yml index 58f3e491697..8ff61dbf322 100644 --- a/test/fixtures/practices.yml +++ b/test/fixtures/practices.yml @@ -374,3 +374,19 @@ practice61: goal: "goal..." include_progress: false memo: "memo for mentors..." + +practice62: + title: "複数カテゴリに所属するプラクティス1" + summary: "概要です" + description: "複数のカテゴリに所属しているプラクティスです(必修ではありません)" + goal: "goal..." + include_progress: false + memo: "memo for mentors..." + +practice63: + title: "複数カテゴリに所属するプラクティス2" + summary: "概要です" + description: "複数のカテゴリに所属しているプラクティスです(必修です)" + goal: "goal..." + include_progress: true + memo: "memo for mentors..." diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml index 6a3e3284fc9..059e7e6a443 100644 --- a/test/fixtures/users.yml +++ b/test/fixtures/users.yml @@ -334,7 +334,7 @@ senpai: facebook_url: https://www.facebook.com/fjordllc/senpai blog_url: http://senpai.org company: company2 - description: "研修聖子の会社の先輩エンジニアです。アドバイザーです。" + description: "研修聖子の会社の先輩プログラマーです。アドバイザーです。" course: course1 job: office_worker os: mac diff --git a/test/models/user_test.rb b/test/models/user_test.rb index d5dff81d571..b365fa3e12d 100644 --- a/test/models/user_test.rb +++ b/test/models/user_test.rb @@ -74,28 +74,28 @@ class UserTest < ActiveSupport::TestCase test '#completed_percentage don\'t calculate practice that include_progress: false' do user = users(:komagata) - old_percentage = user.completed_practices_include_progress.size + old_percentage = user.completed_percentage user.completed_practices << practices(:practice5) - assert_not_equal old_percentage, user.completed_practices_include_progress.size + assert_not_equal old_percentage, user.completed_percentage - old_percentage = user.completed_practices_include_progress.size + old_percentage = user.completed_percentage user.completed_practices << practices(:practice53) - assert_equal old_percentage, user.completed_practices_include_progress.size + assert_equal old_percentage, user.completed_percentage end test '#completed_percentage don\'t calculate practice unrelated cource' do user = users(:komagata) - old_percentage = user.completed_practices_include_progress.size + old_percentage = user.completed_percentage user.completed_practices << practices(:practice5) - assert_not_equal old_percentage, user.completed_practices_include_progress.size + assert_not_equal old_percentage, user.completed_percentage - old_percentage = user.completed_practices_include_progress.size + old_percentage = user.completed_percentage user.completed_practices << practices(:practice55) - assert_equal old_percentage, user.completed_practices_include_progress.size + assert_equal old_percentage, user.completed_percentage end test '#depressed?' do diff --git a/test/system/articles_test.rb b/test/system/articles_test.rb index 768cfaec75c..e597eb42486 100644 --- a/test/system/articles_test.rb +++ b/test/system/articles_test.rb @@ -250,7 +250,7 @@ class ArticlesTest < ApplicationSystemTestCase click_on '公開する' assert_text '記事を作成しました' - meta_description = '月額29,800円、全機能が使えるお試し期間付き。フィヨルドブートキャンプは現場の即戦力になるためのスキルとプログラミングの楽しさを伝える、現役エンジニアが考える理想のプログラミングスクールの実現に励んでいます。' + meta_description = '月額29,800円、全機能が使えるお試し期間付き。FBCは現場の即戦力になるためのスキルとプログラミングの楽しさを伝える、現役ソフトウェアエンジニアが考える理想のプログラミングスクールの実現に励んでいます。' assert_selector "meta[name='description'][content='#{meta_description}']", visible: false assert_selector "meta[property='og:description'][content='#{meta_description}']", visible: false assert_selector "meta[name='twitter:description'][content='#{meta_description}']", visible: false diff --git a/test/system/course/books_test.rb b/test/system/course/books_test.rb index 2aea65207c7..f322a4db3c8 100644 --- a/test/system/course/books_test.rb +++ b/test/system/course/books_test.rb @@ -5,7 +5,7 @@ class Course::PracticesTest < ApplicationSystemTestCase test 'show the course book list page' do visit_with_auth "/courses/#{courses(:course1).id}/books", 'kimura' - assert_equal 'Railsプログラマーコースの参考書籍 | FBC', title + assert_equal 'Railsエンジニアコースの参考書籍 | FBC', title end test 'disply in the list is books associated with practices of that course' do diff --git a/test/system/course/practices_test.rb b/test/system/course/practices_test.rb index c8beadf3695..852723fbe21 100644 --- a/test/system/course/practices_test.rb +++ b/test/system/course/practices_test.rb @@ -5,7 +5,7 @@ class Course::PracticesTest < ApplicationSystemTestCase test 'show listing practices' do visit_with_auth "/courses/#{courses(:course1).id}/practices", 'kimura' - assert_equal 'Railsプログラマーコース | FBC', title + assert_equal 'Railsエンジニアコース | FBC', title end test 'show/hide the progress of others' do diff --git a/test/system/home_test.rb b/test/system/home_test.rb index d2e96d44331..fed8a3e64de 100644 --- a/test/system/home_test.rb +++ b/test/system/home_test.rb @@ -64,7 +64,7 @@ class HomeTest < ApplicationSystemTestCase assert_selector 'h2.page-header__title', text: 'ダッシュボード' assert_text 'フィヨルドブートキャンプを卒業した自分はどうなっていたいかを登録してください。' - users(:hatsuno).update!(after_graduation_hope: 'IT ジェンダーギャップ問題を解決するアプリケーションを作る事業に、エンジニアとして携わる。') + users(:hatsuno).update!(after_graduation_hope: 'ITジェンダーギャップ問題を解決するアプリケーションを作る事業に、プログラマーとして携わる。') refresh assert_selector 'h2.page-header__title', text: 'ダッシュボード' assert_no_text 'フィヨルドブートキャンプを卒業した自分はどうなっていたいかを登録してください。' @@ -95,7 +95,7 @@ class HomeTest < ApplicationSystemTestCase user.discord_profile.account_name = 'hatsuno1234' user.update!( tag_list: ['猫'], - after_graduation_hope: 'IT ジェンダーギャップ問題を解決するアプリケーションを作る事業に、エンジニアとして携わる。' + after_graduation_hope: 'ITジェンダーギャップ問題を解決するアプリケーションを作る事業に、プログラマーとして携わる。' ) path = Rails.root.join('test/fixtures/files/users/avatars/hatsuno.jpg') user.avatar.attach(io: File.open(path), filename: 'hatsuno.jpg') diff --git a/test/system/mentor/categories/practices_test.rb b/test/system/mentor/categories/practices_test.rb index f3b6349494c..18cd3b7de13 100644 --- a/test/system/mentor/categories/practices_test.rb +++ b/test/system/mentor/categories/practices_test.rb @@ -19,7 +19,6 @@ class Mentor::Categories::PracticesTest < ApplicationSystemTestCase visit_with_auth course_practices_path(courses(:course1)), 'kimura' assert_equal all('span.category-practices-item__title-link-label')[0].text, practices(:practice1).title assert_equal all('span.category-practices-item__title-link-label')[1].text, practices(:practice3).title - visit_with_auth mentor_category_practices_path(categories(:category2)), 'komagata' source = all('.js-grab')[0] # practice1 target = all('.js-grab')[2] # practice3 diff --git a/test/system/reports_test.rb b/test/system/reports_test.rb index 175c5a255ba..4205dc15880 100644 --- a/test/system/reports_test.rb +++ b/test/system/reports_test.rb @@ -114,9 +114,9 @@ class ReportsTest < ApplicationSystemTestCase report_practices = page.all('.choices__item--choice').map(&:text) current_user = users(:komagata) category_ids = current_user.course.category_ids - assert_equal report_practices.count, Practice.joins(:categories).merge(Category.where(id: category_ids)).count + assert_equal report_practices.count, Practice.joins(:categories).merge(Category.where(id: category_ids)).distinct.count assert_match(/OS X Mountain Lionをクリーンインストールする/, first('.choices__item--choice').text) - assert_match(/sslの基礎を理解する/, all('.choices__item--choice').last.text) + assert_match(/企業研究/, all('.choices__item--choice').last.text) end test 'equal practices order in practices and edit report' do @@ -125,9 +125,9 @@ class ReportsTest < ApplicationSystemTestCase report_practices = page.all('.choices__item--choice').map(&:text) current_user = users(:komagata) category_ids = current_user.course.category_ids - assert_equal report_practices.count, Practice.joins(:categories).merge(Category.where(id: category_ids)).count + assert_equal report_practices.count, Practice.joins(:categories).merge(Category.where(id: category_ids)).distinct.count assert_match(/OS X Mountain Lionをクリーンインストールする/, first('.choices__item--choice').text) - assert_match(/sslの基礎を理解する/, all('.choices__item--choice').last.text) + assert_match(/企業研究/, all('.choices__item--choice').last.text) end test 'issue #360 duplicate' do @@ -546,14 +546,14 @@ def wait_for_watch_change test 'display report interval for mentor while undoing wip' do visit_with_auth report_path(reports(:report32)), 'komagata' - assert_selector '.a-page-notice.is-only-mentor.is-danger', text: '10日ぶりの日報です' + assert_selector '.a-page-notice.is-only-mentor.is-danger', text: '10日ぶりの日報です。' visit_with_auth report_path(reports(:report33)), 'kananashi' click_link '内容修正' click_button '提出' visit_with_auth report_path(reports(:report32)), 'komagata' - assert_no_selector '.a-page-notice.is-only-mentor.is-danger', text: '9日ぶりの日報です' + assert_no_selector '.a-page-notice.is-only-mentor.is-danger', text: '9日ぶりの日報です。' end test 'notify to chat after create a report' do @@ -754,4 +754,19 @@ def wait_for_watch_change assert_no_text 'この日報はすでに提出済みです。' assert_button '提出' end + + test 'display message to admin or mentor in report of retired user' do + report = Report.create!( + user: users(:yameo), + title: '退会済みユーザーの日報', + reported_on: '2022-01-03', + emotion: 'happy', + no_learn: true, + wip: false, + description: 'お世話になりました' + ) + + visit_with_auth report_path(report), 'komagata' + assert_selector '.a-page-notice.is-muted.is-only-mentor', text: 'このユーザーは退会しています。' + end end diff --git a/test/system/survey_questions_test.rb b/test/system/survey_questions_test.rb index 1f74574055a..a87c7f88319 100644 --- a/test/system/survey_questions_test.rb +++ b/test/system/survey_questions_test.rb @@ -44,7 +44,7 @@ class SurveyQuestionsTest < ApplicationSystemTestCase fill_in 'survey_question[title]', with: '就職についてどんな不安を抱えていますか?' choose 'チェックボックス', allow_label_click: true click_link '追加' - find("input[name*='[choices]']").set('エンジニアとしてやっていけるか不安') + find("input[name*='[choices]']").set('プログラマーとしてやっていけるか不安') fill_in 'survey_question[check_box_attributes][title_of_reason]', with: 'その他の内容を教えてください。' click_button '保存' assert_text 'チェックボックス' diff --git a/test/system/user/comments_test.rb b/test/system/user/comments_test.rb index 6c12ce43bdc..3fae2fce678 100644 --- a/test/system/user/comments_test.rb +++ b/test/system/user/comments_test.rb @@ -5,6 +5,6 @@ class User::CommentsTest < ApplicationSystemTestCase test 'show listing comments' do visit_with_auth "/users/#{users(:hatsuno).id}/comments", 'hatsuno' - assert_equal 'hatsunoコメント | FBC', title + assert_equal 'hatsunoさんのコメント | FBC', title end end diff --git a/test/system/user/meta_data_test.rb b/test/system/user/meta_data_test.rb index 50aaa8b4607..12e482fbfe0 100644 --- a/test/system/user/meta_data_test.rb +++ b/test/system/user/meta_data_test.rb @@ -5,11 +5,13 @@ class User::MetaDataTest < ApplicationSystemTestCase test 'show progress percentage and click to check the number of completions' do user = users(:harikirio) - user.completed_practices << practices(:practice5) + user.completed_practices = [] user.completed_practices << practices(:practice61) + user.completed_practices << practices(:practice62) + user.completed_practices << practices(:practice63) visit_with_auth "/users/#{users(:harikirio).id}", 'harikirio' assert_text '1%' find('.completed-practices-progress__percentage').click - assert_text '修了: 2 (必須: 1/51)' + assert_text '修了: 3 (必須: 1/52)' end end diff --git a/test/system/user/products_test.rb b/test/system/user/products_test.rb index 2a122821186..f209720e904 100644 --- a/test/system/user/products_test.rb +++ b/test/system/user/products_test.rb @@ -5,7 +5,7 @@ class User::ProductsTest < ApplicationSystemTestCase test 'show listing products' do visit_with_auth "/users/#{users(:hatsuno).id}/products", 'komagata' - assert_equal 'hatsunoの提出物一覧 | FBC', title + assert_equal 'hatsunoさんの提出物一覧 | FBC', title end test 'show self assigned products to mentor' do diff --git a/test/system/user/works_test.rb b/test/system/user/works_test.rb index fb4d499f7b3..4a8ef809314 100644 --- a/test/system/user/works_test.rb +++ b/test/system/user/works_test.rb @@ -5,6 +5,6 @@ class User::WorksTest < ApplicationSystemTestCase test 'show portfolio' do visit_with_auth "/users/#{users(:hatsuno).id}/portfolio", 'hatsuno' - assert_equal 'hatsunoのポートフォリオ | FBC', title + assert_equal 'hatsunoさんのポートフォリオ | FBC', title end end diff --git a/test/system/users_test.rb b/test/system/users_test.rb index a49bba83125..5b50470d375 100644 --- a/test/system/users_test.rb +++ b/test/system/users_test.rb @@ -11,7 +11,7 @@ class UsersTest < ApplicationSystemTestCase test 'show profile' do visit_with_auth "/users/#{users(:hatsuno).id}", 'hatsuno' - assert_equal 'hatsuno | FBC', title + assert_equal 'hatsunoさんのプロフィール | FBC', title end test 'autolink profile when url is included' do diff --git a/yarn.lock b/yarn.lock index 1b3260866d5..60be03a5b5d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9730,9 +9730,9 @@ wrappy@1: integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@^6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + version "6.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.3.tgz#ccc96e4add5fd6fedbc491903075c85c5a11d9ee" + integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== dependencies: async-limiter "~1.0.0"