diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index f050b4d..e7f7f7e 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -6,6 +6,10 @@ class MembersController < ApplicationController @members = Member.public_scope.order(:name).page params[:page] end + def timeline + @members = Member.visible_scope.order(:name).page params[:page] + end + # GET /members/1 def show end diff --git a/app/models/member.rb b/app/models/member.rb index ec5b889..f37b14e 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -4,6 +4,10 @@ class Member < ApplicationRecord where.not(confirmed_at: nil).where.not(picture: nil) end + def self.visible_scope + where.not(confirmed_at: nil).where.not(arrived: nil) + end + # Include default devise modules. Others available are: # , :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable,:confirmable, diff --git a/app/views/members/timeline.haml b/app/views/members/timeline.haml new file mode 100644 index 0000000..a67a8a3 --- /dev/null +++ b/app/views/members/timeline.haml @@ -0,0 +1,9 @@ += paginate @members + +.flex.flex-col.mx-10 + - @members.each_with_index do |member , index| + .flex + .w-60= member.name + .mx-1= index + 1 + .mx-1= distance_of_time_in_words_to_now member.arrived + .name= member.left - member.arrived diff --git a/config/routes.rb b/config/routes.rb index d5e869a..71dba35 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -7,7 +7,11 @@ Rails.application.routes.draw do get "/members/edit_email" , to: "registrations#edit_email" end - resources :members + resources :members do + collection do + get :timeline + end + end mount Thredded::Engine => '/forum'