|
- class TidingsController < ApplicationController
- include PaginateHelper
-
- before_action :require_login
- after_action :update_onclick_time!, only: [:index]
-
- def index
- tidings = current_user.tidings.visible
- @onclick_time = current_user.click_time
-
- tiding_types =
- case params[:type]
- when 'notice' then 'System'
- when 'apply' then 'Apply'
- when 'course' then %w(HomeworkCommon Exercise Poll GraduationTask GraduationTopic)
- when 'project' then 'Project'
- when 'interaction' then %w(Comment Mentioned Praise Fan)
- when 'project_package' then %w(Created Destroyed Bidding BiddingEnd BiddingWon BiddingLost)
- end
- tidings = tidings.where(tiding_type: tiding_types) if tiding_types.present?
-
- tidings = tidings.where(container_type: 'JoinCourse', status: 0) if params[:type] == 'course_apply'
- # @course_apply_count = tidings.where("created_at > '#{@onclick_time}'").where(container_type: 'JoinCourse', status: 0).count
- @course_apply_count = tidings.where(container_type: 'JoinCourse', status: 0).count
-
- tidings = tidings.where(container_type: 'ProjectPackage') if params[:type] == 'project_package'
-
- @count = tidings.count
- @tidings = paginate(tidings.order(created_at: :desc), per_page: 10)
- end
-
- private
-
- def update_onclick_time!
- current_user.onclick_time.touch(:onclick_time)
- end
- end
|