diff --git a/backend/src/baserow/contrib/database/api/fields/serializers.py b/backend/src/baserow/contrib/database/api/fields/serializers.py index b06394a8af..358c6df68c 100644 --- a/backend/src/baserow/contrib/database/api/fields/serializers.py +++ b/backend/src/baserow/contrib/database/api/fields/serializers.py @@ -8,6 +8,7 @@ from drf_spectacular.types import OpenApiTypes from drf_spectacular.utils import extend_schema_field +from loguru import logger from rest_framework import serializers from rest_framework.serializers import SkipField, empty @@ -227,7 +228,14 @@ def __init__(self, child, *args, **kwargs): self.fields["value"] = child def to_representation(self, instance): - return super().to_representation(instance) + # Note this is workaround for https://github.com/baserow/baserow/issues/4424 + # Once we have a proper way to handle this, we can remove this + # and return the super().to_representation(instance) directly. + try: + return super().to_representation(instance) + except Exception: + logger.exception("Mismatch between field type and value type") + return [] class LinkRowValueSerializer(serializers.Serializer): diff --git a/changelog/entries/unreleased/bug/4424_do_not_fail_hard_when_arrayvalueserializer_throws_conversion.json b/changelog/entries/unreleased/bug/4424_do_not_fail_hard_when_arrayvalueserializer_throws_conversion.json new file mode 100644 index 0000000000..3ea9b1e530 --- /dev/null +++ b/changelog/entries/unreleased/bug/4424_do_not_fail_hard_when_arrayvalueserializer_throws_conversion.json @@ -0,0 +1,9 @@ +{ + "type": "bug", + "message": "Do not fail hard when ArrayValueSerializer throws ConversionSyntax exception", + "issue_origin": "github", + "issue_number": 4424, + "domain": "database", + "bullet_points": [], + "created_at": "2025-12-11" +} \ No newline at end of file diff --git a/changelog/entries/unreleased/feature/added_a_create_new_data_source_link_at_the_bottom_of_iterate.json b/changelog/entries/unreleased/feature/added_a_create_new_data_source_link_at_the_bottom_of_iterate.json new file mode 100644 index 0000000000..b6008115ab --- /dev/null +++ b/changelog/entries/unreleased/feature/added_a_create_new_data_source_link_at_the_bottom_of_iterate.json @@ -0,0 +1,9 @@ +{ + "type": "feature", + "message": "Added a 'Create new data source' link at the bottom of iterate/table element dropdowns for quicker data source creation.", + "issue_origin": "github", + "issue_number": null, + "domain": "builder", + "bullet_points": [], + "created_at": "2025-11-28" +} \ No newline at end of file diff --git a/web-frontend/modules/builder/components/dataSource/DataSourceCreateEditModal.vue b/web-frontend/modules/builder/components/dataSource/DataSourceCreateEditModal.vue index a40ccdd015..d6c6e270e1 100644 --- a/web-frontend/modules/builder/components/dataSource/DataSourceCreateEditModal.vue +++ b/web-frontend/modules/builder/components/dataSource/DataSourceCreateEditModal.vue @@ -174,11 +174,12 @@ export default { ) ) - await this.actionUpdateDataSource({ + const updatedDataSource = await this.actionUpdateDataSource({ page: this.dataSourcePage, dataSourceId: this.dataSource.id, values: differences, }) + this.$emit('updated', updatedDataSource) // Send data source update element event this.$store.dispatch('element/emitElementEvent', { event: ELEMENT_EVENTS.DATA_SOURCE_AFTER_UPDATE, diff --git a/web-frontend/modules/builder/components/dataSource/DataSourceDropdown.vue b/web-frontend/modules/builder/components/dataSource/DataSourceDropdown.vue index 05fd06423e..b94e1703e3 100644 --- a/web-frontend/modules/builder/components/dataSource/DataSourceDropdown.vue +++ b/web-frontend/modules/builder/components/dataSource/DataSourceDropdown.vue @@ -5,6 +5,7 @@