Commit d2b55808 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Les champs personnalisés optionnels ne bloquent plus l'enregistrement si ils ne sont pas renseignés

Une option vide est proposée automatiquement pour les champs personnalisés optionnelles de type LISTE
Les champs optionnels non utilisé ne sont plus affichés dans l'onglet "Numérotation"
parent d24ef19e
Loading
Loading
Loading
Loading
Loading
+8 −1
Changes for module/Oscar/src/Oscar/Utils/FreeField/FreeFieldUtilsList.php: 8 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -19,8 +19,15 @@ class FreeFieldUtilsList extends FreeFieldUtils
    protected function getOptionsValues(): array
    {
        $options = [];
        if($this->freeFieldOptions['required'] === false){
            $options[] = [
                'value' => '',
                'label' => '',
            ];
        }

        if (array_key_exists('params', $this->freeFieldOptions) && array_key_exists('values', $this->freeFieldOptions['params'])) {
            $options = $this->freeFieldOptions['params']['values'];
            $options = array_merge_recursive($options, $this->freeFieldOptions['params']['values']);
        }
        return $options;
    }
+2 −3
Changes for module/Oscar/src/Oscar/Validator/ProjectGrantValidator.php: 2 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -65,11 +65,10 @@ class ProjectGrantValidator
        }

        foreach ($this->activityFreeFieldRepository->getListNameEditable() as $configKey => $configParams) {
            if( $configParams['required'] === true ){
                $contraintes[$configKey] = [
                    'required' => true,
                    'required' => $configParams['required'] === true,
                ];
            }

        }

        $contraintes['pcruValidPoleCompetitivite'] = [
+12 −6
Changes for ui/src/views/Activity.vue: 12 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -578,16 +578,26 @@
                  <strong v-for="v in core.disciplines" class="cartouche secondary">{{ v }}</strong>
                </div>
              </div>

            </div>
            <div class="col-md-4">
              <h3>{{ $filters.oscarText('Numérotations') }}</h3>
              <div class="labeled-value labeled-value-horizontal" v-for="v,k in core.numeros">
                <div class="label">{{ k }}</div>
                <div class="value">
                  <strong>{{ v }}</strong>
                </div>
              </div>

            </div>
            <div class="col-md-4">
              <template v-for="v in core.freefields">
                <div class="labeled-value labeled-value-horizontal" v-if="v.value">
                  <div class="label">{{ v.key }}</div>
                  <div class="value">
                    <strong>{{ v.value }}</strong>
                  </div>
                </div>
              </template>
              ...
              <div class="labeled-value labeled-value-horizontal">
                <div class="label">{{ $filters.oscarText('remoteId') }}</div>
                <div class="value">
@@ -595,10 +605,6 @@
                </div>
              </div>
            </div>
            <div class="col-md-4">
              <div v-for="v,k in core.freefields">{{ v.key }} <strong class="cartouche">{{ v.value }}</strong></div>
              ...
            </div>
          </div>
        </div>
        <div class="tab-pane fade" id="nav-disabled" role="tabpanel" aria-labelledby="nav-disabled-tab" tabindex="0">