소스 검색

fixed #212

ali 3 년 전
부모
커밋
1cf8a42383

+ 2 - 24
src/components/Widgets/Event/AdminEventShow/AdminEventShow.vue

@@ -22,14 +22,8 @@
             narrow-indicator>
       <q-tab name="eventInfo"
              label="مشخصات" />
-      <q-tab name="projects"
-             label="پروژه‌ها" />
-      <q-tab name="movies2"
-             label="آزمون" />
       <q-tab name="members"
              label="اندیشه جویان" />
-      <q-tab name="activity_sheet"
-             label="فعالیت کلاسی" />
       <q-tab name="live_streaming_url"
              label="بخش آنلاین" />
     </q-tabs>
@@ -43,22 +37,10 @@
         <event-info v-model:event="event"
                     :event-id="$route.params.id" />
       </q-tab-panel>
-
-      <q-tab-panel name="projects"
-                   class="q-pa-none">
-        <project-list :event-id="$route.params.id" />
-      </q-tab-panel>
-      <q-tab-panel name="movies2">
-        آزمون
-      </q-tab-panel>
       <q-tab-panel name="members"
                    class="q-pa-none">
         <members-list :event-id="$route.params.id" />
       </q-tab-panel>
-      <q-tab-panel name="activity_sheet"
-                   class="q-pa-none">
-        <activity-sheet-list :event-id="$route.params.id" />
-      </q-tab-panel>
       <q-tab-panel name="live_streaming_url">
         <live-streaming :event="event" />
       </q-tab-panel>
@@ -69,21 +51,17 @@
 <script>
 import { Event } from 'src/models/Event.js'
 import EventInfo from './components/EventInfo.vue'
-import ProjectList from './components/ProjectList.vue'
 import MembersList from './components/MembersList.vue'
 import LiveStreaming from './components/LiveStreaming.vue'
