admin front doleance add new groupe interet
This commit is contained in:
		@@ -103,6 +103,8 @@ fragment ConcernementFields on Concernement {
 | 
			
		||||
    leprobleme
 | 
			
		||||
    lenquete
 | 
			
		||||
    groupesinterets {
 | 
			
		||||
      id
 | 
			
		||||
      revision_id
 | 
			
		||||
      date {
 | 
			
		||||
        end
 | 
			
		||||
        start
 | 
			
		||||
@@ -119,6 +121,8 @@ fragment ConcernementFields on Concernement {
 | 
			
		||||
    comment_ennonce_doleance
 | 
			
		||||
    aqui_addresse_doleance
 | 
			
		||||
    reception_traitement {
 | 
			
		||||
      id
 | 
			
		||||
      revision_id
 | 
			
		||||
      date {
 | 
			
		||||
        end
 | 
			
		||||
        start
 | 
			
		||||
@@ -135,6 +139,8 @@ fragment ConcernementFields on Concernement {
 | 
			
		||||
    entites_decisionnaires
 | 
			
		||||
    decision_formule
 | 
			
		||||
    mise_en_oeuvre_decision {
 | 
			
		||||
      id
 | 
			
		||||
      revision_id
 | 
			
		||||
      date {
 | 
			
		||||
        end
 | 
			
		||||
        start
 | 
			
		||||
@@ -151,6 +157,8 @@ fragment ConcernementFields on Concernement {
 | 
			
		||||
    aqui_adresse_decision
 | 
			
		||||
    comment_formule_decision
 | 
			
		||||
    receptions_et_applications {
 | 
			
		||||
      id
 | 
			
		||||
      revision_id
 | 
			
		||||
      date {
 | 
			
		||||
        end
 | 
			
		||||
        start
 | 
			
		||||
 
 | 
			
		||||
@@ -1298,9 +1298,13 @@ div.add-ressource-btn{
 | 
			
		||||
  @include add-btn();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
div.add-cerclepo-btn{
 | 
			
		||||
div.add-cerclepo-btn,
 | 
			
		||||
div.add-groupinteret-btn{
 | 
			
		||||
  @include add-btn();
 | 
			
		||||
  margin: 0 0 1em;
 | 
			
		||||
  height: 60px;
 | 
			
		||||
  line-height: 50px;
 | 
			
		||||
  >svg{
 | 
			
		||||
    width:30px; height:30px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -138,6 +138,7 @@ export default {
 | 
			
		||||
        };
 | 
			
		||||
      }(this)), 2000)
 | 
			
		||||
    },
 | 
			
		||||
    // cercle po
 | 
			
		||||
    addCerclePo(e){
 | 
			
		||||
      console.log('add cerclepo');
 | 
			
		||||
      this.reloading_concernements = true;
 | 
			
		||||
@@ -181,6 +182,102 @@ export default {
 | 
			
		||||
          })
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    // groupe interet
 | 
			
		||||
    addgroupInteret(e){
 | 
			
		||||
      console.log('add groupe interet');
 | 
			
		||||
      this.reloading_concernements = true;
 | 
			
		||||
      // 1 create paragraphe
 | 
			
		||||
      this.createGroupinteretParag()
 | 
			
		||||
        .then((parag) => {
 | 
			
		||||
          console.log('createGroupinteretParag then parag', parag);
 | 
			
		||||
          // 3 record on concernement field_entites
 | 
			
		||||
          this.recordCerclepoGroupesinteretsField(parag)
 | 
			
		||||
            .then((cercle_politique) => {
 | 
			
		||||
              console.log('cercle_politique', cercle_politique);
 | 
			
		||||
              // reload concernement doleances
 | 
			
		||||
              this.reloadConcernementCerclePol(this.concernement.id)
 | 
			
		||||
                .then(() => {
 | 
			
		||||
                  this.reloading_concernements = false;
 | 
			
		||||
                });
 | 
			
		||||
            })
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
    createGroupinteretParag(){
 | 
			
		||||
      return new Promise((resolve, reject) => {
 | 
			
		||||
        // 2 create paragraphe
 | 
			
		||||
        const params_parag = {
 | 
			
		||||
          type: [{target_id: 'groupes_interets'}],
 | 
			
		||||
          parent_type:{value: 'node'},
 | 
			
		||||
          parent_id:{value: this.opened_concernement.opened_doleance.id},
 | 
			
		||||
          parent_field_name:{value: 'field_groupes'}, // entity reference revision
 | 
			
		||||
        };
 | 
			
		||||
        
 | 
			
		||||
        const configs = {
 | 
			
		||||
          headers: {'X-CSRF-Token': this.csrf_token}
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        REST.post(`/entity/paragraph?_format=json`, params_parag, configs)
 | 
			
		||||
          .then(({ data }) => {
 | 
			
		||||
            console.log('REST post new parag', data);
 | 
			
		||||
            resolve(data)
 | 
			
		||||
          })
 | 
			
		||||
          .catch(error => {
 | 
			
		||||
            console.warn(`Issue with post new paragraph`, error)
 | 
			
		||||
            reject(error)
 | 
			
		||||
          })
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    recordCerclepoGroupesinteretsField(parag){
 | 
			
		||||
      return new Promise((resolve, reject) => {
 | 
			
		||||
        // 3 record concernement field_entite
 | 
			
		||||
 | 
			
		||||
        // get all the field_entite values, we don't want to ersae everything
 | 
			
		||||
        let groupes = [];
 | 
			
		||||
 | 
			
		||||
        this.concernement.doleances.forEach((doleance) =>{
 | 
			
		||||
          if (doleance.id === this.opened_concernement.opened_doleance.id) {
 | 
			
		||||
            doleance.groupesinterets.forEach((group) => {
 | 
			
		||||
              console.log('group',group);
 | 
			
		||||
              
 | 
			
		||||
              groupes.push({
 | 
			
		||||
                target_id: group.id,
 | 
			
		||||
                target_revision_id: group.revision_id
 | 
			
		||||
              })
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        console.log('groupes', groupes);
 | 
			
		||||
        
 | 
			
		||||
        // add the new field value
 | 
			
		||||
        groupes.push({
 | 
			
		||||
          target_id: parag.id[0].value,
 | 
			
		||||
          target_revision_id: parag.revision_id[0].value
 | 
			
		||||
        })
 | 
			
		||||
        console.log('groupes', groupes);
 | 
			
		||||
        
 | 
			
		||||
        const params_node = {
 | 
			
		||||
          type: 'cercle_politique',
 | 
			
		||||
          nid: [{value: this.opened_concernement.opened_doleance.id}],
 | 
			
		||||
          'field_groupes': groupes
 | 
			
		||||
        };
 | 
			
		||||
        
 | 
			
		||||
        const configs = {
 | 
			
		||||
          headers: {'X-CSRF-Token': this.csrf_token}
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        REST.patch(`/node/${this.opened_concernement.opened_doleance.id}?_format=json`, params_node, configs)
 | 
			
		||||
          .then(({ data }) => {
 | 
			
		||||
            console.log('REST patch cercle_politique new field_group', data)
 | 
			
		||||
            resolve(data)
 | 
			
		||||
          })
 | 
			
		||||
          .catch(error => {
 | 
			
		||||
            console.warn(`Issue with patch cercle_politique new field_group`, error)
 | 
			
		||||
            reject(error)
 | 
			
		||||
          })
 | 
			
		||||
        // resolve('test')
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    recordConcernementDoleancerField(node){
 | 
			
		||||
      return new Promise((resolve, reject) => {
 | 
			
		||||
        // 2 record concernement field_doleancer
 | 
			
		||||
@@ -496,14 +593,30 @@ export default {
 | 
			
		||||
    </template>
 | 
			
		||||
 | 
			
		||||
    <template v-slot:footer>
 | 
			
		||||
 | 
			
		||||
      <template v-if="concernement.can_update">
 | 
			
		||||
        <div v-if="!reloading_concernements" @click="addCerclePo" class="add-cerclepo-btn btn">
 | 
			
		||||
          <span>Ajouter un crecle politique</span>
 | 
			
		||||
          <svg-icon type="mdi" :path="mdiStickerPlusOutline_path"/>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div v-else class="add-cerclepo-btn btn">
 | 
			
		||||
          <div class="loading">Chargement</div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <template v-if="opened_concernement.opened_doleance.field === 'lenquete' || opened_concernement.opened_doleance.field === 'groupesinterets'">
 | 
			
		||||
          <div 
 | 
			
		||||
            v-if="!reloading_concernements" 
 | 
			
		||||
            @click="addgroupInteret" 
 | 
			
		||||
            class="add-groupinteret-btn btn">
 | 
			
		||||
              <span>Ajouter un group d'intérêt</span>
 | 
			
		||||
              <svg-icon type="mdi" :path="mdiStickerPlusOutline_path"/>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div v-else class="add-groupinteret-btn btn">
 | 
			
		||||
            <div class="loading">Chargement</div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </template>
 | 
			
		||||
        <template v-if="opened_concernement.opened_doleance.field === 'lenquete'">
 | 
			
		||||
          <div v-if="!reloading_concernements" @click="addCerclePo" class="add-cerclepo-btn btn">
 | 
			
		||||
            <span>Ajouter un crecle politique</span>
 | 
			
		||||
            <svg-icon type="mdi" :path="mdiStickerPlusOutline_path"/>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div v-else class="add-cerclepo-btn btn">
 | 
			
		||||
            <div class="loading">Chargement</div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </template>
 | 
			
		||||
        
 | 
			
		||||
      </template>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -548,7 +548,7 @@ export const ConcernementsStore = defineStore({
 | 
			
		||||
    },
 | 
			
		||||
    reloadConcernementCerclePol(nid){
 | 
			
		||||
      // let tmp_conc = this.concernementsByID[nid];
 | 
			
		||||
      // console.log(`reloadConcernementCerclePol nid: ${nid} ${Math.random()*10000}`);
 | 
			
		||||
      console.log(`reloadConcernementCerclePol nid: ${nid} ${Math.random()*10000}`);
 | 
			
		||||
      return new Promise((resolve, reject) => {
 | 
			
		||||
        const ast = gql`{
 | 
			
		||||
          concernement(id:${nid}) {
 | 
			
		||||
@@ -567,6 +567,8 @@ export const ConcernementsStore = defineStore({
 | 
			
		||||
              leprobleme
 | 
			
		||||
              lenquete
 | 
			
		||||
              groupesinterets {
 | 
			
		||||
                id
 | 
			
		||||
                revision_id
 | 
			
		||||
                date {
 | 
			
		||||
                  end
 | 
			
		||||
                  start
 | 
			
		||||
@@ -583,6 +585,8 @@ export const ConcernementsStore = defineStore({
 | 
			
		||||
              comment_ennonce_doleance
 | 
			
		||||
              aqui_addresse_doleance
 | 
			
		||||
              reception_traitement {
 | 
			
		||||
                id
 | 
			
		||||
                revision_id
 | 
			
		||||
                date {
 | 
			
		||||
                  end
 | 
			
		||||
                  start
 | 
			
		||||
@@ -599,6 +603,8 @@ export const ConcernementsStore = defineStore({
 | 
			
		||||
              entites_decisionnaires
 | 
			
		||||
              decision_formule
 | 
			
		||||
              mise_en_oeuvre_decision {
 | 
			
		||||
                id
 | 
			
		||||
                revision_id
 | 
			
		||||
                date {
 | 
			
		||||
                  end
 | 
			
		||||
                  start
 | 
			
		||||
@@ -615,6 +621,8 @@ export const ConcernementsStore = defineStore({
 | 
			
		||||
              aqui_adresse_decision
 | 
			
		||||
              comment_formule_decision
 | 
			
		||||
              receptions_et_applications {
 | 
			
		||||
                id
 | 
			
		||||
                revision_id
 | 
			
		||||
                date {
 | 
			
		||||
                  end
 | 
			
		||||
                  start
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user