diff --git a/app/controllers/weapps/attendances_controller.rb b/app/controllers/weapps/attendances_controller.rb index 6d65219f0..2ed1d2b14 100644 --- a/app/controllers/weapps/attendances_controller.rb +++ b/app/controllers/weapps/attendances_controller.rb @@ -14,10 +14,10 @@ class Weapps::AttendancesController < ApplicationController group_ids.each do |group_id| @course.course_attendance_groups.create!(course_group_id: group_id, course_attendance: attendance) end - CreateStudentAttendanceRecordJob.perform_later(attendance.id, group_ids) + CreateStudentAttendanceRecordJob.perform_now(attendance.id, group_ids) else @course.course_attendance_groups.create!(course_group_id: 0, course_attendance: attendance) - CreateStudentAttendanceRecordJob.perform_later(attendance.id, [0]) + CreateStudentAttendanceRecordJob.perform_now(attendance.id, [0]) end render_ok({attendance_id: attendance.id}) end diff --git a/app/controllers/weapps/course_member_attendances_controller.rb b/app/controllers/weapps/course_member_attendances_controller.rb index 0b3044dab..a7d6ee1f9 100644 --- a/app/controllers/weapps/course_member_attendances_controller.rb +++ b/app/controllers/weapps/course_member_attendances_controller.rb @@ -4,13 +4,26 @@ 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? - @member_attendances = @member_attendances.joins(:course_member).where(course_members: {course_group_id: params[:group_ids]}) + @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 - @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) + + @members = @members.joins(:course_member_attendances).order("attendance_status=1 desc, course_member_attendances.updated_at desc") + @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) 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 d6d953af8..30d3e721e 100644 --- a/app/views/weapps/course_member_attendances/index.json.jbuilder +++ b/app/views/weapps/course_member_attendances/index.json.jbuilder @@ -1,5 +1,12 @@ -json.member_attendances @member_attendances.each do |member| - json.(member, :user_id, :attendance_status) +# 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 do |member| + json.(member, :user_id) 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 \ No newline at end of file