From cab29ef00c0339617bdb2a3f7c0b9bbc861c83cf Mon Sep 17 00:00:00 2001 From: kutimiti1234 Date: Wed, 14 Jan 2026 20:37:43 +0900 Subject: [PATCH 1/9] =?UTF-8?q?=E4=B8=8D=E8=A6=81=E3=81=AA=E3=83=95?= =?UTF-8?q?=E3=82=A1=E3=82=A4=E3=83=AB=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/regular_events_controller.rb | 19 --- app/javascript/components/RegularEvent.jsx | 136 ------------------ .../_regular_event.json.jbuilder | 11 -- .../api/regular_events/index.json.jbuilder | 2 - config/routes/api.rb | 1 - test/integration/api/regular_events_test.rb | 15 -- 6 files changed, 184 deletions(-) delete mode 100644 app/controllers/api/regular_events_controller.rb delete mode 100644 app/javascript/components/RegularEvent.jsx delete mode 100644 app/views/api/regular_events/_regular_event.json.jbuilder delete mode 100644 app/views/api/regular_events/index.json.jbuilder delete mode 100644 test/integration/api/regular_events_test.rb diff --git a/app/controllers/api/regular_events_controller.rb b/app/controllers/api/regular_events_controller.rb deleted file mode 100644 index cd7256b850a..00000000000 --- a/app/controllers/api/regular_events_controller.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -class API::RegularEventsController < API::BaseController - before_action :require_active_user_login - - def index - regular_events = - case params[:target] - when 'not_finished' - RegularEvent.not_finished - else - RegularEvent.all - end - @regular_events = regular_events.with_avatar - .includes(:comments, :users) - .order(created_at: :desc) - .page(params[:page]) - end -end diff --git a/app/javascript/components/RegularEvent.jsx b/app/javascript/components/RegularEvent.jsx deleted file mode 100644 index 73b1b61c9b2..00000000000 --- a/app/javascript/components/RegularEvent.jsx +++ /dev/null @@ -1,136 +0,0 @@ -import React, { useEffect, useRef } from 'react' -import userIcon from '../user-icon.js' - -const RegularEvent = ({ regularEvent }) => { - const categoryClass = - regularEvent.category_class === 'reading_circle' - ? 'is-reading-circle' - : `is-${regularEvent.category_class}` - - return ( -
-
-
- {regularEvent.category} -
-
-
-
- - -
-
-
-
-
- - - -
-
-
-
-
-
- ) -} - -const EventStatus = ({ event }) => { - return ( - <> - {event.wip ? ( -
- WIP -
- ) : ( - event.finished && ( -
- 終了 -
- ) - )} - - ) -} - -const EventTitle = ({ event }) => { - return ( -

- -

- ) -} - -const EventOrganizers = ({ event }) => { - // userIconの非React化により、useRef,useEffectを導入している。 - const userIconRef = useRef(null) - useEffect(() => { - const linkClass = 'card-list-item__user-link' - const imgClasses = ['card-list-item__user-icon', 'a-user-icon'] - - const userIconElements = event.organizers.map((organizer) => { - return userIcon({ - user: organizer, - linkClass, - imgClasses - }) - }) - - if (userIconRef.current) { - userIconRef.current.innerHTML = '' - userIconElements.forEach((element) => { - userIconRef.current.appendChild(element) - }) - } - }, [event.organizers]) - - return ( - <> - {event.organizers.length > 0 && ( -
-
-
主催
-
-
-
-
-
- )} - - ) -} - -const EventDatetime = ({ event }) => { - return ( -
- -
- ) -} - -const Comments = ({ event }) => { - return ( - <> - {event.comments_count > 0 && ( -
-
コメント({event.comments_count})
-
- )} - - ) -} - -export default RegularEvent diff --git a/app/views/api/regular_events/_regular_event.json.jbuilder b/app/views/api/regular_events/_regular_event.json.jbuilder deleted file mode 100644 index f2e8c879a58..00000000000 --- a/app/views/api/regular_events/_regular_event.json.jbuilder +++ /dev/null @@ -1,11 +0,0 @@ -json.(regular_event, :id, :title, :wip, :start_at, :end_at, :finished) -json.title regular_event.title -json.start_at_localized l regular_event.start_at, format: :time_only -json.end_at_localized l regular_event.end_at, format: :time_only -json.finished regular_event.finished -json.category t("activerecord.enums.regular_event.category.#{regular_event.category}") -json.category_class regular_event.category -json.comments_count regular_event.comments.size -json.url regular_event_url(regular_event) -json.organizers regular_event.organizers, partial: "api/users/user", as: :user -json.holding_cycles regular_event.holding_cycles diff --git a/app/views/api/regular_events/index.json.jbuilder b/app/views/api/regular_events/index.json.jbuilder deleted file mode 100644 index 16756d1fd23..00000000000 --- a/app/views/api/regular_events/index.json.jbuilder +++ /dev/null @@ -1,2 +0,0 @@ -json.regular_events @regular_events, partial: "api/regular_events/regular_event", as: :regular_event -json.total_pages @regular_events.total_pages diff --git a/config/routes/api.rb b/config/routes/api.rb index 53616f6b163..ab92d0700c2 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -76,7 +76,6 @@ resources :action_uncompleted, only: %i(index) end resources :talks, only: %i(index update) - resources :regular_events, only: %i(index) resources :books, only: %i(index) resources :survey_question_listings, only: %i() do resource :position, only: %i(update), controller: "survey_question_listings/position" diff --git a/test/integration/api/regular_events_test.rb b/test/integration/api/regular_events_test.rb deleted file mode 100644 index a9f54c39213..00000000000 --- a/test/integration/api/regular_events_test.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -require 'test_helper' - -class API::RegularEventsTest < ActionDispatch::IntegrationTest - test 'GET /api/regular_events.json' do - get api_regular_events_path(format: :json) - assert_response :unauthorized - - token = create_token('hatsuno', 'testtest') - get api_regular_events_path(format: :json), - headers: { 'Authorization' => "Bearer #{token}" } - assert_response :ok - end -end From d400306f78d1c7e3c137380290f9d1cc95973e70 Mon Sep 17 00:00:00 2001 From: kutimiti1234 Date: Thu, 15 Jan 2026 00:19:56 +0900 Subject: [PATCH 2/9] =?UTF-8?q?RegularEvents.jsx=E3=82=92rails=20view?= =?UTF-8?q?=E3=81=B8=E7=BD=AE=E3=81=8D=E6=8F=9B=E3=81=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `test/system/regular_events_test.rb`の変更の詳細: `regular_events`は41個存在するので、1ページに25個表示された場合、2ページ目には16個表示されるはず。つまり、mainの既存実装が誤っている mainでテストが通過していたのは、現状はJSで実装されているため、JSが非同期で表示を切り替える前に、テストがplaceholder(8個のカードが存在する)の表示をassertしてしまい通過している --- app/controllers/regular_events_controller.rb | 15 ++ app/javascript/components/RegularEvents.jsx | 135 ------------------ .../regular_events/_regular_events.html.slim | 57 ++++++++ app/views/regular_events/index.html.slim | 9 +- test/system/regular_events_test.rb | 2 +- 5 files changed, 81 insertions(+), 137 deletions(-) delete mode 100644 app/javascript/components/RegularEvents.jsx create mode 100644 app/views/regular_events/_regular_events.html.slim diff --git a/app/controllers/regular_events_controller.rb b/app/controllers/regular_events_controller.rb index 7c8f8788567..f97744dc1ea 100644 --- a/app/controllers/regular_events_controller.rb +++ b/app/controllers/regular_events_controller.rb @@ -1,9 +1,24 @@ # frozen_string_literal: true class RegularEventsController < ApplicationController + PAGER_NUMBER = 25 before_action :set_regular_event, only: %i[edit update destroy] def index + regular_events = + case params[:target] + when 'not_finished' + RegularEvent.not_finished + else + RegularEvent.all + end + @regular_events = + regular_events.with_avatar + .includes(:comments, :users) + .order(created_at: :desc) + .page(params[:page]) + .per(PAGER_NUMBER) + @upcoming_events_groups = UpcomingEvent.upcoming_events_groups end diff --git a/app/javascript/components/RegularEvents.jsx b/app/javascript/components/RegularEvents.jsx deleted file mode 100644 index 2e2f310f8dc..00000000000 --- a/app/javascript/components/RegularEvents.jsx +++ /dev/null @@ -1,135 +0,0 @@ -import React, { useState, useEffect } from 'react' -import useSWR from 'swr' -import { get } from '@rails/request.js' -import queryString from 'query-string' -import Pagination from './Pagination' -import LoadingListPlaceholder from './LoadingListPlaceholder' -import RegularEvent from './RegularEvent' -import usePage from './hooks/usePage' -const fetcher = (url) => - get(url, { responseKind: 'json' }).then((res) => res.json) - -const RegularEvents = () => { - const getTargetQueryParam = () => { - return queryString.parse(location.search).target || '' - } - const [target, setTarget] = useState(getTargetQueryParam()) - const { page, setPage } = usePage() - - useEffect(() => { - const handlePopState = () => { - setTarget(getTargetQueryParam()) - } - window.addEventListener('popstate', handlePopState) - return () => { - window.removeEventListener('popstate', handlePopState) - } - }, []) - - const handleNotFinishedClick = () => { - setTarget('not_finished') - setPage(1) - window.history.pushState(null, null, '/regular_events?target=not_finished') - } - - const handleAllClick = () => { - setTarget('') - setPage(1) - window.history.pushState(null, null, '/regular_events') - } - - return ( - <> - - - - ) -} - -const Navigation = ({ target, handleNotFinishedClick, handleAllClick }) => { - return ( - - ) -} - -const EventList = ({ target, page, setPage }) => { - const per = 20 - - const { data, error } = useSWR( - `/api/regular_events?${buildParams(target, page)}`, - fetcher - ) - - if (error) console.warn(error) - - if (!data) { - return ( -
-
- -
-
- ) - } - - return ( -
- {data.total_pages > 1 && ( - - )} -
- {data.regular_events.map((regularEvent) => ( - - ))} -
- {data.total_pages > 1 && ( - - )} -
- ) -} - -const buildParams = (targetParam, pageParam) => { - const params = { - ...(targetParam === 'not_finished' && { target: 'not_finished' }), - page: pageParam - } - return new URLSearchParams(params).toString() -} - -export default RegularEvents diff --git a/app/views/regular_events/_regular_events.html.slim b/app/views/regular_events/_regular_events.html.slim new file mode 100644 index 00000000000..cbf4d83bb3a --- /dev/null +++ b/app/views/regular_events/_regular_events.html.slim @@ -0,0 +1,57 @@ +nav.pill-nav.mb-8 + .pill-nav__items + .pill-nav__item + = link_to regular_events_path(target: :not_finished), class: "pill-nav__item-link#{params[:target] == 'not_finished' ? ' is-active' : ''}" do + | 開催中 + .pill-nav__item + = link_to regular_events_path, class: "pill-nav__item-link#{params[:target].nil? ? ' is-active' : ' '}" do + | 全て + += paginate @regular_events +ul.card-list.a-card + - @regular_events.each do |event| + li.card-list-item + .card-list-item__inner + .card-list-item__label class="#{event.category}" + = t("activerecord.enums.regular_event.category.#{event.category}") + .card-list-item__user + = render 'users/icon', user: event.user, link_class: 'card-list-item__user-link', image_class: 'card-list-item__user-icon' + .card-list-item__rows + .card-list-item__row + .card-list-item-title + - if event.wip + .a-list-item-badge.is-wip + span + | WIP + - elsif event.finished? + .a-list-item-badge.is-ended + span + | 終了 + h2.card-list-item-title__title(itemprop='name') + = link_to event, itemprop: 'url', class: 'card-list-item-title__link a-text-link' do + = event.title + .card-list-item__row + .card-list-item-meta + .card-list-item-meta__items + .card-list-item-meta__item + .a-meta + .a-meta__label 主催 + .a-meta__value + .card-list-item__user-icons + - event.users.each do |user| + .card-list-item__user-link + = render 'users/icon', + user: user, + link_class: 'card-list-item__user-link', + image_class: 'card-list-item__user-icon a-user-icon' + + .card-list-item-meta__item + time.a-meta(datetime=event.start_at) + span.a-meta__label 開催日時 + span.a-meta__value = "#{event.holding_cycles} #{l event.start_at, format: :time_only} ~ #{l event.end_at, format: :time_only}" + .card-list-item-meta__item + - if event.comments.size.positive? + .card-list-item-meta__item + .a-meta + | コメント(#{event.comments.size}) += paginate @regular_events diff --git a/app/views/regular_events/index.html.slim b/app/views/regular_events/index.html.slim index f52ada2e424..5071bb109c5 100644 --- a/app/views/regular_events/index.html.slim +++ b/app/views/regular_events/index.html.slim @@ -23,5 +23,12 @@ .page-body .page-body__inner.has-side-nav .container.is-md - = react_component 'RegularEvents' + - if @regular_events.empty? + .o-empty-message + .o-empty-message__icon + i.fa-regular.fa-sad-tear + p.o-empty-message__text + | 登録されている定期イベントはありません。 + - else + = render 'regular_events/regular_events' = render 'events/upcoming_events_groups', upcoming_events_groups: @upcoming_events_groups diff --git a/test/system/regular_events_test.rb b/test/system/regular_events_test.rb index fe45f788da0..0b0b07baccc 100644 --- a/test/system/regular_events_test.rb +++ b/test/system/regular_events_test.rb @@ -47,7 +47,7 @@ class RegularEventsTest < ApplicationSystemTestCase visit_with_auth regular_events_path, 'kimura' assert_selector '.card-list.a-card .card-list-item', count: 25 visit regular_events_path(page: 2) - assert_selector '.card-list.a-card .card-list-item', count: 8 + assert_selector '.card-list.a-card .card-list-item', count: 16 end test 'using file uploading by file selection dialogue in textarea' do From bee3885cda2b219699430a610319561bcee83c1a Mon Sep 17 00:00:00 2001 From: kutimiti1234 Date: Thu, 15 Jan 2026 00:33:28 +0900 Subject: [PATCH 3/9] =?UTF-8?q?WIP,=E7=B5=82=E4=BA=86=E3=81=AE=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E3=81=AE=E5=BF=85=E8=A6=81=E6=80=A7=E3=81=AE=E6=9C=89?= =?UTF-8?q?=E7=84=A1=E3=82=92=E5=88=A4=E5=AE=9A=E3=81=99=E3=82=8B=E3=83=AD?= =?UTF-8?q?=E3=82=B8=E3=83=83=E3=82=AF=E3=82=92=E5=8F=AF=E8=AA=AD=E6=80=A7?= =?UTF-8?q?=E3=81=AE=E3=81=9F=E3=82=81=E3=81=AB=E3=80=81=E3=83=A1=E3=82=BD?= =?UTF-8?q?=E3=83=83=E3=83=89=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/regular_events_controller.rb | 28 +++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/app/controllers/regular_events_controller.rb b/app/controllers/regular_events_controller.rb index f97744dc1ea..10d094791c3 100644 --- a/app/controllers/regular_events_controller.rb +++ b/app/controllers/regular_events_controller.rb @@ -5,19 +5,12 @@ class RegularEventsController < ApplicationController before_action :set_regular_event, only: %i[edit update destroy] def index - regular_events = - case params[:target] - when 'not_finished' - RegularEvent.not_finished - else - RegularEvent.all - end - @regular_events = - regular_events.with_avatar - .includes(:comments, :users) - .order(created_at: :desc) - .page(params[:page]) - .per(PAGER_NUMBER) + @regular_events = fetch_target_events(params[:target]) + .with_avatar + .includes(:comments, :users, :regular_event_repeat_rules) + .order(created_at: :desc) + .page(params[:page]) + .per(PAGER_NUMBER) @upcoming_events_groups = UpcomingEvent.upcoming_events_groups end @@ -137,4 +130,13 @@ def set_all_user_participants_and_watchers RegularEvent::ParticipantsCreator.call(regular_event: @regular_event, target: students_trainees_mentors_and_admins) RegularEvent::ParticipantsWatcher.call(regular_event: @regular_event, target: students_trainees_mentors_and_admins) end + + def fetch_target_events(target) + case target + when 'not_finished' + RegularEvent.not_finished + else + RegularEvent.all + end + end end From a7a01c23b450c7596af70aff8b8252135bd08683 Mon Sep 17 00:00:00 2001 From: kutimiti1234 Date: Wed, 21 Jan 2026 21:01:28 +0900 Subject: [PATCH 4/9] =?UTF-8?q?RegularEventsController=E3=81=AB=E3=80=81?= =?UTF-8?q?=E3=82=AF=E3=83=A9=E3=82=B9=E3=81=AE=E8=A1=8C=E6=95=B0=E3=81=8C?= =?UTF-8?q?=E8=B6=85=E3=81=88=E3=81=A6=E3=81=84=E3=82=8B=E8=AD=A6=E5=91=8A?= =?UTF-8?q?=E3=81=8C=E5=87=BA=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E8=A8=AD?= =?UTF-8?q?=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit コントローラーのサイズが肥大化してしまったが、別issueで対応するため --- app/controllers/regular_events_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/regular_events_controller.rb b/app/controllers/regular_events_controller.rb index 10d094791c3..82ee57478ef 100644 --- a/app/controllers/regular_events_controller.rb +++ b/app/controllers/regular_events_controller.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class RegularEventsController < ApplicationController +class RegularEventsController < ApplicationController # rubocop:disable Metrics/ClassLength PAGER_NUMBER = 25 before_action :set_regular_event, only: %i[edit update destroy] From e7a23129fb47c8509ad887db73791a4018cd343f Mon Sep 17 00:00:00 2001 From: kutimiti1234 Date: Wed, 21 Jan 2026 22:45:52 +0900 Subject: [PATCH 5/9] =?UTF-8?q?=E6=99=82=E9=96=93=E8=A1=A8=E7=8F=BE?= =?UTF-8?q?=E3=82=92=E5=9B=BD=E9=9A=9B=E7=9A=84=E3=81=AA=E8=A6=8F=E6=A0=BC?= =?UTF-8?q?=E3=81=AB=E6=BA=96=E6=8B=A0=E3=81=95=E3=81=9B=E3=82=8B=E3=81=9F?= =?UTF-8?q?=E3=82=81,iso8601=E3=81=A7=E3=83=95=E3=82=A9=E3=83=BC=E3=83=9E?= =?UTF-8?q?=E3=83=83=E3=83=88=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/regular_events/_regular_events.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/regular_events/_regular_events.html.slim b/app/views/regular_events/_regular_events.html.slim index cbf4d83bb3a..401028e6091 100644 --- a/app/views/regular_events/_regular_events.html.slim +++ b/app/views/regular_events/_regular_events.html.slim @@ -46,7 +46,7 @@ ul.card-list.a-card image_class: 'card-list-item__user-icon a-user-icon' .card-list-item-meta__item - time.a-meta(datetime=event.start_at) + time.a-meta(datetime=event.start_at.iso8601) span.a-meta__label 開催日時 span.a-meta__value = "#{event.holding_cycles} #{l event.start_at, format: :time_only} ~ #{l event.end_at, format: :time_only}" .card-list-item-meta__item From 633044a8676929a6c2a131173c94a6a54fedabd9 Mon Sep 17 00:00:00 2001 From: kutimiti1234 Date: Thu, 12 Feb 2026 19:38:15 +0900 Subject: [PATCH 6/9] =?UTF-8?q?=E8=AA=A4=E3=81=A3=E3=81=A6=E3=82=B9?= =?UTF-8?q?=E3=83=9A=E3=83=BC=E3=82=B9=E3=81=8C=E5=85=A5=E3=82=8A=E8=BE=BC?= =?UTF-8?q?=E3=82=93=E3=81=A0=E3=81=9F=E3=82=81=E3=80=81=E3=82=B9=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=82=B9=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/regular_events/_regular_events.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/regular_events/_regular_events.html.slim b/app/views/regular_events/_regular_events.html.slim index 401028e6091..d335fd99a21 100644 --- a/app/views/regular_events/_regular_events.html.slim +++ b/app/views/regular_events/_regular_events.html.slim @@ -4,7 +4,7 @@ nav.pill-nav.mb-8 = link_to regular_events_path(target: :not_finished), class: "pill-nav__item-link#{params[:target] == 'not_finished' ? ' is-active' : ''}" do | 開催中 .pill-nav__item - = link_to regular_events_path, class: "pill-nav__item-link#{params[:target].nil? ? ' is-active' : ' '}" do + = link_to regular_events_path, class: "pill-nav__item-link#{params[:target].nil? ? ' is-active' : ''}" do | 全て = paginate @regular_events From dae630321587711b9d2b53371830cb8f53a652a8 Mon Sep 17 00:00:00 2001 From: kutimiti1234 Date: Fri, 13 Feb 2026 17:52:43 +0900 Subject: [PATCH 7/9] =?UTF-8?q?=E3=83=95=E3=82=A1=E3=83=83=E3=83=88?= =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AD=E3=83=BC=E3=83=A9=E3=83=BC?= =?UTF-8?q?=E3=81=AE=E8=A1=8C=E6=95=B0=E3=82=92=E5=89=8A=E6=B8=9B=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=81=9F=E3=82=81=E3=80=81Model=E5=81=B4=E3=81=AB?= =?UTF-8?q?=E3=82=B9=E3=82=B3=E3=83=BC=E3=83=97=E3=82=92=E5=AE=9A=E7=BE=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/regular_events_controller.rb | 19 ++++--------------- app/models/regular_event.rb | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/app/controllers/regular_events_controller.rb b/app/controllers/regular_events_controller.rb index 82ee57478ef..fff7d54eeb8 100644 --- a/app/controllers/regular_events_controller.rb +++ b/app/controllers/regular_events_controller.rb @@ -5,12 +5,10 @@ class RegularEventsController < ApplicationController # rubocop:disable Metrics/ before_action :set_regular_event, only: %i[edit update destroy] def index - @regular_events = fetch_target_events(params[:target]) - .with_avatar - .includes(:comments, :users, :regular_event_repeat_rules) - .order(created_at: :desc) - .page(params[:page]) - .per(PAGER_NUMBER) + @regular_events = RegularEvent.list + .fetch_target_events(params[:target]) + .page(params[:page]) + .per(PAGER_NUMBER) @upcoming_events_groups = UpcomingEvent.upcoming_events_groups end @@ -130,13 +128,4 @@ def set_all_user_participants_and_watchers RegularEvent::ParticipantsCreator.call(regular_event: @regular_event, target: students_trainees_mentors_and_admins) RegularEvent::ParticipantsWatcher.call(regular_event: @regular_event, target: students_trainees_mentors_and_admins) end - - def fetch_target_events(target) - case target - when 'not_finished' - RegularEvent.not_finished - else - RegularEvent.all - end - end end diff --git a/app/models/regular_event.rb b/app/models/regular_event.rb index ee83e3201c2..f1bcb3031b4 100644 --- a/app/models/regular_event.rb +++ b/app/models/regular_event.rb @@ -53,6 +53,21 @@ class RegularEvent < ApplicationRecord # rubocop:disable Metrics/ClassLength scope :scheduled_on, ->(date) { holding.filter { |event| event.scheduled_on?(date) } } scope :scheduled_on_without_ended, ->(date) { holding.filter { |event| event.scheduled_on?(date) && !event.ended?(date) } } + scope :fetch_target_events, lambda { |target| + case target + when 'not_finished' + not_finished + else + all + end + } + + scope :list, lambda { + with_avatar + .includes(:comments, :users, :regular_event_repeat_rules) + .order(created_at: :desc) + } + belongs_to :user has_many :organizers, dependent: :destroy has_many :users, through: :organizers From 4676806f9ce1857011f26122d65c48511e9cbad3 Mon Sep 17 00:00:00 2001 From: kutimiti1234 Date: Fri, 13 Feb 2026 18:16:10 +0900 Subject: [PATCH 8/9] =?UTF-8?q?PAGER=5FNUMBER=E3=81=AE=E5=AE=9A=E6=95=B0?= =?UTF-8?q?=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit kaminariのデフォルトpager_numberが25なので情報量が増えていないことから --- app/controllers/regular_events_controller.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/controllers/regular_events_controller.rb b/app/controllers/regular_events_controller.rb index fff7d54eeb8..6cd99906e59 100644 --- a/app/controllers/regular_events_controller.rb +++ b/app/controllers/regular_events_controller.rb @@ -1,14 +1,12 @@ # frozen_string_literal: true class RegularEventsController < ApplicationController # rubocop:disable Metrics/ClassLength - PAGER_NUMBER = 25 before_action :set_regular_event, only: %i[edit update destroy] def index @regular_events = RegularEvent.list .fetch_target_events(params[:target]) .page(params[:page]) - .per(PAGER_NUMBER) @upcoming_events_groups = UpcomingEvent.upcoming_events_groups end From dafd024d4134ce720c42c5388c414e7bc591db0c Mon Sep 17 00:00:00 2001 From: kutimiti1234 Date: Wed, 11 Mar 2026 20:49:13 +0900 Subject: [PATCH 9/9] =?UTF-8?q?=E4=B8=8D=E8=A6=81=E3=81=AA=E3=83=91?= =?UTF-8?q?=E3=82=A4=E3=83=97=E3=82=92=E9=99=A4=E5=8E=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/regular_events/_regular_events.html.slim | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/views/regular_events/_regular_events.html.slim b/app/views/regular_events/_regular_events.html.slim index d335fd99a21..c539a13fc86 100644 --- a/app/views/regular_events/_regular_events.html.slim +++ b/app/views/regular_events/_regular_events.html.slim @@ -21,12 +21,10 @@ ul.card-list.a-card .card-list-item-title - if event.wip .a-list-item-badge.is-wip - span - | WIP + span WIP - elsif event.finished? .a-list-item-badge.is-ended - span - | 終了 + span 終了 h2.card-list-item-title__title(itemprop='name') = link_to event, itemprop: 'url', class: 'card-list-item-title__link a-text-link' do = event.title