Browse Source

pages parameters

Vincent GUFFON 3 years ago
parent
commit
78831d57fb

+ 20 - 0
models/Organization/Parameters.ts

@@ -0,0 +1,20 @@
+import {Str, Model, Uid} from '@vuex-orm/core'
+
+export class Parameters extends Model {
+  static entity = 'parameters'
+
+  @Uid()
+  id!: number | string | null
+
+  @Str(null, { nullable: true })
+  financialDate!: string|null
+
+  @Str(null, { nullable: true })
+  musicalDate!: string|null
+
+  @Str(null, { nullable: true })
+  startCourseDate!: string|null
+
+  @Str(null, { nullable: true })
+  endCourseDate!: string|null
+}

+ 12 - 15
pages/organization.vue

@@ -1,7 +1,7 @@
 <!-- Page de détails de l'organization courante -->
 
 <template>
-  <LayoutContainer>
+  <LayoutContainer v-if="!fetchState.pending">
     <!-- Définit le contenu des trois slots du header de la page -->
     <LayoutBannerTop>
       <template #block1>
@@ -21,9 +21,8 @@
 </template>
 
 <script lang="ts">
-import { computed, defineComponent, useContext, ComputedRef } from '@nuxtjs/composition-api'
+import {computed, defineComponent, useContext, ComputedRef} from '@nuxtjs/composition-api'
 import { Item, Query } from '@vuex-orm/core'
-import { QUERY_TYPE } from '~/types/enums'
 import { Organization } from '~/models/Organization/Organization'
 import { queryHelper } from '~/services/store/query'
 import { repositoryHelper } from '~/services/store/repository'
@@ -37,6 +36,7 @@ import {NetworkOrganization} from "~/models/Network/NetworkOrganization";
 import {AddressPostal} from "~/models/Core/AddressPostal";
 import {OrganizationArticle} from "~/models/Organization/OrganizationArticle";
 import {File} from "~/models/Core/File"
