SessionAttendanceSheets.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. import { Model, Collection } from 'js-abstract-model'
  2. class SessionAttendanceSheets extends Model {
  3. constructor (data) {
  4. super(data, [
  5. { key: 'id' },
  6. { key: 'is_answer_verified' },
  7. { key: 'answer_status' },
  8. { key: 'answer_text' },
  9. { key: 'answer_attachment' },
  10. { key: 'answer_info' },
  11. { key: 'session' },
  12. {
  13. key: 'session_attendance_sheets',
  14. default: []
  15. },
  16. { key: 'assignment_status' },
  17. { key: 'attendance_status' },
  18. { key: 'is_listen_part1' },
  19. { key: 'is_listen_part2' },
  20. { key: 'is_present_read_part1' },
  21. { key: 'is_present_read_part2' },
  22. { key: 'is_read_part1' },
  23. { key: 'is_read_part2' },
  24. { key: 'is_present_listen_part1' },
  25. { key: 'is_present_listen_part2' },
  26. { key: 'is_enabled_answering' },
  27. { key: 'is_enabled_changing_attendance_status' },
  28. { key: 'owner' },
  29. { key: 'owner_info' },
  30. { key: 'creator' },
  31. { key: 'creator_info' },
  32. { key: 'session' },
  33. { key: 'session_info' },
  34. { key: 'assignment_status' },
  35. { key: 'creation_time' },
  36. { key: 'attendance_score' }
  37. ], {
  38. status: {
  39. infoKey: 'is_answer_verified_info',
  40. enumListKey: 'is_answer_verifiedEnums',
  41. enums: [
  42. {
  43. label: 'تایید شده',
  44. value: true
  45. },
  46. {
  47. label: 'تایید نشده',
  48. value: false
  49. },
  50. {
  51. label: '-',
  52. value: null
  53. }
  54. ]
  55. },
  56. type: {
  57. infoKey: 'answer_status_info',
  58. enumListKey: 'answer_statusEnums',
  59. enums: [
  60. {
  61. label: 'ارسال نشده',
  62. value: 'NOT_SENT'
  63. },
  64. {
  65. label: 'ارسال شده',
  66. value: 'SENT'
  67. },
  68. {
  69. label: 'بررسی شده',
  70. value: 'REVIEWED'
  71. }
  72. ]
  73. },
  74. assignment_status: {
  75. infoKey: 'assignment_status_info',
  76. enumListKey: 'assignment_statusEnums',
  77. enums: [
  78. {
  79. label: 'ارسال نشده',
  80. value: 'NOT_SENT'
  81. },
  82. {
  83. label: 'ارسال شده',
  84. value: 'SENT'
  85. },
  86. {
  87. label: 'انجام شده',
  88. value: 'VERIFIED'
  89. },
  90. {
  91. label: 'انجام نشده',
  92. value: 'NOT_VERIFIED'
  93. }
  94. ]
  95. },
  96. attendance_status: {
  97. infoKey: 'attendance_status_info',
  98. enumListKey: 'attendance_statusEnums',
  99. enums: [
  100. {
  101. label: 'ارسال نشده',
  102. value: 'NOT_SENT'
  103. },
  104. {
  105. label: 'ارسال شده',
  106. value: 'SENT'
  107. },
  108. {
  109. label: 'غایب',
  110. value: 'ABSENT'
  111. },
  112. {
  113. label: 'قسمت اول',
  114. value: 'PART1'
  115. },
  116. {
  117. label: 'قسمت دوم',
  118. value: 'PART2'
  119. },
  120. {
  121. label: 'حاضر',
  122. value: 'PRESENT'
  123. }
  124. ]
  125. }
  126. })
  127. }
  128. getLabel () {
  129. if (this.is_listen_part1 && this.is_listen_part2 && this.is_present_read_part1 && this.is_present_read_part2) {
  130. return 'حاضر'
  131. } else if (this.is_listen_part1 && this.is_listen_part2 && this.is_present_read_part1 && !this.is_present_read_part2) {
  132. return 'حاضر'
  133. } else if (this.is_listen_part1 && this.is_listen_part2 && !this.is_present_read_part1 && !this.is_present_read_part2) {
  134. return 'حاضر'
  135. } else if (this.is_listen_part1 && !this.is_listen_part2 && !this.is_present_read_part1 && !this.is_present_read_part2) {
  136. return 'حاضر'
  137. } else if (this.is_listen_part1) {
  138. return 'قسمت اول'
  139. } else if (this.is_listen_part2) {
  140. return 'قسمت دوم'
  141. } else if (this.is_present_read_part1) {
  142. return 'قسمت اول'
  143. } else if (this.is_present_read_part2) {
  144. return 'قسمت اول'
  145. } else {
  146. return 'غایب'
  147. }
  148. }
  149. }
  150. class SessionAttendanceSheetsList extends Collection {
  151. model () {
  152. return SessionAttendanceSheets
  153. }
  154. }
  155. export { SessionAttendanceSheets, SessionAttendanceSheetsList }