diff --git a/app/controllers/attendances_controller.rb b/app/controllers/attendances_controller.rb index 17eeab1d6..e920eaa8a 100644 --- a/app/controllers/attendances_controller.rb +++ b/app/controllers/attendances_controller.rb @@ -11,6 +11,16 @@ class AttendancesController < ApplicationController if params[:history] @attendances = @course.course_attendances.where("attendance_date < '#{current_date}' or (attendance_date = '#{current_date}' and end_time < '#{current_end_time}')") + if @user_course_identity == Course::STUDENT + member = @course.students.find_by(user_id: current_user.id) + group_ids = [member&.course_group_id.to_i, 0] + @attendances = @attendances.joins(:course_attendance_groups).where(course_attendance_groups: {course_group_id: group_ids}) + + attendance_ids = @attendances.pluck(:id) + @normal_count = @course.course_member_attendances.where(course_member_id: member&.id, course_attendance_id: attendance_ids, attendance_status: "NORMAL").size + @leave_count = @course.course_member_attendances.where(course_member_id: member&.id, course_attendance_id: attendance_ids, attendance_status: "LEAVE").size + @absence_count = @course.course_member_attendances.where(course_member_id: member&.id, course_attendance_id: attendance_ids, attendance_status: "ABSENCE").size + end else @attendances = @course.course_attendances.where("attendance_date > '#{current_date}' or (attendance_date = '#{current_date}' and end_time > '#{current_end_time}')") @@ -21,6 +31,10 @@ class AttendancesController < ApplicationController @attendances = paginate @attendances.includes(:user, :course_member_attendances) end + def statistics + + end + def history_attendances current_date = Date.current current_end_time = Time.current.strftime("%H:%M:%S") diff --git a/app/views/attendances/index.json.jbuilder b/app/views/attendances/index.json.jbuilder index 76febf51e..8a4dd2bb1 100644 --- a/app/views/attendances/index.json.jbuilder +++ b/app/views/attendances/index.json.jbuilder @@ -10,9 +10,15 @@ json.attendances @attendances do |attendance| 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 + if @user_course_identity == Course::STUDENT json.attendance_status student_attendance_status(attendance, User.current) end end -json.attendances_count @attendances_count \ No newline at end of file +json.attendances_count @attendances_count + +if @user_course_identity == Course::STUDENT + json.normal_count @normal_count + json.leave_count @leave_count + json.absence_count @absence_count +end \ No newline at end of file