ali 3 年 前
親
コミット
893d4ec6e5

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

@@ -55,6 +55,7 @@ export default class SessionAPI extends APIRepository {
       request: this.APIAdresses.base,
       data: this.getNormalizedSendData({
         title: null, // String
+        classroom: null, // Number
         unit: null // Number
       }, data),
       resolveCallback: (response) => {

+ 24 - 0
src/pages/Admin/Classroom/show.vue

@@ -59,6 +59,7 @@
       <q-tab-panel name="educations"
                    class="q-pa-none">
         <entity-index v-if="mounted"
+                      ref="sessionList"
                       v-model:value="sessionListInputs"
                       title="لیست جلسات"
                       :api="sessionListApi"
@@ -67,6 +68,14 @@
                       :show-search-button="false"
                       :show-reload-button="false"
                       :show-expand-button="false">
+          <template #toolbar>
+            <q-btn color="primary"
+                   outline
+                   :loading="addNewSessionLoading"
+                   @click="addNewSession">
+              افزودن جلسه
+            </q-btn>
+          </template>
           <template v-slot:entity-index-table-cell="{inputData, showConfirmRemoveDialog}">
             <template v-if="inputData.col.name === 'actions'">
               <div class="action-column-entity-index">
@@ -219,6 +228,7 @@ export default {
     const classroomId = this.$route.params.id
     return {
       mounted: false,
+      addNewSessionLoading: false,
       createInvoiceLoading: false,
       classroomEntityEditKey: Date.now(),
       tab: 'classroomInfo',
@@ -571,6 +581,20 @@ export default {
       })
   },
   methods: {
+    addNewSession () {
+      this.addNewSessionLoading = true
+      APIGateway.session.create({
+        title: '-',
+        classroom: this.$route.params.id
+      })
+        .then(() => {
+          this.$refs.sessionList.search()
+          this.addNewSessionLoading = false
+        })
+        .catch(() => {
+          this.addNewSessionLoading = false
+        })
+    },
     setMembersListActionBtn () {
       FormBuilderAssist.setAttributeByName(this.membersListInputs, 'btn', 'atClick', this.searchMembersList)
     },

+ 2 - 2
src/pages/Admin/Session/show.vue

@@ -52,8 +52,8 @@ export default {
       inputs: [
         { type: 'input', name: 'title', responseKey: 'title', label: 'نام جلسه', placeholder: ' ', col: 'col-md-9 col-12' },
         { type: 'separator', name: 'space', size: '0', col: 'col-12' },
-        { type: 'dateTime', name: 'ending_enrollment_period', responseKey: 'ending_enrollment_period', label: 'زمان شروع جلسه', placeholder: ' ', col: 'col-md-6 col-12' },
-        { type: 'dateTime', name: 'ending_enrollment_period', responseKey: 'ending_enrollment_period', label: 'زمان پایان جلسه', placeholder: ' ', col: 'col-md-6 col-12' },
+        { type: 'dateTime', name: 'beginning_time', responseKey: 'ending_enrollment_period', label: 'زمان شروع جلسه', placeholder: ' ', col: 'col-md-6 col-12' },
+        { type: 'dateTime', name: 'ending_time', responseKey: 'ending_enrollment_period', label: 'زمان پایان جلسه', placeholder: ' ', col: 'col-md-6 col-12' },
         { type: 'inputEditor', name: 'description', responseKey: 'description', label: 'توضیحات', placeholder: ' ', col: 'col-md-6 col-12' },
         { type: 'inputEditor', name: 'syllabus', responseKey: 'syllabus', label: 'مقرری', placeholder: ' ', col: 'col-md-6 col-12' },
         { type: ContentsSelectorComp, name: 'contents', responseKey: 'contents_info', col: 'col-12' },