Allow input and display of floats for Number fields (#7340)

### Description

- We added a decimal field for a Number Field type in the settings
- We updated the Number Field type create a form with decimals input
- We are not implementing the dropdown present on the Figma because it
seems not related

### Demo


<https://www.loom.com/share/18a8d4b712a14f6d8b66806764f8467f?sid=3fc79b46-ae32-46e3-8635-d0eee02e53b2>

Fixes #6987

---------

Co-authored-by: gitstart-twenty <gitstart-twenty@users.noreply.github.com>
Co-authored-by: Marie Stoppa <marie.stoppa@essec.edu>
This commit is contained in:
gitstart-app[bot]
2024-10-04 10:45:25 +02:00
committed by GitHub
parent e3ed574420
commit 97eff774bd
22 changed files with 478 additions and 94 deletions

View File

@ -56,6 +56,7 @@ import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target
import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service';
import { ViewFieldWorkspaceEntity } from 'src/modules/view/standard-objects/view-field.workspace-entity';
import { FieldMetadataValidationService } from './field-metadata-validation.service';
import {
FieldMetadataEntity,
FieldMetadataType,
@ -82,6 +83,7 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
private readonly typeORMService: TypeORMService,
private readonly workspaceMetadataVersionService: WorkspaceMetadataVersionService,
private readonly twentyORMGlobalManager: TwentyORMGlobalManager,
private readonly fieldMetadataValidationService: FieldMetadataValidationService,
) {
super(fieldMetadataRepository);
}
@ -157,6 +159,7 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
}
this.validateFieldMetadataInput<CreateFieldInput>(
fieldMetadataInput.type,
fieldMetadataInput,
objectMetadata,
);
@ -391,6 +394,7 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
}
this.validateFieldMetadataInput<UpdateFieldInput>(
existingFieldMetadata.type,
fieldMetadataInput,
objectMetadata,
);
@ -707,7 +711,11 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
private validateFieldMetadataInput<
T extends UpdateFieldInput | CreateFieldInput,
>(fieldMetadataInput: T, objectMetadata: ObjectMetadataEntity): T {
>(
fieldMetadataType: FieldMetadataType,
fieldMetadataInput: T,
objectMetadata: ObjectMetadataEntity,
): T {
if (fieldMetadataInput.name) {
try {
validateFieldNameValidityOrThrow(fieldMetadataInput.name);
@ -748,6 +756,13 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
}
}
if (fieldMetadataInput.settings) {
this.fieldMetadataValidationService.validateSettingsOrThrow({
fieldType: fieldMetadataType,
settings: fieldMetadataInput.settings,
});
}
return fieldMetadataInput;
}
}