ali 3 anos atrás
pai
commit
2e1d1de6c6

+ 35 - 1
src/api/models/Project.js

@@ -7,6 +7,7 @@ export default class ProjectAPI extends APIRepository {
     super('project', appApi, '/lma/projects', Project)
     this.APIAdresses = {
       base: '/lma/projects',
+      attendanceSheetsList: '/lma/projects/attendance_sheets',
       byId: (id) => '/lma/projects/' + id,
       attendanceSheets: (id) => '/lma/projects/' + id + '/attendance_sheets'
     }
@@ -16,7 +17,7 @@ export default class ProjectAPI extends APIRepository {
     }
   }
 
-  index(data) {
+  index (data) {
     return this.sendRequest({
       apiMethod: 'get',
       api: this.api,
@@ -49,6 +50,39 @@ export default class ProjectAPI extends APIRepository {
     })
   }
 
+  attendanceSheetsList (data) {
+    return this.sendRequest({
+      apiMethod: 'get',
+      api: this.api,
+      request: this.APIAdresses.attendanceSheetsList,
+      data: this.getNormalizedSendData({
+        category: null, // Number
+        per_page: 10, // Number
+        page: 1 // Number
+      }, data),
+      resolveCallback: (response) => {
+        const paginate = response.data
+        const results = response.data.results
+        delete paginate.results
+        return {
+          list: new ProjectList(results),
+          paginate
+          // {
+          //   "count": 1,
+          //   "num_pages": 1,
+          //   "per_page": 10,
+          //   "current": 1,
+          //   "next": null,
+          //   "previous": null,
+          // }
+        }
+      },
+      rejectCallback: (error) => {
+        return error
+      }
+    })
+  }
+
   create (data) {
     return this.sendRequest({
       apiMethod: 'post',

+ 4 - 1
src/models/SessionAttendanceSheets.js

@@ -11,7 +11,10 @@ class SessionAttendanceSheets extends Model {
       { key: 'answer_info' },
       { key: 'session' },
       { key: 'assignment_status' },
-      { key: 'attendance_status' },
+      {
+        key: 'attendance_status',
+        default: 'NOT_SENT'
+      },
       { key: 'is_listen_part1' },
       { key: 'is_listen_part2' },
       { key: 'is_present_read_part1' },

+ 10 - 3
src/pages/User/Profile/classroomInfo.vue

@@ -180,7 +180,7 @@ export default {
       sessionsInputs: [
         { type: 'hidden', name: 'classroom', value: classroomId }
       ],
-      api: APIGateway.classroom.APIAdresses.get(classroomId),
+      api: APIGateway.classroom.get(classroomId),
       sessionsApi: APIGateway.session.APIAdresses.attendanceSheets,
       classroom: new Classroom(),
       table: {
@@ -271,14 +271,14 @@ export default {
             required: true,
             label: 'وضعیت تکلیف',
             align: 'left',
-            field: row => (new SessionAttendanceSheets(row.current_user_attendance_sheet)).assignment_status_info.label
+            field: row => (new SessionAttendanceSheets(this.getCurrentUserAttendanceSheet(row))).assignment_status_info.label
           },
           {
             name: 'attendance_status',
             required: true,
             label: 'وضعیت حضور و غیاب',
             align: 'left',
-            field: row => (new SessionAttendanceSheets(row.current_user_attendance_sheet)).attendance_status_info.label
+            field: row => (new SessionAttendanceSheets(this.getCurrentUserAttendanceSheet(row))).attendance_status_info.label
           },
           {
             name: 'action',
@@ -386,6 +386,13 @@ export default {
     this.mounted = true
   },
   methods: {
+    getCurrentUserAttendanceSheet (session) {
+      if (!session?.session_attendance_sheets || session.session_attendance_sheets.length === 0) {
+        return null
+      }
+
+      return session.session_attendance_sheets[0]
+    },
     goToLiveStreamUrl () {
       window.open(this.classroom.live_streaming_url, '_blank')
     },