+import {useDataUtils} from "~/composables/data/useDataUtils";
 
 export default defineComponent({
   name: 'Organization',
@@ -45,25 +45,23 @@ export default defineComponent({
       return redirect('/error')
   },
   setup () {
-    const { store } = useContext()
+    const {store, $dataProvider} = useContext()
+    const {getItemToEdit} = useDataUtils($dataProvider)
+    const id = store.state.profile.organization.id
+
+    const {fetchState} = getItemToEdit(id, Organization)
 
     const repository = repositoryHelper.getRepository(Organization)
     const query: ComputedRef<Query> = computed(() => repository.query())
     const entry: ComputedRef<Item> = computed(() => {
-      return queryHelper.getItem(query.value, store.state.profile.organization.id)
+      return queryHelper.getItem(query.value, id)
     })
 
     return {
-      entry
+      entry,
+      fetchState
     }
   },
-  async asyncData ({ store, $dataProvider }) {
-    await $dataProvider.invoke({
-      type: QUERY_TYPE.MODEL,
-      model: Organization,
-      id: store.state.profile.organization.id
-    })
-  },
   beforeDestroy() {
     repositoryHelper.cleanRepository(Organization)
     repositoryHelper.cleanRepository(ContactPoint)
@@ -75,8 +73,7 @@ export default defineComponent({
     repositoryHelper.cleanRepository(Network)
     repositoryHelper.cleanRepository(NetworkOrganization)
     repositoryHelper.cleanRepository(OrganizationArticle)
-    repositoryHelper.cleanRepository(File)
-  },
+    repositoryHelper.cleanRepository(File)  }
 })
 
 </script>

+ 33 - 0
pages/parameters.vue

@@ -0,0 +1,33 @@
+<!-- Page de détails des parametres -->
+
+<template>
+  <LayoutContainer>
+
+      <v-row justify="center" align="center" class="bannerTopForm mt-5">
+        <v-col cols="12" class="ot_dark_grey ot_white--text">
+          <h4>Paramètres</h4>
+        </v-col>
+      </v-row>
+
+    <!-- Rend le contenu de la page -->
+    <NuxtChild />
+  </LayoutContainer>
+</template>
+
+<script lang="ts">
+import { defineComponent } from '@nuxtjs/composition-api'
+import { repositoryHelper } from '~/services/store/repository'
+import {Parameters} from "~/models/Organization/Parameters";
+
+export default defineComponent({
+  name: 'parameters',
+  layout: 'parameters',
+  setup () {
+    return {}
+  },
+  beforeDestroy() {
+    repositoryHelper.cleanRepository(Parameters)
+  },
+})
+
+</script>

+ 74 - 0
pages/parameters/bills.vue

@@ -0,0 +1,74 @@
+<template>
+  <LayoutContainer v-if="!fetchState.pending">
+    <UiForm :id="id" :model="model" :query="query()">
+      <template #form.input="{entry, updateRepository}">
+        <v-expansion-panels  focusable multiple :value="[0,1]">
+          <!-- Description -->
+          <UiExpansionPanel id="description" icon="fa-info">
+            <v-container fluid class="container">
+              <v-row>
+                <v-col cols="12" sm="6">
+                  <UiInputText field="financialDate" :data="entry['financialDate']" @update="updateRepository" />
+                </v-col>
+              </v-row>
+            </v-container>
+          </UiExpansionPanel>
+
+          <UiExpansionPanel id="salary" icon="fa-users">
+            <v-container class="container">
+              <v-row>
+                <v-col cols="12" sm="6">
+                  <UiInputText field="musicalDate" :data="entry['musicalDate']" @update="updateRepository" />
+                </v-col>
+
+                <v-col cols="12" sm="6">
+                  <UiInputText field="startCourseDate" :data="entry['startCourseDate']" @update="updateRepository" />
+                </v-col>
+
+                <v-col cols="12" sm="6">
+                  <UiInputText field="endCourseDate" :data="entry['endCourseDate']" @update="updateRepository" />
+                </v-col>
+
+              </v-row>
+            </v-container>
+          </UiExpansionPanel>
+        </v-expansion-panels>
+      </template>
+    </UiForm>
+  </LayoutContainer>
+</template>
+
+<script lang="ts">
+import {computed, ComputedRef, defineComponent, useContext} from '@nuxtjs/composition-api'
+import { Organization } from '@/models/Organization/Organization'
+import { repositoryHelper } from '~/services/store/repository'
+import {useDataUtils} from "~/composables/data/useDataUtils";
+import {Parameters} from "~/models/Organization/Parameters";
+import {Query} from "@vuex-orm/core";
+
+export default defineComponent({
+  name: 'parameters',
+  setup () {
+    const {store, $dataProvider} = useContext()
+    const {getItemToEdit} = useDataUtils($dataProvider)
+    const id = store.state.profile.organization.parametersId
+    const {fetchState} = getItemToEdit(id, Parameters)
+
+    const repository = repositoryHelper.getRepository(Parameters)
+    const query: ComputedRef<Query> = computed(() => repository.query())
+
+    return {
+      query: () => query,
+      id,
+      fetchState,
+      model: Organization
+    }
+  }
+})
+</script>
+
+<style scoped>
+.v-icon.v-icon {
+  font-size: 14px;
+}
+</style>

+ 74 - 0
pages/parameters/communication.vue

@@ -0,0 +1,74 @@
+<template>
+  <LayoutContainer v-if="!fetchState.pending">
+    <UiForm :id="id" :model="model" :query="query()">
+      <template #form.input="{entry, updateRepository}">
+        <v-expansion-panels  focusable multiple :value="[0,1]">
+          <!-- Description -->
+          <UiExpansionPanel id="description" icon="fa-info">
+            <v-container fluid class="container">
+              <v-row>
+                <v-col cols="12" sm="6">
+                  <UiInputText field="financialDate" :data="entry['financialDate']" @update="updateRepository" />
+                </v-col>
+              </v-row>
+            </v-container>
+          </UiExpansionPanel>
+
+          <UiExpansionPanel id="salary" icon="fa-users">
+            <v-container class="container">
+              <v-row>
+                <v-col cols="12" sm="6">
+                  <UiInputText field="musicalDate" :data="entry['musicalDate']" @update="updateRepository" />
+                </v-col>
+
+                <v-col cols="12" sm="6">
+                  <UiInputText field="startCourseDate" :data="entry['startCourseDate']" @update="updateRepository" />
+                </v-col>
+
+                <v-col cols="12" sm="6">
+                  <UiInputText field="endCourseDate" :data="entry['endCourseDate']" @update="updateRepository" />
+                </v-col>
+
+              </v-row>
+            </v-container>
+          </UiExpansionPanel>
+        </v-expansion-panels>
+      </template>
+    </UiForm>
+  </LayoutContainer>
+</template>
+
+<script lang="ts">
+import {computed, ComputedRef, defineComponent, useContext} from '@nuxtjs/composition-api'
+import { Organization } from '@/models/Organization/Organization'
+import { repositoryHelper } from '~/services/store/repository'
+import {useDataUtils} from "~/composables/data/useDataUtils";
+import {Parameters} from "~/models/Organization/Parameters";
+import {Query} from "@vuex-orm/core";
+
+export default defineComponent({
+  name: 'parameters',
+  setup () {
+    const {store, $dataProvider} = useContext()
+    const {getItemToEdit} = useDataUtils($dataProvider)
+    const id = store.state.profile.organization.parametersId
+    const {fetchState} = getItemToEdit(id, Parameters)
+
+    const repository = repositoryHelper.getRepository(Parameters)
+    const query: ComputedRef<Query> = computed(() => repository.query())
+
+    return {
+      query: () => query,
+      id,
+      fetchState,
+      model: Organization
+    }
+  }
+})
+</script>
+
+<style scoped>
+.v-icon.v-icon {
+  font-size: 14px;
+}
+</style>

+ 74 - 0
pages/parameters/education.vue

@@ -0,0 +1,74 @@
+<template>
+  <LayoutContainer v-if="!fetchState.pending">
+    <UiForm :id="id" :model="model" :query="query()">
+      <template #form.input="{entry, updateRepository}">
+        <v-expansion-panels  focusable multiple :value="[0,1]">
+          <!-- Description -->
+          <UiExpansionPanel id="description" icon="fa-info">
+            <v-container fluid class="container">
+              <v-row>
+                <v-col cols="12" sm="6">
+                  <UiInputText field="financialDate" :data="entry['financialDate']" @update="updateRepository" />
+                </v-col>
+              </v-row>
+            </v-container>
+          </UiExpansionPanel>
+
+          <UiExpansionPanel id="salary" icon="fa-users">
+            <v-container class="container">
+              <v-row>
+                <v-col cols="12" sm="6">
+                  <UiInputText field="musicalDate" :data="entry['musicalDate']" @update="updateRepository" />
+                </v-col>
+
+                <v-col cols="12" sm="6">
+                  <UiInputText field="startCourseDate" :data="entry['startCourseDate']" @update="updateRepository" />
+                </v-col>
+
+                <v-col cols="12" sm="6">
+                  <UiInputText field="endCourseDate" :data="entry['endCourseDate']" @update="updateRepository" />
+                </v-col>
+
+              </v-row>
+            </v-container>
+          </UiExpansionPanel>
+        </v-expansion-panels>
+      </template>
+    </UiForm>
+  </LayoutContainer>
+</template>
+
+<script lang="ts">
+import {computed, ComputedRef, defineComponent, useContext} from '@nuxtjs/composition-api'
+import { Organization } from '@/models/Organization/Organization'
+import { repositoryHelper } from '~/services/store/repository'
+import {useDataUtils} from "~/composables/data/useDataUtils";
+import {Parameters} from "~/models/Organization/Parameters";
+import {Query} from "@vuex-orm/core";
+
+export default defineComponent({
+  name: 'parameters',
+  setup () {
+    const {store, $dataProvider} = useContext()
+    const {getItemToEdit} = useDataUtils($dataProvider)
+    const id = store.state.profile.organization.parametersId
+    const {fetchState} = getItemToEdit(id, Parameters)
+
+    const repository = repositoryHelper.getRepository(Parameters)
+    const query: ComputedRef<Query> = computed(() => repository.query())
+
+    return {
+      query: () => query,
+      id,
+      fetchState,
+      model: Organization
+    }
+  }
+})
+</script>
+
+<style scoped>
+.v-icon.v-icon {
+  font-size: 14px;
+}
+</style>

+ 74 - 0
pages/parameters/index.vue

@@ -0,0 +1,74 @@
+<template>
+      <LayoutContainer v-if="!fetchState.pending">
+        <UiForm :id="id" :model="model" :query="query()">
+          <template #form.input="{entry, updateRepository}">
+            <v-expansion-panels  focusable multiple :value="[0,1]">
+              <!-- Description -->
+              <UiExpansionPanel id="description" icon="fa-info">
+                <v-container fluid class="container">
+                  <v-row>
+                    <v-col cols="12" sm="6">
+                      <UiInputText field="financialDate" :data="entry['financialDate']" @update="updateRepository" />
+                    </v-col>
+                  </v-row>
+                </v-container>
+              </UiExpansionPanel>
+
+              <UiExpansionPanel id="salary" icon="fa-users">
+                <v-container class="container">
+                  <v-row>
+                    <v-col cols="12" sm="6">
+                      <UiInputText field="musicalDate" :data="entry['musicalDate']" @update="updateRepository" />
+                    </v-col>
+
+                    <v-col cols="12" sm="6">
+                      <UiInputText field="startCourseDate" :data="entry['startCourseDate']" @update="updateRepository" />
+                    </v-col>
+
+                    <v-col cols="12" sm="6">
+                      <UiInputText field="endCourseDate" :data="entry['endCourseDate']" @update="updateRepository" />
+                    </v-col>
+
+                  </v-row>
+                </v-container>
+              </UiExpansionPanel>
+            </v-expansion-panels>
+          </template>
+        </UiForm>
+      </LayoutContainer>
+</template>
+
+<script lang="ts">
+import {computed, ComputedRef, defineComponent, useContext} from '@nuxtjs/composition-api'
+import { Organization } from '@/models/Organization/Organization'
+import { repositoryHelper } from '~/services/store/repository'
+import {useDataUtils} from "~/composables/data/useDataUtils";
+import {Parameters} from "~/models/Organization/Parameters";
+import {Query} from "@vuex-orm/core";
+
+export default defineComponent({
+  name: 'parameters',
+  setup () {
+    const {store, $dataProvider} = useContext()
+    const {getItemToEdit} = useDataUtils($dataProvider)
+    const id = store.state.profile.organization.parametersId
+    const {fetchState} = getItemToEdit(id, Parameters)
+
+    const repository = repositoryHelper.getRepository(Parameters)
+    const query: ComputedRef<Query> = computed(() => repository.query())
+
+    return {
+      query: () => query,
+      id,
+      fetchState,
+      model: Organization
+    }
+  }
+})
+</script>
+
+<style scoped>
+.v-icon.v-icon {
+  font-size: 14px;
+}
+</style>

+ 74 - 0
pages/parameters/secure.vue

@@ -0,0 +1,74 @@
+<template>
+  <LayoutContainer v-if="!fetchState.pending">
+    <UiForm :id="id" :model="model" :query="query()">
+      <template #form.input="{entry, updateRepository}">
+        <v-expansion-panels  focusable multiple :value="[0,1]">
+          <!-- Description -->
+          <UiExpansionPanel id="description" icon="fa-info">
+            <v-container fluid class="container">
+              <v-row>
+                <v-col cols="12" sm="6">
+                  <UiInputText field="financialDate" :data="entry['financialDate']" @update="updateRepository" />
+                </v-col>
+              </v-row>
+            </v-container>
+          </UiExpansionPanel>
+
+          <UiExpansionPanel id="salary" icon="fa-users">
+            <v-container class="container">
+              <v-row>
+                <v-col cols="12" sm="6">
+                  <UiInputText field="musicalDate" :data="entry['musicalDate']" @update="updateRepository" />
+                </v-col>
+
+                <v-col cols="12" sm="6">
+                  <UiInputText field="startCourseDate" :data="entry['startCourseDate']" @update="updateRepository" />
+                </v-col>
+
+                <v-col cols="12" sm="6">
+                  <UiInputText field="endCourseDate" :data="entry['endCourseDate']" @update="updateRepository" />
+                </v-col>
+
+              </v-row>
+            </v-container>
+          </UiExpansionPanel>
+        </v-expansion-panels>
+      </template>
+    </UiForm>
+  </LayoutContainer>
+</template>
+
+<script lang="ts">
+import {computed, ComputedRef, defineComponent, useContext} from '@nuxtjs/composition-api'
+import { Organization } from '@/models/Organization/Organization'
+import { repositoryHelper } from '~/services/store/repository'
+import {useDataUtils} from "~/composables/data/useDataUtils";
+import {Parameters} from "~/models/Organization/Parameters";
+import {Query} from "@vuex-orm/core";
+
+export default defineComponent({
+  name: 'parameters',
+  setup () {
+    const {store, $dataProvider} = useContext()
+    const {getItemToEdit} = useDataUtils($dataProvider)
+    const id = store.state.profile.organization.parametersId
+    const {fetchState} = getItemToEdit(id, Parameters)
+
+    const repository = repositoryHelper.getRepository(Parameters)
+    const query: ComputedRef<Query> = computed(() => repository.query())
+
+    return {
+      query: () => query,
+      id,
+      fetchState,
+      model: Organization
+    }
+  }
+})
+</script>
+
+<style scoped>
+.v-icon.v-icon {
+  font-size: 14px;
+}
+</style>

+ 74 - 0
pages/parameters/student.vue

@@ -0,0 +1,74 @@
+<template>
+  <LayoutContainer v-if="!fetchState.pending">
+    <UiForm :id="id" :model="model" :query="query()">
+      <template #form.input="{entry, updateRepository}">
+        <v-expansion-panels  focusable multiple :value="[0,1]">
+          <!-- Description -->
+          <UiExpansionPanel id="description" icon="fa-info">
+            <v-container fluid class="container">
+              <v-row>
+                <v-col cols="12" sm="6">
+                  <UiInputText field="financialDate" :data="entry['financialDate']" @update="updateRepository" />
+                </v-col>
+              </v-row>
+            </v-container>
+          </UiExpansionPanel>
+
+          <UiExpansionPanel id="salary" icon="fa-users">
+            <v-container class="container">
+              <v-row>
+                <v-col cols="12" sm="6">
+                  <UiInputText field="musicalDate" :data="entry['musicalDate']" @update="updateRepository" />
+                </v-col>
+
+                <v-col cols="12" sm="6">
+                  <UiInputText field="startCourseDate" :data="entry['startCourseDate']" @update="updateRepository" />
+                </v-col>
+
+                <v-col cols="12" sm="6">
+                  <UiInputText field="endCourseDate" :data="entry['endCourseDate']" @update="updateRepository" />
+                </v-col>
+
+              </v-row>
+            </v-container>
+          </UiExpansionPanel>
+        </v-expansion-panels>
+      </template>
+    </UiForm>
+  </LayoutContainer>
+</template>
+
+<script lang="ts">
+import {computed, ComputedRef, defineComponent, useContext} from '@nuxtjs/composition-api'
+import { Organization } from '@/models/Organization/Organization'
+import { repositoryHelper } from '~/services/store/repository'
+import {useDataUtils} from "~/composables/data/useDataUtils";
+import {Parameters} from "~/models/Organization/Parameters";
+import {Query} from "@vuex-orm/core";
+
+export default defineComponent({
+  name: 'parameters',
+  setup () {
+    const {store, $dataProvider} = useContext()
+    const {getItemToEdit} = useDataUtils($dataProvider)
+    const id = store.state.profile.organization.parametersId
+    const {fetchState} = getItemToEdit(id, Parameters)
+
+    const repository = repositoryHelper.getRepository(Parameters)
+    const query: ComputedRef<Query> = computed(() => repository.query())
+
+    return {
+      query: () => query,
+      id,
+      fetchState,
+      model: Organization
+    }
+  }
+})
+</script>
+
+<style scoped>
+.v-icon.v-icon {
+  font-size: 14px;
+}
+</style>

+ 5 - 0
store/profile/organization.ts

@@ -3,6 +3,7 @@ import { baseOrganizationState, organizationState } from '~/types/interfaces'
 
 export const state = () => ({
   id: null,
+  parametersId: null,
   name: '',
   product: '',
   currentActivityYear: '',
@@ -19,6 +20,9 @@ export const mutations = {
   setId (state: organizationState, id: number) {
     state.id = id
   },
+  setParametersId (state: organizationState, parametersId: number) {
+    state.parametersId = parametersId
+  },
   setName (state: organizationState, name: string) {
     state.name = name
   },
@@ -57,6 +61,7 @@ export const mutations = {
 export const actions = {
   setProfile (context: any, profile: any) {
     context.commit('setId', profile.id)
+    context.commit('setParametersId', profile.parametersId)
     context.commit('setName', profile.name)
     context.commit('setProduct', profile.product)
     context.commit('setCurrentActivityYear', profile.currentYear)

+ 1 - 0
types/interfaces.d.ts

@@ -141,6 +141,7 @@ interface baseOrganizationState {
 
 interface organizationState extends baseOrganizationState {
   id: number,
+  parametersId: number,
   name: string,
   product?: string,
   currentActivityYear?: number,