ali пре 3 година
родитељ
комит
31e2ceed5e

+ 15 - 0
src/api/models/Classroom.js

@@ -9,6 +9,7 @@ export default class ClassroomAPI extends APIRepository {
     this.APIAdresses = {
       base: '/lma/classrooms',
       byId: (id) => '/lma/classrooms/' + id,
+      moreDetails: (id) => '/lma/classrooms/' + id + '/more_details',
       enroll: (id) => '/lma/classrooms/' + id + '/enroll',
       drop: (id) => '/lma/classrooms/' + id + '/drop',
       members: '/lma/registrations',
@@ -69,6 +70,20 @@ export default class ClassroomAPI extends APIRepository {
     })
   }
 
+  moreDetails (id) {
+    return this.sendRequest({
+      apiMethod: 'get',
+      api: this.api,
+      request: this.APIAdresses.moreDetails(id),
+      resolveCallback: (response) => {
+        return new Classroom(response.data)
+      },
+      rejectCallback: (error) => {
+        return error
+      }
+    })
+  }
+
   enrollByUser (id) {
     return this.sendRequest({
       apiMethod: 'put',

+ 1 - 0
src/api/models/Session.js

@@ -7,6 +7,7 @@ export default class SessionAPI extends APIRepository {
     super('Session', appApi, '/lma/categories', Session)
     this.APIAdresses = {
       base: '/lma/sessions',
+      attendanceSheets: '/lma/sessions/attendance_sheets',
       byId: (id) => '/lma/sessions/' + id
     }
     this.CacheList = {

+ 1 - 1
src/components/Widgets/Other/ShowClassroomInfo/ShowClassroomInfo.vue

@@ -401,7 +401,7 @@ export default {
     },
     getClassroom () {
       this.loading = true
-      return APIGateway.classroom.get(this.$route.params.id)
+      return APIGateway.classroom.moreDetails(this.$route.params.id)
     }
   }
 }

+ 7 - 0
src/components/Widgets/SessionAttendanceSheet/AdminSessionAttendanceSheetList/AdminSessionAttendanceSheetList.vue

@@ -110,6 +110,13 @@ export default {
             align: 'left',
             field: row => (new SessionAttendanceSheets(row)).is_answer_verified_info.label
           },
+          {
+            name: 'status',
+            required: true,
+            label: 'حضور و غیاب',
+            align: 'left',
+            field: row => (new SessionAttendanceSheets(row)).is_answer_verified_info.label
+          },
           {
             name: 'action',
             required: true,

+ 50 - 0
src/models/SessionAttendanceSheets.js

@@ -7,6 +7,8 @@ class SessionAttendanceSheets extends Model {
       { key: 'is_answer_verified' },
       { key: 'answer_status' },
       { key: 'session' },
+      { key: 'assignment_status' },
+      { key: 'attendance_status' },
       { key: 'is_listen_part1' },
       { key: 'is_listen_part2' },
       { key: 'is_present_read_part1' },
@@ -47,6 +49,54 @@ class SessionAttendanceSheets extends Model {
             value: 'REVIEWED'
           }
         ]
+      },
+      assignment_status: {
+        infoKey: 'assignment_status_info',
+        enumListKey: 'assignment_statusEnums',
+        enums: [
+          {
+            label: 'ارسال نشده',
+            value: null
+          },
+          {
+            label: 'ارسال شده',
+            value: 'SENT'
+          },
+          {
+            label: 'انجام شده',
+            value: 'VERIFIED'
+          },
+          {
+            label: 'انجام نشده',
+            value: 'NOT_VERIFIED'
+          }
+        ]
+      },
+      attendance_status: {
+        infoKey: 'attendance_status_info',
+        enumListKey: 'attendance_statusEnums',
+        enums: [
+          {
+            label: 'ارسال نشده',
+            value: 'NOT_SENT'
+          },
+          {
+            label: 'غایب',
+            value: 'ABSENT'
+          },
+          {
+            label: 'قسمت اول',
+            value: 'PART1'
+          },
+          {
+            label: 'قسمت دوم',
+            value: 'PART2'
+          },
+          {
+            label: 'حاضر',
+            value: 'PRESENT'
+          }
+        ]
       }
     })
   }

+ 17 - 2
src/pages/User/Profile/classroomInfo.vue

@@ -159,6 +159,7 @@ import EntityIndexGridItem from 'src/components/EntityIndexGridItem.vue'
 import Breadcrumbs from 'src/components/Widgets/Breadcrumbs/Breadcrumbs.vue'
 import { ProjectAttendanceSheets } from 'src/models/ProjectAttendanceSheets.js'
 import ShowClassroomInfo from 'src/components/Widgets/Other/ShowClassroomInfo/ShowClassroomInfo.vue'
+import { SessionAttendanceSheets } from 'src/models/SessionAttendanceSheets'
 
 export default {
   name: 'UserPanel.Profile.ClassroomInfo',
@@ -179,8 +180,8 @@ export default {
       sessionsInputs: [
         { type: 'hidden', name: 'classroom', value: classroomId }
       ],
-      api: APIGateway.classroom.APIAdresses.byId(classroomId),
-      sessionsApi: APIGateway.session.APIAdresses.base,
+      api: APIGateway.classroom.APIAdresses.moreDetails(classroomId),
+      sessionsApi: APIGateway.session.APIAdresses.attendanceSheets,
       classroom: new Classroom(),
       table: {
         columns: [
@@ -265,6 +266,20 @@ export default {
             align: 'left',
             field: row => row.ending_time ? ShamsiDate.getDateTime(row.ending_time) : '-'
           },
+          {
+            name: 'assignment_status',
+            required: true,
+            label: 'وضعیت تکلیف',
+            align: 'left',
+            field: row => (new SessionAttendanceSheets(row.current_user_attendance_sheet)).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
+          },
           {
             name: 'action',
             required: true,