1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-04-17 10:22:36 +00:00

Resolve "Ensure that NavigationElementManager has sensible defaults for its navigation type and target."

This commit is contained in:
Peter Evans 2025-04-04 11:04:30 +01:00
parent b7fb0e56fd
commit fd25f74351
3 changed files with 28 additions and 7 deletions
backend
src/baserow/contrib/builder/elements
tests/baserow/contrib/builder/api/elements
changelog/entries/unreleased/bug

View file

@ -813,17 +813,24 @@ class NavigationElementManager:
overrides = {
"navigation_type": serializers.ChoiceField(
choices=NavigationElementMixin.NAVIGATION_TYPES.choices,
help_text=LinkElement._meta.get_field("navigation_type").help_text,
default=NavigationElementMixin.NAVIGATION_TYPES.PAGE,
help_text=NavigationElementMixin._meta.get_field(
"navigation_type"
).help_text,
required=False,
),
"navigate_to_page_id": serializers.IntegerField(
allow_null=True,
default=None,
help_text=LinkElement._meta.get_field("navigate_to_page").help_text,
help_text=NavigationElementMixin._meta.get_field(
"navigate_to_page"
).help_text,
required=False,
),
"navigate_to_url": FormulaSerializerField(
help_text=LinkElement._meta.get_field("navigate_to_url").help_text,
help_text=NavigationElementMixin._meta.get_field(
"navigate_to_url"
).help_text,
default="",
allow_blank=True,
required=False,
@ -831,18 +838,23 @@ class NavigationElementManager:
"page_parameters": PageParameterValueSerializer(
many=True,
default=[],
help_text=LinkElement._meta.get_field("page_parameters").help_text,
help_text=NavigationElementMixin._meta.get_field(
"page_parameters"
).help_text,
required=False,
),
"query_parameters": PageParameterValueSerializer(
many=True,
default=[],
help_text=LinkElement._meta.get_field("query_parameters").help_text,
help_text=NavigationElementMixin._meta.get_field(
"query_parameters"
).help_text,
required=False,
),
"target": serializers.ChoiceField(
choices=NavigationElementMixin.TARGETS.choices,
help_text=LinkElement._meta.get_field("target").help_text,
default=NavigationElementMixin.TARGETS.SELF,
help_text=NavigationElementMixin._meta.get_field("target").help_text,
required=False,
),
}

View file

@ -5,7 +5,7 @@ from django.urls import reverse
import pytest
from rest_framework.status import HTTP_200_OK, HTTP_400_BAD_REQUEST
from baserow.contrib.builder.elements.models import LinkElement
from baserow.contrib.builder.elements.models import LinkElement, NavigationElementMixin
@pytest.mark.django_db
@ -101,6 +101,7 @@ def test_can_update_a_table_element_fields(api_client, data_fixture):
"name": "Color",
"type": "link",
"navigate_to_page_id": None,
"navigation_type": NavigationElementMixin.NAVIGATION_TYPES.PAGE,
"navigate_to_url": "get('test2')",
"link_name": "get('test3')",
"target": "self",

View file

@ -0,0 +1,8 @@
{
"type": "bug",
"message": "Resolved an issue which prevented pages with incomplete table element fields from being published properly.",
"domain": "builder",
"issue_number": 3547,
"bullet_points": [],
"created_at": "2025-04-02"
}