1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-03-16 21:43:34 +00:00

Merge branch 'fix-wrong-empty-grid-view-during-airtable-import-bug' into 'develop'

Fix wrong empty grid view during airtable import bug

See merge request 
This commit is contained in:
Nigel Gott 2023-05-12 10:47:13 +00:00
commit fdfb8187ee
3 changed files with 39 additions and 42 deletions
backend/src/baserow/contrib/database
changelog/entries/unreleased/bug

View file

@ -479,15 +479,17 @@ class AirtableHandler:
)
converting_progress.increment(state=AIRTABLE_EXPORT_JOB_CONVERTING)
# Create a default grid view because the importing of views doesn't work
# Create an empty grid view because the importing of views doesn't work
# yet. It's a bit quick and dirty, but it will be replaced soon.
view_id += 1
grid_view = GridView(id=view_id, name="Grid", order=1)
grid_view = GridView(id=None, name="Grid", order=1)
grid_view.get_field_options = lambda *args, **kwargs: []
grid_view_type = view_type_registry.get_by_model(grid_view)
exported_views = [
grid_view_type.export_serialized(grid_view, None, None, None)
]
empty_serialized_grid_view = grid_view_type.export_serialized(
grid_view, None, None, None
)
view_id += 1
empty_serialized_grid_view["id"] = view_id
exported_views = [empty_serialized_grid_view]
exported_table = DatabaseExportSerializedStructure.table(
id=table["id"],

View file

@ -331,45 +331,33 @@ class ViewType(
if self.can_filter:
for view_filter in filters:
try:
view_filter_type = view_filter_type_registry.get(
view_filter["type"]
)
view_filter_copy = view_filter.copy()
view_filter_id = view_filter_copy.pop("id")
view_filter_copy["field_id"] = id_mapping["database_fields"][
view_filter_copy["field_id"]
]
view_filter_copy[
"value"
] = view_filter_type.set_import_serialized_value(
view_filter_copy["value"], id_mapping
)
view_filter_object = ViewFilter.objects.create(
view=view, **view_filter_copy
)
id_mapping["database_view_filters"][
view_filter_id
] = view_filter_object.id
except KeyError:
pass
view_filter_type = view_filter_type_registry.get(view_filter["type"])
view_filter_copy = view_filter.copy()
view_filter_id = view_filter_copy.pop("id")
view_filter_copy["field_id"] = id_mapping["database_fields"][
view_filter_copy["field_id"]
]
view_filter_copy[
"value"
] = view_filter_type.set_import_serialized_value(
view_filter_copy["value"], id_mapping
)
view_filter_object = ViewFilter.objects.create(
view=view, **view_filter_copy
)
id_mapping["database_view_filters"][
view_filter_id
] = view_filter_object.id
if self.can_sort:
for view_sorting in sortings:
try:
view_sort_copy = view_sorting.copy()
view_sort_id = view_sort_copy.pop("id")
view_sort_copy["field_id"] = id_mapping["database_fields"][
view_sort_copy["field_id"]
]
view_sort_object = ViewSort.objects.create(
view=view, **view_sort_copy
)
id_mapping["database_view_sortings"][
view_sort_id
] = view_sort_object.id
except KeyError:
pass
view_sort_copy = view_sorting.copy()
view_sort_id = view_sort_copy.pop("id")
view_sort_copy["field_id"] = id_mapping["database_fields"][
view_sort_copy["field_id"]
]
view_sort_object = ViewSort.objects.create(view=view, **view_sort_copy)
id_mapping["database_view_sortings"][view_sort_id] = view_sort_object.id
if self.can_decorate:
for view_decoration in decorations:

View file

@ -0,0 +1,7 @@
{
"type": "bug",
"message": "Fixes a bug where a wrong empty view is generated in some cases during the Airtable import.",
"issue_number": null,
"bullet_points": [],
"created_at": "2023-05-12"
}