parent
dc76395348
commit
56aa27b588
@ -0,0 +1,39 @@
|
||||
class AttendancesController < ApplicationController
|
||||
before_action :require_login
|
||||
before_action :find_course, only: [:index, :student_attendances, :history_attendances]
|
||||
before_action :find_attendance, except: [:index, :student_attendances, :history_attendances]
|
||||
before_action :user_course_identity
|
||||
|
||||
def index
|
||||
current_date = Date.current
|
||||
current_end_time = Time.current.strftime("%H:%M:%S")
|
||||
|
||||
if params[:history]
|
||||
@attendances = @course.course_attendances.where("attendance_date < '#{current_date}' or
|
||||
(attendance_date = '#{current_date}' and end_time < '#{current_end_time}')")
|
||||
else
|
||||
@attendances = @course.course_attendances.where("attendance_date > '#{current_date}' or
|
||||
(attendance_date = '#{current_date}' and end_time > '#{current_end_time}')")
|
||||
end
|
||||
@attendances_count = @attendances.size
|
||||
|
||||
@attendances = @attendances.order("attendance_date desc, start_time desc")
|
||||
@attendances = paginate @attendances.includes(:user, :course_member_attendances)
|
||||
end
|
||||
|
||||
def history_attendances
|
||||
current_date = Date.current
|
||||
current_end_time = Time.current.strftime("%H:%M:%S")
|
||||
|
||||
@history_attendances = @course.course_attendances.where("attendance_date < '#{current_date}' or
|
||||
(attendance_date = '#{current_date}' and end_time < '#{current_end_time}')").order("id desc")
|
||||
@all_history_count = @history_attendances.size
|
||||
@history_attendances = paginate @history_attendances.includes(:course_member_attendances)
|
||||
end
|
||||
|
||||
private
|
||||
def find_attendance
|
||||
@attendance = CourseAttendance.find params[:id]
|
||||
@course = @attendance.course
|
||||
end
|
||||
end
|
@ -0,0 +1,18 @@
|
||||
json.attendances @attendances do |attendance|
|
||||
json.(attendance, :id, :name, :normal_count, :all_count, :mode)
|
||||
json.author do
|
||||
user = attendance.user
|
||||
json.user_name user.real_name
|
||||
json.user_login user.login
|
||||
end
|
||||
json.attendance_date attendance.attendance_date.strftime("%Y-%m-%d")
|
||||
json.start_time attendance.start_time.strftime("%H:%M")
|
||||
json.end_time attendance.end_time.strftime("%H:%M")
|
||||
json.edit_auth @user_course_identity < Course::PROFESSOR || attendance.user_id == User.current.id
|
||||
|
||||
if @user_course_identity < Course::PROFESSOR == Course::STUDENT
|
||||
json.attendance_status student_attendance_status(attendance, User.current)
|
||||
end
|
||||
end
|
||||
|
||||
json.attendances_count @attendances_count
|
Loading…
Reference in new issue