Commit 1dfeb29f authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

- Up : Mis en place des champs "REST" dans les champs personnalisés

 - Test avec la liste des personnes
parent e8cd8503
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -765,6 +765,7 @@ return array(
            'fileSize' => \Oscar\View\Helpers\Filesize::class,
            'hasAccess' => \Oscar\View\Helpers\Access::class,
            'keyvalue' => \Oscar\View\Helpers\KeyValueHelper::class,
            'oscarFormRowVite' => \Oscar\View\Helpers\OscarFormRowViteHelper::class,
            'activityNumbers' => \Oscar\View\Helpers\ActivityNumberHelper::class,
            'moment' => \Oscar\View\Helpers\Moment::class,
            'oscarFormRow' => \Oscar\View\Helpers\OscarFormRow::class,
+11 −0
Original line number Diff line number Diff line
@@ -1701,6 +1701,17 @@ class Activity implements ResourceInterface
        return null;
    }

    public function getFreeFieldsData(ActivityFreeField $type): mixed
    {
        /** @var ActivityFreeFieldValue $freeField */
        foreach ($this->getFreeFields() as $freeField) {
            if ($freeField->getType() == $type) {
                return $freeField->getData();
            }
        }
        return null;
    }

    /**
     * @param ArrayCollection $validatorsAdm
     */
+9 −0
Original line number Diff line number Diff line
@@ -119,6 +119,10 @@ class ProjectGrantFormHydrator implements HydratorInterface, UseServiceContainer
                    $value = $fieldConf->hydrateFromData($data);
                    break;

                case FreeFieldUtils::TYPE_LISTREST :
                    $value = $fieldConf->hydrateFromData($data);
                    break;

                default :
                    throw new Exception("Le type de champs personnalisé '" . $fieldInfos['type'] . "' n'est pas géré");
            }
@@ -336,6 +340,11 @@ class ProjectGrantFormHydrator implements HydratorInterface, UseServiceContainer
                    $out[$key] = $value;
                    break;

                case FreeFieldUtils::TYPE_LISTREST :
                    $value = $object->getFreeFieldsData($typeObj);
                    $out[$key] = $value;
                    break;

                default :
                    throw new Exception("Le type de champs personnalisé '" . $fieldInfos['type'] . "' n'est pas pris en charge");
            }
+2 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ class FreeFieldUtils
    const TYPE_DATE = 'date';
    const TYPE_INTEGER = 'integer';
    const TYPE_LIST = 'list';
    const TYPE_LISTREST = 'listrest';

    public function __construct(array $freeFieldOptions, string $key)
    {
@@ -41,6 +42,7 @@ class FreeFieldUtils
    {
        return [
            'label' => $this->freeFieldOptions['label'],
            'type' => $this->type,
            'required' => $this->freeFieldOptions['required'] === true,
            'label_attributes' => [
                'class' => 'control-label'
+3 −1
Original line number Diff line number Diff line
@@ -15,9 +15,11 @@ class FreeFieldUtilsFactory
                return new FreeFieldUtilsText($config, $key);
            case FreeFieldUtils::TYPE_LIST :
                return new FreeFieldUtilsList($config, $key);
            case FreeFieldUtils::TYPE_LISTREST :
                return new FreeFieldUtilsListRest($config, $key);

            default:
                throw new OscarException("Type '$type' not supported");
                throw new OscarException("Type de champs personnalisé '$type' non supporté");
        }
    }
}
 No newline at end of file
Loading