diff --git a/app/controllers/weapps/course_member_attendances_controller.rb b/app/controllers/weapps/course_member_attendances_controller.rb index 254a89b1d..3dde09dbe 100644 --- a/app/controllers/weapps/course_member_attendances_controller.rb +++ b/app/controllers/weapps/course_member_attendances_controller.rb @@ -4,30 +4,36 @@ class Weapps::CourseMemberAttendancesController < ApplicationController def index attendance = CourseAttendance.find params[:attendance_id] - if attendance.course_attendance_groups.first&.course_group_id.to_i == 0 - @members = attendance.course.students - else - @members = attendance.course.students.where(course_group_id: attendance.course_attendance_groups.pluck(:course_group_id)) - end - @member_attendances = attendance.course_member_attendances - if params[:group_ids].present? - @members = @members.where(course_group_id: params[:group_ids]) - end @page = params[:page] || 1 @limit = params[:limit] || 5 - if params[:attendance_status].present? - @members = @members.joins(:course_member_attendances).where(course_member_attendances: {course_attendance_id: attendance.id, attendance_status: params[:attendance_status]}) + @member_attendances = attendance.course_member_attendances + if params[:group_ids].present? + @member_attendances = @member_attendances.joins(:course_member).where(course_members: {course_group_id: params[:group_ids]}) end + @member_attendances = @member_attendances.where(attendance_status: params[:attendance_status]) if params[:attendance_status].present? + @member_attendances = @member_attendances.order("attendance_status=1 desc, course_member_attendances.updated_at desc") + @members_count = @member_attendances.uniq.count + @member_attendances = paginate @member_attendances.preload(user: :user_extension) - @members = @members.joins(:course_member_attendances).order("attendance_status=1 desc, course_member_attendances.updated_at desc") - @members_count = @members.uniq.count - @members = paginate @members.preload(user: :user_extension).uniq - - # @member_attendances = @member_attendances.where(attendance_status: params[:attendance_status]) if params[:attendance_status].present? - # @member_attendances = @member_attendances.joins(user: :user_extension).order("attendance_status=1 desc, course_member_attendances.updated_at desc, user_extensions.student_id asc") - # @member_attendances = paginate @member_attendances.preload(user: :user_extension) + # if attendance.course_attendance_groups.first&.course_group_id.to_i == 0 + # @members = attendance.course.students + # else + # @members = attendance.course.students.where(course_group_id: attendance.course_attendance_groups.pluck(:course_group_id)) + # end + # @member_attendances = attendance.course_member_attendances + # if params[:group_ids].present? + # @members = @members.where(course_group_id: params[:group_ids]) + # end + # + # if params[:attendance_status].present? + # @members = @members.joins(:course_member_attendances).where(course_member_attendances: {course_attendance_id: attendance.id, attendance_status: params[:attendance_status]}) + # end + # + # @members = @members.joins(:course_member_attendances).order("attendance_status=1 desc, course_member_attendances.updated_at desc") + # @members_count = @members.uniq.count + # @members = paginate @members.preload(user: :user_extension).uniq end def create diff --git a/app/views/weapps/course_member_attendances/index.json.jbuilder b/app/views/weapps/course_member_attendances/index.json.jbuilder index 765de5833..43ce6ed44 100644 --- a/app/views/weapps/course_member_attendances/index.json.jbuilder +++ b/app/views/weapps/course_member_attendances/index.json.jbuilder @@ -1,15 +1,16 @@ -# json.member_attendances @member_attendances.each do |member| -# json.(member, :user_id, :attendance_status) -# json.user_name member.user&.real_name -# json.student_id member.user&.student_id -# end - -json.member_attendances @members.each_with_index.to_a do |member, index| - json.(member, :user_id) +json.member_attendances @member_attendances.each_with_index.to_a do |member, index| + json.(member, :user_id, :attendance_status) json.index (@page.to_i - 1) * @limit.to_i + index + 1 json.user_name member.user&.real_name json.student_id member.user&.student_id - json.attendance_status @member_attendances.select{|attendance| attendance.course_member_id == member.id}.first&.attendance_status || "ABSENCE" end +# json.member_attendances @members.each_with_index.to_a do |member, index| +# json.(member, :user_id) +# json.index (@page.to_i - 1) * @limit.to_i + index + 1 +# json.user_name member.user&.real_name +# json.student_id member.user&.student_id +# json.attendance_status @member_attendances.select{|attendance| attendance.course_member_id == member.id}.first&.attendance_status || "ABSENCE" +# end + json.members_count @members_count \ No newline at end of file