-import ActivitySheetList from './components/ActivitySheetList.vue'
 import Breadcrumbs from 'src/components/Widgets/Breadcrumbs/Breadcrumbs.vue'
 
 export default {
   name: 'Admin.Event.Show',
   components: {
-    ProjectList,
+    EventInfo,
     MembersList,
     Breadcrumbs,
-    EventInfo,
-    LiveStreaming,
-    ActivitySheetList
+    LiveStreaming
   },
   data () {
     return {

+ 0 - 168
src/components/Widgets/Event/AdminEventShow/components/ActivitySheetList.vue

@@ -1,168 +0,0 @@
-<template>
-  <entity-index v-if="mounted"
-                ref="activitySheetList"
-                v-model:value="activitySheetListInputs"
-                title="فعالیت کلاسی"
-                :api="activitySheetListApi"
-                :table="activitySheetListTable"
-                :table-keys="activitySheetListTableKeys"
-                :show-search-button="false"
-                :show-reload-button="false"
-                :show-expand-button="false">
-    <template v-slot:entity-index-table-cell="{inputData, showConfirmRemoveDialog}">
-      <template v-if="inputData.col.name === 'actions'">
-        <div class="action-column-entity-index">
-          <q-btn size="md"
-                 color="primary"
-                 outline
-                 label="سابقه آموزشی"
-                 class="q-mr-md" />
-          <!--                :to="{name: 'Admin.Session.Show', params: {id: inputData.props.row.id}}"-->
-          <delete-btn @click="showConfirmRemoveDialog(inputData.props.row, 'id', getRemoveMessage(inputData.props.row))" />
-        </div>
-      </template>
-      <template v-else>
-        {{ inputData.col.value }}
-      </template>
-    </template>
-  </entity-index>
-  <q-skeleton v-else
-              type="rect"
-              height="200px" />
-</template>
-
-<script>
-import { shallowRef } from 'vue'
-import { EntityIndex } from 'quasar-crud'
-import { APIGateway } from 'src/api/APIGateway.js'
-import { FormBuilderAssist } from 'quasar-form-builder'
-import BtnControl from 'src/components/Control/btn.vue'
-import DeleteBtn from 'src/components/Control/DeleteBtn.vue'
-
-const BtnControlComp = shallowRef(BtnControl)
-
-export default {
-  name: 'ActivitySheetList',
-  components: {
-    DeleteBtn,
-    EntityIndex
-  },
-  props: {
-    eventId: {
-      type: Number,
-      default: null
-    }
-  },
-  data () {
-    const eventId = this.eventId
-    return {
-      mounted: false,
-      createInvoiceLoading: false,
-
-      activitySheetListInputs: [
-        { type: 'hidden', name: 'event', value: eventId },
-        { type: 'select', name: 'status', value: null, label: 'وضعیت', placeholder: ' ', col: 'col-md-3 col-12' },
-        { type: BtnControlComp, name: 'btn', label: 'جستجو', placeholder: ' ', atClick: () => {}, col: 'col-md-2 col-12' }
-      ],
-      activitySheetListApi: APIGateway.event.APIAdresses.activitySheet,
-      activitySheetListTable: {
-        columns: [
-          {
-            name: 'id',
-            required: true,
-            label: 'شماره',
-            align: 'left',
-            field: row => row.id
-          },
-          {
-            name: 'owner_info.fullname',
-            required: true,
-            label: 'نام و نام خانوادگی',
-            align: 'left',
-            field: row => row.owner_info.firstname + ' ' + row.owner_info.lastname
-          },
-          {
-            name: 'owner_info.fullname',
-            required: true,
-            label: 'کد ملی',
-            align: 'left',
-            field: row => row.owner_info.national_code
-          },
-          {
-            name: 'is_project_done',
-            required: true,
-            label: 'پروژه',
-            align: 'left',
-            field: row => row.is_project_done
-          },
-          {
-            name: 'done_assignment_count',
-            required: true,
-            label: 'تکالیف انجام شده',
-            align: 'left',
-            field: row => row.done_assignment_count
-          },
-          {
-            name: 'is_allowed_absence_count',
-            required: true,
-            label: 'حضور و غیاب',
-            align: 'left',
-            field: row => row.is_allowed_absence_count // bool
-          },
-          {
-            name: 'attendance_score',
-            required: true,
-            label: 'نمره حضور و غیاب',
-            align: 'left',
-            field: row => row.attendance_score
-          },
-          {
-            name: 'final_test',
-            required: true,
-            label: 'آزمون',
-            align: 'left',
-            field: row => row.final_test // number - null
-          },
-          {
-            name: 'final_status',
-            required: true,
-            label: 'وضعیت نهایی',
-            align: 'left',
-            field: row => row.final_status
-          },
-          {
-            name: 'actions',
-            required: true,
-            label: 'سابقه آموزشی',
-            align: 'left',
-            field: ''
-          }
-        ],
-        data: []
-      },
-      activitySheetListTableKeys: {
-        data: 'results',
-        total: 'count',
-        currentPage: 'current',
-        perPage: 'per_page',
-        pageKey: 'page'
-      }
-    }
-  },
-  mounted () {
-    this.setActivitySheetListActionBtn()
-    this.mounted = true
-  },
-  methods: {
-    setActivitySheetListActionBtn () {
-      FormBuilderAssist.setAttributeByName(this.activitySheetListInputs, 'btn', 'atClick', this.searchActivitySheetList)
-    },
-    searchActivitySheetList () {
-      this.$refs.activitySheet.search()
-    },
-    getRemoveMessage (row) {
-      return 'آیا از حذف ' + row.title + ' اطمینان دارید؟'
-    }
-  }
-}
-</script>

+ 0 - 176
src/components/Widgets/Event/AdminEventShow/components/ProjectList.vue

@@ -1,176 +0,0 @@
-<template>
-  <entity-index v-if="mounted"
-                ref="projectList"
-                v-model:value="projectListInputs"
-                title="لیست پروژه ها"
-                :api="projectListApi"
-                :table="projectListTable"
-                :table-keys="projectListTableKeys"
-                :show-search-button="false"
-                :show-reload-button="false"
-                :show-expand-button="false">
-    <template #toolbar>
-      <q-btn color="primary"
-             outline
-             :loading="addNewProjectLoading"
-             @click="addNewProject">
-        افزودن پروژه جدید
-      </q-btn>
-    </template>
-    <template v-slot:entity-index-table-cell="{inputData, showConfirmRemoveDialog}">
-      <template v-if="inputData.col.name === 'number'">
-        {{ inputData.rowNumber }}
-      </template>
-      <template v-else-if="inputData.col.name === 'actions'">
-        <div class="action-column-entity-index">
-          <q-btn size="md"
-                 color="primary"
-                 label="جزییات"
-                 :to="{name: 'Admin.Event.Project.Show', params: {event_id: $route.params.id, project_id: inputData.props.row.id}}"
-                 class="q-mr-md" />
-          <delete-btn @click="showConfirmRemoveDialog(inputData.props.row, 'id', getRemoveMessage(inputData.props.row))" />
-        </div>
-      </template>
-      <template v-else-if="inputData.col.name === 'members'">
-        <div class="action-column-entity-index">
-          <q-btn size="md"
-                 color="primary"
-                 outline
-                 label="بررسی پروژه"
-                 :to="{name: 'Admin.Event.Project.Members', params: {event_id: $route.params.id, project_id: inputData.props.row.id}}"
-                 class="q-mr-md" />
-        </div>
-      </template>
-      <template v-else>
-        {{ inputData.col.value }}
-      </template>
-    </template>
-  </entity-index>
-  <q-skeleton v-else
-              type="rect"
-              height="200px" />
-</template>
-
-<script>
-import { EntityIndex } from 'quasar-crud'
-import { Project } from 'src/models/Project.js'
-import ShamsiDate from 'src/assets/ShamsiDate.js'
-import { APIGateway } from 'src/api/APIGateway.js'
-import DeleteBtn from 'src/components/Control/DeleteBtn.vue'
-
-export default {
-  name: 'ProjectList',
-  components: {
-    DeleteBtn,
-    EntityIndex
-  },
-  props: {
-    eventId: {
-      type: Number,
-      default: null
-    }
-  },
-  data () {
-    const eventId = this.eventId
-    return {
-      mounted: false,
-      addNewProjectLoading: false,
-
-      projectListInputs: [
-        { type: 'hidden', name: 'event', value: eventId }
-      ],
-      projectListApi: APIGateway.project.APIAdresses.base,
-      projectListTable: {
-        columns: [
-          {
-            name: 'number',
-            required: true,
-            label: 'شماره',
-            align: 'left',
-            field: () => ''
-          },
-          {
-            name: 'id',
-            required: true,
-            label: 'شناسه',
-            align: 'left',
-            field: row => row.id
-          },
-          {
-            name: 'title',
-            required: true,
-            label: 'عنوان پروژه',
-            align: 'left',
-            field: row => row.title
-          },
-          {
-            name: 'type',
-            required: true,
-            label: 'نوع',
-            align: 'left',
-            field: row => (new Project(row)).type_info.label
-          },
-          {
-            name: 'creation_time',
-            required: true,
-            label: 'زمان شروع پروژه',
-            align: 'left',
-            field: row => row.beginning_doing_period ? ShamsiDate.getDateTime(row.beginning_doing_period) : '-'
-          },
-          {
-            name: 'creation_time',
-            required: true,
-            label: 'مهلت ارسال پروژه',
-            align: 'left',
-            field: row => row.ending_doing_period ? ShamsiDate.getDateTime(row.ending_doing_period) : '-'
-          },
-          {
-            name: 'members',
-            required: true,
-            label: 'بررسی',
-            align: 'left',
-            field: ''
-          },
-          {
-            name: 'actions',
-            required: true,
-            label: 'عملیات',
-            align: 'left',
-            field: ''
-          }
-        ]
-      },
-      projectListTableKeys: {
-        data: 'results',
-        total: 'count',
-        currentPage: 'current',
-        perPage: 'per_page',
-        pageKey: 'page'
-      }
-    }
-  },
-  mounted () {
-    this.mounted = true
-  },
-  methods: {
-    addNewProject () {
-      this.$router.push({ name: 'Admin.Event.Project.Create', params: { event_id: this.eventId } })
-      // this.addNewProjectLoading = true
-      // APIGateway.project.create({
-      //   title: '-',
-      //   event: this.eventId
-      // })
-      //   .then(() => {
-      //     this.$refs.projectList.search()
-      //     this.addNewProjectLoading = false
-      //   })
-      //   .catch(() => {
-      //     this.addNewProjectLoading = false
-      //   })
-    },
-    getRemoveMessage (row) {
-      return 'آیا از حذف ' + row.title + ' اطمینان دارید؟'
-    }
-  }
-}
-</script>

+ 1 - 233
src/pages/User/Profile/EventInfo.vue

@@ -18,12 +18,6 @@
             narrow-indicator>
       <q-tab name="eventInfo"
              label="اطلاعات دوره آموزشی" />
-      <q-tab name="educations"
-             label="جدول آموزشی" />
-      <q-tab name="movies1"
-             label="آزمون" />
-      <q-tab name="projects"
-             label="پروژه" />
       <q-tab v-if="event.live_streaming_url"
              name="live_streaming_url"
              label="بخش آنلاین" />
@@ -38,89 +32,6 @@
                          :options="{ profileMode: true }"
                          @onloadn="onloadnEvent" />
       </q-tab-panel>
-
-      <q-tab-panel name="educations"
-                   class="q-pa-none">
-        <entity-index v-if="mounted"
-                      ref="entityIndex"
-                      v-model:value="sessionsInputs"
-                      title="لیست جلسات"
-                      :api="sessionsApi"
-                      :table="sessionsTable"
-                      :table-keys="sessionsTableKeys"
-                      :table-grid-size="$q.screen.lt.sm"
-                      :show-expand-button="false"
-                      :show-reload-button="false"
-                      :show-search-button="false">
-          <template #entity-index-table-cell="{inputData}">
-            <template v-if="inputData.col.name === 'number'">
-              {{ inputData.rowNumber }}
-            </template>
-            <template v-else-if="inputData.col.name === 'action'">
-              <q-btn size="md"
-                     color="primary"
-                     label="جزییات"
-                     :to="{name: 'UserPanel.Profile.SessionInfo', params: {id: inputData.props.row.id}}" />
-            </template>
-            <template v-else>
-              {{ inputData.col.value }}
-            </template>
-          </template>
-          <template #entity-index-table-item-cell="{inputData}">
-            <entity-index-grid-item :input-data="inputData">
-              <template #col="{col, row}">
-                <template v-if="col.name === 'number'">
-                  {{ inputData.rowNumber }}
-                </template>
-                <template v-else-if="col.name === 'action'">
-                  <q-btn size="md"
-                         color="primary"
-                         label="جزییات"
-                         :to="{name: 'UserPanel.Profile.SessionInfo', params: {id: row.id}}" />
-                </template>
-              </template>
-            </entity-index-grid-item>
-          </template>
-        </entity-index>
-      </q-tab-panel>
-
-      <q-tab-panel name="movies1">
-        آزمون
-      </q-tab-panel>
-      <q-tab-panel name="projects"
-                   class="q-pa-none">
-        <entity-index v-if="mounted"
-                      ref="projectList"
-                      v-model:value="projectListInputs"
-                      title="لیست پروژه ها"
-                      :api="projectListApi"
-                      :table="projectListTable"
-                      :table-keys="projectListTableKeys"
-                      :show-search-button="false"
-                      :show-reload-button="false"
-                      :show-expand-button="false">
-          <template v-slot:entity-index-table-cell="{inputData}">
-            <template v-if="inputData.col.name === 'number'">
-              {{ inputData.rowNumber }}
-            </template>
-            <template v-else-if="inputData.col.name === 'actions'">
-              <div class="action-column-entity-index">
-                <q-btn size="md"
-                       color="primary"
-                       label="جزییات"
-                       :to="{name: 'UserPanel.Profile.Event.Project.Show', params: {event_id: $route.params.id, project_id: inputData.props.row.id}}"
-                       class="q-mr-md" />
-              </div>
-            </template>
-            <template v-else>
-              {{ inputData.col.value }}
-            </template>
-          </template>
-        </entity-index>
-        <q-skeleton v-else
-                    type="rect"
-                    height="200px" />
-      </q-tab-panel>
       <q-tab-panel v-if="event.live_streaming_url"
                    name="live_streaming_url">
         <q-btn class="full-width q-mb-lg"
@@ -148,7 +59,6 @@
 </template>
 
 <script>
-import { EntityIndex } from 'quasar-crud'
 import { Event } from 'src/models/Event.js'
 import Enums from 'src/assets/Enums/Enums.js'
 import { Invoice } from 'src/models/Invoice.js'
@@ -156,7 +66,6 @@ import { mixinAuth } from 'src/mixin/Mixins.js'
 import ShamsiDate from 'src/assets/ShamsiDate.js'
 import { APIGateway } from 'src/api/APIGateway.js'
 import { FormBuilderAssist } from 'quasar-form-builder'
-import EntityIndexGridItem from 'src/components/EntityIndexGridItem.vue'
 import Breadcrumbs from 'src/components/Widgets/Breadcrumbs/Breadcrumbs.vue'
 import { ProjectAttendanceSheets } from 'src/models/ProjectAttendanceSheets.js'
 import { SessionAttendanceSheets } from 'src/models/SessionAttendanceSheets.js'
@@ -165,24 +74,17 @@ import ShowEventInfo from 'src/components/Widgets/Event/ShowEventInfo/ShowEventI
 export default {
   name: 'UserPanel.Profile.EventInfo',
   components: {
-    EntityIndex,
     Breadcrumbs,
-    ShowEventInfo,
-    EntityIndexGridItem
+    ShowEventInfo
   },
   mixins: [mixinAuth],
   data () {
     const eventId = this.$route.params.id
-    // const userId = this.$store.getters['Auth/user'].id
     return {
       mounted: false,
       tab: 'eventInfo',
       inputs: [],
-      sessionsInputs: [
-        { type: 'hidden', name: 'event', value: eventId }
-      ],
       api: APIGateway.event.get(eventId),
-      sessionsApi: APIGateway.session.APIAdresses.attendanceSheets,
       event: new Event(),
       table: {
         columns: [
@@ -230,146 +132,12 @@ export default {
           }
         ]
       },
-      sessionsTable: {
-        columns: [
-          {
-            name: 'number',
-            required: true,
-            label: 'شماره',
-            align: 'left',
-            field: () => ''
-          },
-          {
-            name: 'id',
-            required: true,
-            label: 'شناسه',
-            align: 'left',
-            field: row => row.id
-          },
-          {
-            name: 'title',
-            required: true,
-            label: 'عنوان',
-            align: 'left',
-            field: row => row.title
-          },
-          {
-            name: 'title',
-            required: true,
-            label: 'زمان شروع',
-            align: 'left',
-            field: row => row.beginning_time ? ShamsiDate.getDateTime(row.beginning_time) : '-'
-          },
-          {
-            name: 'title',
-            required: true,
-            label: 'زمان پایان',
-            align: 'left',
-            field: row => row.ending_time ? ShamsiDate.getDateTime(row.ending_time) : '-'
-          },
-          {
-            name: 'assignment_status',
-            required: true,
-            label: 'وضعیت تکلیف',
-            align: 'left',
-            field: row => (new SessionAttendanceSheets(this.getCurrentUserAttendanceSheet(row))).assignment_status_info.label
-          },
-          {
-            name: 'attendance_status',
-            required: true,
-            label: 'وضعیت حضور و غیاب',
-            align: 'left',
-            field: row => (new SessionAttendanceSheets(this.getCurrentUserAttendanceSheet(row))).attendance_status_info.label
-          },
-          {
-            name: 'action',
-            required: true,
-            label: 'جزییات',
-            align: 'left',
-            field: ''
-          }
-        ]
-      },
-      sessionsTableKeys: {
-        data: 'results',
-        total: 'count',
-        currentPage: 'current',
-        perPage: 'per_page',
-        pageKey: 'page'
-      },
       tableKeys: {
         data: 'results',
         total: 'count',
         currentPage: 'current',
         perPage: 'per_page',
         pageKey: 'page'
-      },
-
-      projectListInputs: [
-        { type: 'hidden', name: 'event', value: eventId }
-        // { type: 'hidden', name: 'owner', value: userId }
-      ],
-      // projectListApi: APIGateway.projectAttendanceSheets.APIAdresses.base,
-      projectListApi: APIGateway.project.APIAdresses.attendanceSheetsList,
-      projectListTable: {
-        columns: [
-          {
-            name: 'number',
-            required: true,
-            label: 'شماره',
-            align: 'left',
-            field: () => ''
-          },
-          {
-            name: 'id',
-            required: true,
-            label: 'شناسه',
-            align: 'left',
-            field: row => row.id
-          },
-          {
-            name: 'title',
-            required: true,
-            label: 'عنوان پروژه',
-            align: 'left',
-            field: row => row.title
-          },
-          {
-            name: 'creation_time',
-            required: true,
-            label: 'زمان شروع',
-            align: 'left',
-            field: row => row?.beginning_doing_period ? ShamsiDate.getDateTime(row.beginning_doing_period) : '-'
-          },
-          {
-            name: 'creation_time',
-            required: true,
-            label: 'زمان پایان',
-            align: 'left',
-            field: row => row?.ending_doing_period ? ShamsiDate.getDateTime(row.ending_doing_period) : '-'
-          },
-          {
-            name: 'status',
-            required: true,
-            label: 'وضعیت',
-            align: 'left',
-            field: row => (new ProjectAttendanceSheets(this.getProjectAttendanceSheets(row))).answer_status_info.label
-          },
-          {
-            name: 'actions',
-            required: true,
-            label: 'عملیات',
-            align: 'left',
-            field: ''
-          }
-        ]
-      },
-      projectListTableKeys: {
-        data: 'results',
-        total: 'count',
-        currentPage: 'current',
-        perPage: 'per_page',
-        pageKey: 'page'
       }
     }
   },