Use defaultValue in currency input (#4911)

- Fix default value sent to backend, using single quotes by default
- Use default value in field definition and column definition so that
field inputs can access it
- Used currency default value in CurrencyFieldInput

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Lucas Bordeau
2024-04-11 16:49:00 +02:00
committed by GitHub
parent e48960afbe
commit c69a3f01da
17 changed files with 188 additions and 103 deletions

View File

@ -14,13 +14,17 @@ import {
FieldMetadataType,
} from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { validateDefaultValueForType } from 'src/engine/metadata-modules/field-metadata/utils/validate-default-value-for-type.util';
import { LoggerService } from 'src/engine/integrations/logger/logger.service';
@Injectable()
@ValidatorConstraint({ name: 'isFieldMetadataDefaultValue', async: true })
export class IsFieldMetadataDefaultValue
implements ValidatorConstraintInterface
{
constructor(private readonly fieldMetadataService: FieldMetadataService) {}
constructor(
private readonly fieldMetadataService: FieldMetadataService,
private readonly loggerService: LoggerService,
) {}
async validate(
value: FieldMetadataDefaultValue,
@ -48,7 +52,19 @@ export class IsFieldMetadataDefaultValue
type = fieldMetadata.type;
}
return validateDefaultValueForType(type, value);
const validationResult = validateDefaultValueForType(type, value);
if (!validationResult.isValid) {
this.loggerService.error(
{
message: 'Error during field validation',
errors: validationResult.errors,
},
'Field Metadata Validation',
);
}
return validationResult.isValid;
}
defaultMessage(): string {