From 5c6fa627be18b5fdcdec87df03ea4a9f2126ae4e Mon Sep 17 00:00:00 2001 From: Peter Evans Date: Wed, 13 May 2026 11:11:28 +0100 Subject: [PATCH 1/3] feat: builder template regression detection (#5348) * Adding a builder template regression detection system. See docs/testing/builder-template-regression.md for more information. * documentation update * Address initial feedback * Addressing Jrmi's feedback. --- backend/pyproject.toml | 1 + .../contrib/builder/application_types.py | 30 + backend/src/baserow/core/registries.py | 15 + .../tests/baserow/core/templates/__init__.py | 0 .../templates/__snapshots__/ab-testing.ambr | 330 +++ .../__snapshots__/ab_agency_theme.ambr | 506 ++++ .../__snapshots__/ab_baserow_theme.ambr | 506 ++++ .../__snapshots__/ab_coral_theme.ambr | 506 ++++ .../__snapshots__/ab_corporate_theme.ambr | 506 ++++ .../__snapshots__/ab_eclipse_theme.ambr | 506 ++++ .../__snapshots__/ab_education_theme.ambr | 506 ++++ .../__snapshots__/ab_finance_theme.ambr | 506 ++++ .../__snapshots__/ab_forest_theme.ambr | 506 ++++ .../__snapshots__/ab_healthcare_theme.ambr | 506 ++++ .../__snapshots__/ab_ivory_theme.ambr | 506 ++++ .../__snapshots__/ab_lavender_theme.ambr | 506 ++++ .../__snapshots__/ab_legal_theme.ambr | 506 ++++ .../__snapshots__/ab_luxury_theme.ambr | 506 ++++ .../__snapshots__/ab_midnight_theme.ambr | 506 ++++ .../__snapshots__/ab_mint_theme.ambr | 506 ++++ .../__snapshots__/ab_neon_theme.ambr | 506 ++++ .../__snapshots__/ab_ocean_theme.ambr | 506 ++++ .../__snapshots__/ab_realestate_theme.ambr | 506 ++++ .../__snapshots__/ab_slate_theme.ambr | 506 ++++ .../__snapshots__/ab_startup_theme.ambr | 506 ++++ .../__snapshots__/ab_sunset_theme.ambr | 506 ++++ .../__snapshots__/ab_tech_theme.ambr | 506 ++++ .../__snapshots__/ab_terracotta_theme.ambr | 506 ++++ .../__snapshots__/action-plan-management.ambr | 586 +++++ .../__snapshots__/advertising-campaigns.ambr | 5 + .../__snapshots__/agile-product-roadmap.ambr | 5 + .../templates/__snapshots__/all-fields.ambr | 5 + .../templates/__snapshots__/andon-calls.ambr | 184 ++ .../__snapshots__/apartment-hunt.ambr | 5 + .../__snapshots__/app-pitch-planner.ambr | 5 + .../__snapshots__/applicant-tracker.ambr | 5 + .../__snapshots__/asset-management.ambr | 813 ++++++ .../__snapshots__/benefit-show-manager.ambr | 5 + .../beverage-sales-management.ambr | 5 + .../__snapshots__/blog-post-management.ambr | 5 + .../templates/__snapshots__/book-catalog.ambr | 5 + .../__snapshots__/book-writing-guide.ambr | 5 + .../__snapshots__/brand-assets-manager.ambr | 175 ++ .../templates/__snapshots__/bucket-list.ambr | 5 + .../business-conference-event.ambr | 5 + .../__snapshots__/business-expenses.ambr | 5 + .../business-goal-tracker-okrs.ambr | 425 ++++ .../__snapshots__/call-center-log.ambr | 5 + .../__snapshots__/campaign-management.ambr | 533 ++++ .../__snapshots__/car-comparison.ambr | 5 + .../car-dealership-inventory.ambr | 1418 +++++++++++ .../car-dealership-services.ambr | 5 + .../templates/__snapshots__/car-hunt.ambr | 5 + .../__snapshots__/car-maintenance-log.ambr | 5 + .../templates/__snapshots__/city-tours.ambr | 247 ++ .../commercial-property-management.ambr | 326 +++ .../company-advertising-campaigns.ambr | 5 + .../__snapshots__/company-asset-tracker.ambr | 5 + .../company-blog-management.ambr | 5 + .../__snapshots__/competitor-analysis.ambr | 148 ++ .../compliance-assessment-builder.ambr | 424 ++++ .../content-scheduling-manager.ambr | 5 + .../__snapshots__/contract-management.ambr | 5 + .../__snapshots__/copy-management.ambr | 5 + .../__snapshots__/custom-code-demos.ambr | 61 + .../__snapshots__/customer-research.ambr | 5 + .../electronic-health-record.ambr | 474 ++++ .../elementary-school-management.ambr | 5 + .../email-marketing-campaigns.ambr | 5 + .../__snapshots__/emergency-triage-log.ambr | 5 + .../__snapshots__/employee-directory.ambr | 5 + .../__snapshots__/esg-management.ambr | 1387 +++++++++++ .../__snapshots__/event-planning.ambr | 226 ++ .../__snapshots__/event-staffing.ambr | 5 + .../__snapshots__/favorite-food-places.ambr | 5 + .../templates/__snapshots__/formulas.ambr | 121 + .../__snapshots__/frequent-flyer-rewards.ambr | 5 + ...niture-fixtures-and-equipment-manager.ambr | 5 + .../templates/__snapshots__/gemba-walks.ambr | 292 +++ .../__snapshots__/grocery-planner.ambr | 5 + .../__snapshots__/growth-experiments.ambr | 5 + .../health-inspection-reports.ambr | 5 + .../healthcare-facility-management.ambr | 5 + .../templates/__snapshots__/hiking-guide.ambr | 5 + .../__snapshots__/holiday-shopping.ambr | 5 + .../__snapshots__/home-inventory.ambr | 5 + .../__snapshots__/home-remodeling.ambr | 5 + .../__snapshots__/hotel-bookings.ambr | 5 + .../templates/__snapshots__/house-search.ambr | 5 + .../__snapshots__/household-chores.ambr | 5 + .../__snapshots__/incident-management.ambr | 641 +++++ .../individual-medical-record.ambr | 5 + .../__snapshots__/inspections-compliance.ambr | 160 ++ .../__snapshots__/intake-qualification.ambr | 369 +++ .../__snapshots__/interview-questions.ambr | 5 + .../__snapshots__/job-interviews.ambr | 5 + .../templates/__snapshots__/job-search.ambr | 5 + .../__snapshots__/lead-management.ambr | 370 +++ .../__snapshots__/legal-case-tracker.ambr | 5 + .../__snapshots__/lightweight-crm.ambr | 2183 +++++++++++++++++ .../__snapshots__/media-tracking.ambr | 5 + .../__snapshots__/meeting-minutes.ambr | 5 + .../__snapshots__/meeting-room-booking.ambr | 5 + .../__snapshots__/moving-company-manager.ambr | 5 + .../__snapshots__/net-promoter-score.ambr | 5 + .../__snapshots__/new-hire-onboarding.ambr | 5 + .../non-emergency-call-center.ambr | 5 + .../non-profit-organization-management.ambr | 5 + .../nonprofit-grant-tracker.ambr | 5 + .../__snapshots__/objectives-key-results.ambr | 225 ++ .../__snapshots__/office-guest-log.ambr | 5 + .../online-freelancer-management.ambr | 317 +++ .../__snapshots__/ooo-management.ambr | 5 + .../templates/__snapshots__/order-kiosk.ambr | 435 ++++ .../__snapshots__/password-reset.ambr | 127 + .../__snapshots__/performance-reviews.ambr | 5 + .../personal-finance-manager.ambr | 5 + .../__snapshots__/personal-health-log.ambr | 5 + .../__snapshots__/personal-task-manager.ambr | 5 + .../podcast-content-manager.ambr | 5 + .../__snapshots__/policy-management.ambr | 680 +++++ .../political-campaign-contributions.ambr | 5 + .../__snapshots__/product-roadmap.ambr | 5 + .../__snapshots__/program-management-kpi.ambr | 386 +++ .../__snapshots__/project-management.ambr | 463 ++++ .../__snapshots__/project-tracker.ambr | 5 + .../__snapshots__/property-showings.ambr | 5 + .../public-library-inventory.ambr | 5 + .../purchase-order-management.ambr | 581 +++++ .../__snapshots__/qa-test-scripts.ambr | 5 + .../templates/__snapshots__/recipe-book.ambr | 5 + .../__snapshots__/remote-team-hub.ambr | 5 + .../__snapshots__/restaurant-management.ambr | 5 + .../risk-assessment-and-management.ambr | 745 ++++++ .../sales-pipeline-management.ambr | 763 ++++++ .../__snapshots__/santa-logistics.ambr | 251 ++ .../__snapshots__/single-trip-planner.ambr | 5 + .../skill-discovery-management.ambr | 1342 ++++++++++ .../__snapshots__/smb-business-plan.ambr | 5 + .../software-application-bug-tracker.ambr | 5 + .../core/templates/__snapshots__/sqcdp.ambr | 261 ++ .../__snapshots__/staff-development.ambr | 5 + .../standard-operating-procedures.ambr | 217 ++ .../__snapshots__/student-planner.ambr | 5 + .../supply-chain-procurement-management.ambr | 997 ++++++++ .../__snapshots__/swot-analysis.ambr | 5 + .../__snapshots__/task-management.ambr | 1334 ++++++++++ .../__snapshots__/teacher-lesson-plans.ambr | 5 + .../__snapshots__/team-check-ins.ambr | 5 + .../__snapshots__/tourism-agency-manager.ambr | 5 + .../__snapshots__/trick-or-treat.ambr | 552 +++++ .../templates/__snapshots__/trip-history.ambr | 5 + .../university-admissions-management.ambr | 5 + .../__snapshots__/user-feedback.ambr | 5 + .../venture-capital-investments.ambr | 5 + .../templates/__snapshots__/web-app-uat.ambr | 5 + .../__snapshots__/wedding-client-planner.ambr | 5 + .../__snapshots__/wedding-planning.ambr | 5 + .../work-management-platform.ambr | 1828 ++++++++++++++ .../workshops-and-trainings.ambr | 5 + .../tests/baserow/core/templates/conftest.py | 17 + .../baserow/core/templates/test_snapshots.py | 71 + backend/uv.lock | 14 + 163 files changed, 35643 insertions(+) create mode 100644 backend/tests/baserow/core/templates/__init__.py create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab-testing.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_agency_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_baserow_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_coral_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_corporate_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_eclipse_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_education_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_finance_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_forest_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_healthcare_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_ivory_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_lavender_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_legal_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_luxury_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_midnight_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_mint_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_neon_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_ocean_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_realestate_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_slate_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_startup_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_sunset_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_tech_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ab_terracotta_theme.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/action-plan-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/advertising-campaigns.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/agile-product-roadmap.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/all-fields.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/andon-calls.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/apartment-hunt.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/app-pitch-planner.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/applicant-tracker.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/asset-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/benefit-show-manager.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/beverage-sales-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/blog-post-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/book-catalog.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/book-writing-guide.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/brand-assets-manager.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/bucket-list.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/business-conference-event.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/business-expenses.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/business-goal-tracker-okrs.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/call-center-log.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/campaign-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/car-comparison.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/car-dealership-inventory.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/car-dealership-services.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/car-hunt.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/car-maintenance-log.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/city-tours.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/commercial-property-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/company-advertising-campaigns.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/company-asset-tracker.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/company-blog-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/competitor-analysis.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/compliance-assessment-builder.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/content-scheduling-manager.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/contract-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/copy-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/custom-code-demos.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/customer-research.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/electronic-health-record.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/elementary-school-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/email-marketing-campaigns.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/emergency-triage-log.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/employee-directory.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/esg-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/event-planning.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/event-staffing.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/favorite-food-places.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/formulas.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/frequent-flyer-rewards.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/furniture-fixtures-and-equipment-manager.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/gemba-walks.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/grocery-planner.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/growth-experiments.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/health-inspection-reports.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/healthcare-facility-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/hiking-guide.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/holiday-shopping.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/home-inventory.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/home-remodeling.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/hotel-bookings.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/house-search.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/household-chores.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/incident-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/individual-medical-record.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/inspections-compliance.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/intake-qualification.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/interview-questions.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/job-interviews.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/job-search.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/lead-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/legal-case-tracker.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/lightweight-crm.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/media-tracking.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/meeting-minutes.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/meeting-room-booking.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/moving-company-manager.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/net-promoter-score.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/new-hire-onboarding.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/non-emergency-call-center.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/non-profit-organization-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/nonprofit-grant-tracker.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/objectives-key-results.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/office-guest-log.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/online-freelancer-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/ooo-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/order-kiosk.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/password-reset.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/performance-reviews.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/personal-finance-manager.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/personal-health-log.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/personal-task-manager.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/podcast-content-manager.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/policy-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/political-campaign-contributions.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/product-roadmap.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/program-management-kpi.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/project-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/project-tracker.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/property-showings.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/public-library-inventory.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/purchase-order-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/qa-test-scripts.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/recipe-book.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/remote-team-hub.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/restaurant-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/risk-assessment-and-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/sales-pipeline-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/santa-logistics.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/single-trip-planner.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/skill-discovery-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/smb-business-plan.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/software-application-bug-tracker.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/sqcdp.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/staff-development.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/standard-operating-procedures.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/student-planner.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/supply-chain-procurement-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/swot-analysis.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/task-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/teacher-lesson-plans.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/team-check-ins.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/tourism-agency-manager.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/trick-or-treat.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/trip-history.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/university-admissions-management.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/user-feedback.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/venture-capital-investments.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/web-app-uat.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/wedding-client-planner.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/wedding-planning.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/work-management-platform.ambr create mode 100644 backend/tests/baserow/core/templates/__snapshots__/workshops-and-trainings.ambr create mode 100644 backend/tests/baserow/core/templates/conftest.py create mode 100644 backend/tests/baserow/core/templates/test_snapshots.py diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 5409874fd8..93ff99d440 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -152,6 +152,7 @@ dev = [ "ipdb", "build", "rust-just>=1.46.0", + "syrupy==5.1.0", ] changelog = [ "typer==0.24.1", diff --git a/backend/src/baserow/contrib/builder/application_types.py b/backend/src/baserow/contrib/builder/application_types.py index a6a26b88f9..65d24a69f1 100755 --- a/backend/src/baserow/contrib/builder/application_types.py +++ b/backend/src/baserow/contrib/builder/application_types.py @@ -579,3 +579,33 @@ def fetch_pages_to_serialize( else: instance = self.enhance_queryset(base_queryset).first() return instance and list(instance.page_set.all()) or [] + + def serialize_for_regression_testing(self, builder: Builder) -> dict: + """ + Serializes each page's element tree as a list of ``{type, children}`` nodes, + keyed by page name. Used by snapshot tests to detect element-hierarchy + regressions across template changes. + + :param builder: The builder application instance to serialize. + :return: A dict mapping page names to their element-tree representation. + """ + from baserow.contrib.builder.elements.handler import ElementHandler + from baserow.contrib.builder.pages.handler import PageHandler + + result = {} + for page in PageHandler().get_pages(builder): + elements = list(ElementHandler().get_elements(page)) + # Elements are already ordered by (order, id) via Element.Meta.ordering. + by_parent: dict[int | None, list] = {} + for el in elements: + by_parent.setdefault(el.parent_element_id, []).append(el) + + def build_tree(parent_id): + return [ + {"type": el.get_type().type, "children": build_tree(el.id)} + for el in by_parent.get(parent_id, []) + ] + + result[page.name] = build_tree(None) + + return result diff --git a/backend/src/baserow/core/registries.py b/backend/src/baserow/core/registries.py index 5faec48619..46bc6e1fa4 100755 --- a/backend/src/baserow/core/registries.py +++ b/backend/src/baserow/core/registries.py @@ -627,6 +627,21 @@ def get_application_id_for_url(cls, url: str) -> int | None: return None + def serialize_for_regression_testing( + self, application: "Application" + ) -> dict | None: + """ + Optionally serialize the application state for regression snapshot testing. + + Override in subclasses to capture a human-readable, ID-free representation of + the application structure. Return None to opt this application type out. + + :param application: The specific application instance. + :return: A serializable dict, or None to skip this application type. + """ + + return None + ApplicationSubClassInstance = TypeVar( "ApplicationSubClassInstance", bound="Application" diff --git a/backend/tests/baserow/core/templates/__init__.py b/backend/tests/baserow/core/templates/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab-testing.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab-testing.ambr new file mode 100644 index 0000000000..03f84a2a00 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab-testing.ambr @@ -0,0 +1,330 @@ +# serializer version: 1 +# name: test_template_snapshot[ab-testing] + dict({ + 'builder': dict({ + 'Homepage': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Variant details': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'rating_input', + }), + dict({ + 'children': list([ + ]), + 'type': 'rating_input', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Variant overview': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_agency_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_agency_theme.ambr new file mode 100644 index 0000000000..57f1aae05c --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_agency_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_agency_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_baserow_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_baserow_theme.ambr new file mode 100644 index 0000000000..561e253c14 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_baserow_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_baserow_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_coral_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_coral_theme.ambr new file mode 100644 index 0000000000..ebda3cb05b --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_coral_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_coral_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_corporate_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_corporate_theme.ambr new file mode 100644 index 0000000000..3d62ee5ca9 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_corporate_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_corporate_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_eclipse_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_eclipse_theme.ambr new file mode 100644 index 0000000000..de8f7c8802 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_eclipse_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_eclipse_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_education_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_education_theme.ambr new file mode 100644 index 0000000000..9547b1b3ab --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_education_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_education_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_finance_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_finance_theme.ambr new file mode 100644 index 0000000000..ffdbd43c40 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_finance_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_finance_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_forest_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_forest_theme.ambr new file mode 100644 index 0000000000..98c68228b1 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_forest_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_forest_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_healthcare_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_healthcare_theme.ambr new file mode 100644 index 0000000000..2f0d444fc7 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_healthcare_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_healthcare_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_ivory_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_ivory_theme.ambr new file mode 100644 index 0000000000..7e47b6acfa --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_ivory_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_ivory_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_lavender_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_lavender_theme.ambr new file mode 100644 index 0000000000..70292a0918 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_lavender_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_lavender_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_legal_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_legal_theme.ambr new file mode 100644 index 0000000000..4e4695b1d0 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_legal_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_legal_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_luxury_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_luxury_theme.ambr new file mode 100644 index 0000000000..fede026dfa --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_luxury_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_luxury_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_midnight_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_midnight_theme.ambr new file mode 100644 index 0000000000..31d16109bd --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_midnight_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_midnight_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_mint_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_mint_theme.ambr new file mode 100644 index 0000000000..07f3def917 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_mint_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_mint_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_neon_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_neon_theme.ambr new file mode 100644 index 0000000000..c439697e84 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_neon_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_neon_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_ocean_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_ocean_theme.ambr new file mode 100644 index 0000000000..1ecfc247b7 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_ocean_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_ocean_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_realestate_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_realestate_theme.ambr new file mode 100644 index 0000000000..bf4bd596b9 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_realestate_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_realestate_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_slate_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_slate_theme.ambr new file mode 100644 index 0000000000..4a3d5bd8de --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_slate_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_slate_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_startup_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_startup_theme.ambr new file mode 100644 index 0000000000..cf7a7292ff --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_startup_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_startup_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_sunset_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_sunset_theme.ambr new file mode 100644 index 0000000000..0841d92188 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_sunset_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_sunset_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_tech_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_tech_theme.ambr new file mode 100644 index 0000000000..b9c2c9cac9 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_tech_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_tech_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ab_terracotta_theme.ambr b/backend/tests/baserow/core/templates/__snapshots__/ab_terracotta_theme.ambr new file mode 100644 index 0000000000..fa91c5c392 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ab_terracotta_theme.ambr @@ -0,0 +1,506 @@ +# serializer version: 1 +# name: test_template_snapshot[ab_terracotta_theme] + dict({ + 'builder': dict({ + 'Examples': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/action-plan-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/action-plan-management.ambr new file mode 100644 index 0000000000..f78dc7ae98 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/action-plan-management.ambr @@ -0,0 +1,586 @@ +# serializer version: 1 +# name: test_template_snapshot[action-plan-management] + dict({ + 'builder': dict({ + 'Action Plan Details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Action Plans': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Add New Task': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Task Details': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'column', + }), + ]), + 'Task overview': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/advertising-campaigns.ambr b/backend/tests/baserow/core/templates/__snapshots__/advertising-campaigns.ambr new file mode 100644 index 0000000000..cc9edcb52f --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/advertising-campaigns.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[advertising-campaigns] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/agile-product-roadmap.ambr b/backend/tests/baserow/core/templates/__snapshots__/agile-product-roadmap.ambr new file mode 100644 index 0000000000..a88081f246 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/agile-product-roadmap.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[agile-product-roadmap] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/all-fields.ambr b/backend/tests/baserow/core/templates/__snapshots__/all-fields.ambr new file mode 100644 index 0000000000..eb4027f41e --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/all-fields.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[all-fields] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/andon-calls.ambr b/backend/tests/baserow/core/templates/__snapshots__/andon-calls.ambr new file mode 100644 index 0000000000..4484aff038 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/andon-calls.ambr @@ -0,0 +1,184 @@ +# serializer version: 1 +# name: test_template_snapshot[andon-calls] + dict({ + 'builder': dict({ + 'Add new call(4/4)': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Select category (2/4)': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Select reason (3/4)': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Select stations (1/4)': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/apartment-hunt.ambr b/backend/tests/baserow/core/templates/__snapshots__/apartment-hunt.ambr new file mode 100644 index 0000000000..be363f26f5 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/apartment-hunt.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[apartment-hunt] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/app-pitch-planner.ambr b/backend/tests/baserow/core/templates/__snapshots__/app-pitch-planner.ambr new file mode 100644 index 0000000000..280f4b21d7 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/app-pitch-planner.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[app-pitch-planner] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/applicant-tracker.ambr b/backend/tests/baserow/core/templates/__snapshots__/applicant-tracker.ambr new file mode 100644 index 0000000000..f91962d957 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/applicant-tracker.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[applicant-tracker] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/asset-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/asset-management.ambr new file mode 100644 index 0000000000..4b13e20d49 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/asset-management.ambr @@ -0,0 +1,813 @@ +# serializer version: 1 +# name: test_template_snapshot[asset-management] + dict({ + 'builder': dict({ + 'Add Maintenance': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Add issue': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Add replacement': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'column', + }), + ]), + 'All assets': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Asset details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'Department assets': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Home': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Issue details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Issues & Maintenance': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Maintenance details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Replacement details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/benefit-show-manager.ambr b/backend/tests/baserow/core/templates/__snapshots__/benefit-show-manager.ambr new file mode 100644 index 0000000000..64e6a730ab --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/benefit-show-manager.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[benefit-show-manager] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/beverage-sales-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/beverage-sales-management.ambr new file mode 100644 index 0000000000..bf09723c13 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/beverage-sales-management.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[beverage-sales-management] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/blog-post-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/blog-post-management.ambr new file mode 100644 index 0000000000..177a50f4dd --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/blog-post-management.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[blog-post-management] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/book-catalog.ambr b/backend/tests/baserow/core/templates/__snapshots__/book-catalog.ambr new file mode 100644 index 0000000000..1bb2934e51 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/book-catalog.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[book-catalog] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/book-writing-guide.ambr b/backend/tests/baserow/core/templates/__snapshots__/book-writing-guide.ambr new file mode 100644 index 0000000000..f07517e86e --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/book-writing-guide.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[book-writing-guide] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/brand-assets-manager.ambr b/backend/tests/baserow/core/templates/__snapshots__/brand-assets-manager.ambr new file mode 100644 index 0000000000..dbda4e7836 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/brand-assets-manager.ambr @@ -0,0 +1,175 @@ +# serializer version: 1 +# name: test_template_snapshot[brand-assets-manager] + dict({ + 'builder': dict({ + 'Asset details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Assets': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/bucket-list.ambr b/backend/tests/baserow/core/templates/__snapshots__/bucket-list.ambr new file mode 100644 index 0000000000..569cea712a --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/bucket-list.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[bucket-list] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/business-conference-event.ambr b/backend/tests/baserow/core/templates/__snapshots__/business-conference-event.ambr new file mode 100644 index 0000000000..ecc68c1a87 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/business-conference-event.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[business-conference-event] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/business-expenses.ambr b/backend/tests/baserow/core/templates/__snapshots__/business-expenses.ambr new file mode 100644 index 0000000000..e2ac7012f8 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/business-expenses.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[business-expenses] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/business-goal-tracker-okrs.ambr b/backend/tests/baserow/core/templates/__snapshots__/business-goal-tracker-okrs.ambr new file mode 100644 index 0000000000..cefdd5d60d --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/business-goal-tracker-okrs.ambr @@ -0,0 +1,425 @@ +# serializer version: 1 +# name: test_template_snapshot[business-goal-tracker-okrs] + dict({ + 'builder': dict({ + 'Employee details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Employees': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + ]), + 'Homepage': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + ]), + 'Key result details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Key results': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Objective details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Objectives': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/call-center-log.ambr b/backend/tests/baserow/core/templates/__snapshots__/call-center-log.ambr new file mode 100644 index 0000000000..f06f450afb --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/call-center-log.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[call-center-log] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/campaign-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/campaign-management.ambr new file mode 100644 index 0000000000..fb0b13a216 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/campaign-management.ambr @@ -0,0 +1,533 @@ +# serializer version: 1 +# name: test_template_snapshot[campaign-management] + dict({ + 'builder': dict({ + 'Activity details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Add new activity': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Campaign details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Channel details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Home': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Metric details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/car-comparison.ambr b/backend/tests/baserow/core/templates/__snapshots__/car-comparison.ambr new file mode 100644 index 0000000000..e1ac11a2ef --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/car-comparison.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[car-comparison] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/car-dealership-inventory.ambr b/backend/tests/baserow/core/templates/__snapshots__/car-dealership-inventory.ambr new file mode 100644 index 0000000000..eb8d49c756 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/car-dealership-inventory.ambr @@ -0,0 +1,1418 @@ +# serializer version: 1 +# name: test_template_snapshot[car-dealership-inventory] + dict({ + 'builder': dict({ + 'Add review': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Car details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Car details sold': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Car details without offer': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Car offer': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Car offer confirmation': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Cars': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + ]), + 'Contact': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Contact confirmation': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'Homepage': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Profile': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'footer', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/car-dealership-services.ambr b/backend/tests/baserow/core/templates/__snapshots__/car-dealership-services.ambr new file mode 100644 index 0000000000..a01e205954 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/car-dealership-services.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[car-dealership-services] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/car-hunt.ambr b/backend/tests/baserow/core/templates/__snapshots__/car-hunt.ambr new file mode 100644 index 0000000000..f7cbcab7b9 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/car-hunt.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[car-hunt] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/car-maintenance-log.ambr b/backend/tests/baserow/core/templates/__snapshots__/car-maintenance-log.ambr new file mode 100644 index 0000000000..af96c555da --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/car-maintenance-log.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[car-maintenance-log] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/city-tours.ambr b/backend/tests/baserow/core/templates/__snapshots__/city-tours.ambr new file mode 100644 index 0000000000..c4ba1113d0 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/city-tours.ambr @@ -0,0 +1,247 @@ +# serializer version: 1 +# name: test_template_snapshot[city-tours] + dict({ + 'builder': dict({ + 'Highlights details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + ]), + 'Homepage': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Tour details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Tours': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/commercial-property-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/commercial-property-management.ambr new file mode 100644 index 0000000000..c54031e76e --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/commercial-property-management.ambr @@ -0,0 +1,326 @@ +# serializer version: 1 +# name: test_template_snapshot[commercial-property-management] + dict({ + 'builder': dict({ + 'Building details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Dashboard': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Lease details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + ]), + 'type': 'column', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Service request details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Unit details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/company-advertising-campaigns.ambr b/backend/tests/baserow/core/templates/__snapshots__/company-advertising-campaigns.ambr new file mode 100644 index 0000000000..af5b415760 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/company-advertising-campaigns.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[company-advertising-campaigns] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/company-asset-tracker.ambr b/backend/tests/baserow/core/templates/__snapshots__/company-asset-tracker.ambr new file mode 100644 index 0000000000..1481233ab2 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/company-asset-tracker.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[company-asset-tracker] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/company-blog-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/company-blog-management.ambr new file mode 100644 index 0000000000..7d60a66a21 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/company-blog-management.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[company-blog-management] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/competitor-analysis.ambr b/backend/tests/baserow/core/templates/__snapshots__/competitor-analysis.ambr new file mode 100644 index 0000000000..9fc7cf25a2 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/competitor-analysis.ambr @@ -0,0 +1,148 @@ +# serializer version: 1 +# name: test_template_snapshot[competitor-analysis] + dict({ + 'builder': dict({ + 'Details': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Homepage': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/compliance-assessment-builder.ambr b/backend/tests/baserow/core/templates/__snapshots__/compliance-assessment-builder.ambr new file mode 100644 index 0000000000..53068f6ac0 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/compliance-assessment-builder.ambr @@ -0,0 +1,424 @@ +# serializer version: 1 +# name: test_template_snapshot[compliance-assessment-builder] + dict({ + 'builder': dict({ + 'Add assessment': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Assessment details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Completed responses': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Home': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Non completed responses': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Non-completed responses details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'Question choice': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Question rating': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'rating_input', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Question text': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Response overview': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Select questions': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'checkbox', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Update question choice': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Update question rating': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'rating_input', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Update question text': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/content-scheduling-manager.ambr b/backend/tests/baserow/core/templates/__snapshots__/content-scheduling-manager.ambr new file mode 100644 index 0000000000..590cfef03b --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/content-scheduling-manager.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[content-scheduling-manager] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/contract-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/contract-management.ambr new file mode 100644 index 0000000000..138314258b --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/contract-management.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[contract-management] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/copy-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/copy-management.ambr new file mode 100644 index 0000000000..6a7be28553 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/copy-management.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[copy-management] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/custom-code-demos.ambr b/backend/tests/baserow/core/templates/__snapshots__/custom-code-demos.ambr new file mode 100644 index 0000000000..17faafdfed --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/custom-code-demos.ambr @@ -0,0 +1,61 @@ +# serializer version: 1 +# name: test_template_snapshot[custom-code-demos] + dict({ + 'builder': dict({ + '9. Sticky button': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/customer-research.ambr b/backend/tests/baserow/core/templates/__snapshots__/customer-research.ambr new file mode 100644 index 0000000000..48ac5eeba6 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/customer-research.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[customer-research] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/electronic-health-record.ambr b/backend/tests/baserow/core/templates/__snapshots__/electronic-health-record.ambr new file mode 100644 index 0000000000..2595d4d158 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/electronic-health-record.ambr @@ -0,0 +1,474 @@ +# serializer version: 1 +# name: test_template_snapshot[electronic-health-record] + dict({ + 'builder': dict({ + 'Examination details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + ]), + 'Homepage': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Patient file': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Patient file (print)': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/elementary-school-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/elementary-school-management.ambr new file mode 100644 index 0000000000..b3dd677132 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/elementary-school-management.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[elementary-school-management] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/email-marketing-campaigns.ambr b/backend/tests/baserow/core/templates/__snapshots__/email-marketing-campaigns.ambr new file mode 100644 index 0000000000..a163d17972 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/email-marketing-campaigns.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[email-marketing-campaigns] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/emergency-triage-log.ambr b/backend/tests/baserow/core/templates/__snapshots__/emergency-triage-log.ambr new file mode 100644 index 0000000000..50de4f0b64 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/emergency-triage-log.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[emergency-triage-log] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/employee-directory.ambr b/backend/tests/baserow/core/templates/__snapshots__/employee-directory.ambr new file mode 100644 index 0000000000..94a94c8623 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/employee-directory.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[employee-directory] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/esg-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/esg-management.ambr new file mode 100644 index 0000000000..9c9aebd049 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/esg-management.ambr @@ -0,0 +1,1387 @@ +# serializer version: 1 +# name: test_template_snapshot[esg-management] + dict({ + 'builder': dict({ + 'Action details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Actions': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + ]), + 'Employee details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Employees': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Home': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Initiative details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Initiatives': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Target details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/event-planning.ambr b/backend/tests/baserow/core/templates/__snapshots__/event-planning.ambr new file mode 100644 index 0000000000..307a70e5b1 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/event-planning.ambr @@ -0,0 +1,226 @@ +# serializer version: 1 +# name: test_template_snapshot[event-planning] + dict({ + 'builder': dict({ + 'Event details': list([ + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Event details (no registration)': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Homepage': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Profile': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Sign in': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'Sign up': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/event-staffing.ambr b/backend/tests/baserow/core/templates/__snapshots__/event-staffing.ambr new file mode 100644 index 0000000000..d4f999458a --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/event-staffing.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[event-staffing] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/favorite-food-places.ambr b/backend/tests/baserow/core/templates/__snapshots__/favorite-food-places.ambr new file mode 100644 index 0000000000..14dd475b47 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/favorite-food-places.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[favorite-food-places] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/formulas.ambr b/backend/tests/baserow/core/templates/__snapshots__/formulas.ambr new file mode 100644 index 0000000000..3ed43ddc7f --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/formulas.ambr @@ -0,0 +1,121 @@ +# serializer version: 1 +# name: test_template_snapshot[formulas] + dict({ + 'builder': dict({ + 'Task details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + '__shared__': list([ + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/frequent-flyer-rewards.ambr b/backend/tests/baserow/core/templates/__snapshots__/frequent-flyer-rewards.ambr new file mode 100644 index 0000000000..2ccd345244 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/frequent-flyer-rewards.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[frequent-flyer-rewards] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/furniture-fixtures-and-equipment-manager.ambr b/backend/tests/baserow/core/templates/__snapshots__/furniture-fixtures-and-equipment-manager.ambr new file mode 100644 index 0000000000..e3bbc06f63 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/furniture-fixtures-and-equipment-manager.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[furniture-fixtures-and-equipment-manager] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/gemba-walks.ambr b/backend/tests/baserow/core/templates/__snapshots__/gemba-walks.ambr new file mode 100644 index 0000000000..229911f1db --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/gemba-walks.ambr @@ -0,0 +1,292 @@ +# serializer version: 1 +# name: test_template_snapshot[gemba-walks] + dict({ + 'builder': dict({ + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Observation Details': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Select Walk': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Walk Details': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/grocery-planner.ambr b/backend/tests/baserow/core/templates/__snapshots__/grocery-planner.ambr new file mode 100644 index 0000000000..f45a29a648 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/grocery-planner.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[grocery-planner] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/growth-experiments.ambr b/backend/tests/baserow/core/templates/__snapshots__/growth-experiments.ambr new file mode 100644 index 0000000000..817b5ee603 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/growth-experiments.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[growth-experiments] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/health-inspection-reports.ambr b/backend/tests/baserow/core/templates/__snapshots__/health-inspection-reports.ambr new file mode 100644 index 0000000000..6c21461cd2 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/health-inspection-reports.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[health-inspection-reports] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/healthcare-facility-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/healthcare-facility-management.ambr new file mode 100644 index 0000000000..b88de80b8a --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/healthcare-facility-management.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[healthcare-facility-management] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/hiking-guide.ambr b/backend/tests/baserow/core/templates/__snapshots__/hiking-guide.ambr new file mode 100644 index 0000000000..f2a7c0f5ba --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/hiking-guide.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[hiking-guide] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/holiday-shopping.ambr b/backend/tests/baserow/core/templates/__snapshots__/holiday-shopping.ambr new file mode 100644 index 0000000000..7dc6ece7b1 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/holiday-shopping.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[holiday-shopping] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/home-inventory.ambr b/backend/tests/baserow/core/templates/__snapshots__/home-inventory.ambr new file mode 100644 index 0000000000..d151a7de83 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/home-inventory.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[home-inventory] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/home-remodeling.ambr b/backend/tests/baserow/core/templates/__snapshots__/home-remodeling.ambr new file mode 100644 index 0000000000..86fd5ccd44 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/home-remodeling.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[home-remodeling] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/hotel-bookings.ambr b/backend/tests/baserow/core/templates/__snapshots__/hotel-bookings.ambr new file mode 100644 index 0000000000..be95419ce0 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/hotel-bookings.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[hotel-bookings] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/house-search.ambr b/backend/tests/baserow/core/templates/__snapshots__/house-search.ambr new file mode 100644 index 0000000000..4498ed83b4 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/house-search.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[house-search] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/household-chores.ambr b/backend/tests/baserow/core/templates/__snapshots__/household-chores.ambr new file mode 100644 index 0000000000..77659c73df --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/household-chores.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[household-chores] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/incident-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/incident-management.ambr new file mode 100644 index 0000000000..77cfc1f7b2 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/incident-management.ambr @@ -0,0 +1,641 @@ +# serializer version: 1 +# name: test_template_snapshot[incident-management] + dict({ + 'builder': dict({ + 'Add New Incident': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'checkbox', + }), + dict({ + 'children': list([ + ]), + 'type': 'checkbox', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Add New Response': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Incident Details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'checkbox', + }), + dict({ + 'children': list([ + ]), + 'type': 'checkbox', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Incident Management': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Response Details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/individual-medical-record.ambr b/backend/tests/baserow/core/templates/__snapshots__/individual-medical-record.ambr new file mode 100644 index 0000000000..05d0b9c5c4 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/individual-medical-record.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[individual-medical-record] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/inspections-compliance.ambr b/backend/tests/baserow/core/templates/__snapshots__/inspections-compliance.ambr new file mode 100644 index 0000000000..b974f463a4 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/inspections-compliance.ambr @@ -0,0 +1,160 @@ +# serializer version: 1 +# name: test_template_snapshot[inspections-compliance] + dict({ + 'builder': dict({ + 'All Equipments': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Inspector Workspace': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/intake-qualification.ambr b/backend/tests/baserow/core/templates/__snapshots__/intake-qualification.ambr new file mode 100644 index 0000000000..f53e0a3c67 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/intake-qualification.ambr @@ -0,0 +1,369 @@ +# serializer version: 1 +# name: test_template_snapshot[intake-qualification] + dict({ + 'builder': dict({ + 'Dashboard': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'Team Login': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'Update Campaign': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_file', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'Update Log': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'Update Service': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'checkbox', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'simple_container', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/interview-questions.ambr b/backend/tests/baserow/core/templates/__snapshots__/interview-questions.ambr new file mode 100644 index 0000000000..0244ebfd8c --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/interview-questions.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[interview-questions] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/job-interviews.ambr b/backend/tests/baserow/core/templates/__snapshots__/job-interviews.ambr new file mode 100644 index 0000000000..56e97ebff1 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/job-interviews.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[job-interviews] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/job-search.ambr b/backend/tests/baserow/core/templates/__snapshots__/job-search.ambr new file mode 100644 index 0000000000..ba0b4938c4 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/job-search.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[job-search] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/lead-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/lead-management.ambr new file mode 100644 index 0000000000..384743aa04 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/lead-management.ambr @@ -0,0 +1,370 @@ +# serializer version: 1 +# name: test_template_snapshot[lead-management] + dict({ + 'builder': dict({ + 'Account manager details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Lead details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'column', + }), + ]), + 'Leads': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Leads by account manager': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Leads by source': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Source details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Target group details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/legal-case-tracker.ambr b/backend/tests/baserow/core/templates/__snapshots__/legal-case-tracker.ambr new file mode 100644 index 0000000000..f0a486f17d --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/legal-case-tracker.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[legal-case-tracker] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/lightweight-crm.ambr b/backend/tests/baserow/core/templates/__snapshots__/lightweight-crm.ambr new file mode 100644 index 0000000000..a3d28f24da --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/lightweight-crm.ambr @@ -0,0 +1,2183 @@ +# serializer version: 1 +# name: test_template_snapshot[lightweight-crm] + dict({ + 'builder': dict({ + 'Activities': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Activity add': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Activity details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Activity details (edit)': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Companies': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Company add': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Company details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Contact add': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Contact details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Contact details (edit)': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Contacts': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Home': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Pipeline add': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Pipeline details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Pipeline details (edit)': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Pipelines': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/media-tracking.ambr b/backend/tests/baserow/core/templates/__snapshots__/media-tracking.ambr new file mode 100644 index 0000000000..3b1abe3212 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/media-tracking.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[media-tracking] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/meeting-minutes.ambr b/backend/tests/baserow/core/templates/__snapshots__/meeting-minutes.ambr new file mode 100644 index 0000000000..2e68658acc --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/meeting-minutes.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[meeting-minutes] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/meeting-room-booking.ambr b/backend/tests/baserow/core/templates/__snapshots__/meeting-room-booking.ambr new file mode 100644 index 0000000000..8e1cd355c2 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/meeting-room-booking.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[meeting-room-booking] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/moving-company-manager.ambr b/backend/tests/baserow/core/templates/__snapshots__/moving-company-manager.ambr new file mode 100644 index 0000000000..435a797290 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/moving-company-manager.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[moving-company-manager] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/net-promoter-score.ambr b/backend/tests/baserow/core/templates/__snapshots__/net-promoter-score.ambr new file mode 100644 index 0000000000..e85a2a154a --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/net-promoter-score.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[net-promoter-score] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/new-hire-onboarding.ambr b/backend/tests/baserow/core/templates/__snapshots__/new-hire-onboarding.ambr new file mode 100644 index 0000000000..6e4a0b4b57 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/new-hire-onboarding.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[new-hire-onboarding] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/non-emergency-call-center.ambr b/backend/tests/baserow/core/templates/__snapshots__/non-emergency-call-center.ambr new file mode 100644 index 0000000000..8285a6ae58 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/non-emergency-call-center.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[non-emergency-call-center] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/non-profit-organization-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/non-profit-organization-management.ambr new file mode 100644 index 0000000000..0710a3cb02 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/non-profit-organization-management.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[non-profit-organization-management] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/nonprofit-grant-tracker.ambr b/backend/tests/baserow/core/templates/__snapshots__/nonprofit-grant-tracker.ambr new file mode 100644 index 0000000000..c2d59cb103 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/nonprofit-grant-tracker.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[nonprofit-grant-tracker] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/objectives-key-results.ambr b/backend/tests/baserow/core/templates/__snapshots__/objectives-key-results.ambr new file mode 100644 index 0000000000..34396e5914 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/objectives-key-results.ambr @@ -0,0 +1,225 @@ +# serializer version: 1 +# name: test_template_snapshot[objectives-key-results] + dict({ + 'builder': dict({ + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Objective Details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Objectives': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'repeat', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/office-guest-log.ambr b/backend/tests/baserow/core/templates/__snapshots__/office-guest-log.ambr new file mode 100644 index 0000000000..ad491459b5 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/office-guest-log.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[office-guest-log] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/online-freelancer-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/online-freelancer-management.ambr new file mode 100644 index 0000000000..8d16f802dc --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/online-freelancer-management.ambr @@ -0,0 +1,317 @@ +# serializer version: 1 +# name: test_template_snapshot[online-freelancer-management] + dict({ + 'builder': dict({ + 'Dashboard': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Edit project details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Project details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/ooo-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/ooo-management.ambr new file mode 100644 index 0000000000..beb417df1f --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/ooo-management.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[ooo-management] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/order-kiosk.ambr b/backend/tests/baserow/core/templates/__snapshots__/order-kiosk.ambr new file mode 100644 index 0000000000..ee5dabec73 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/order-kiosk.ambr @@ -0,0 +1,435 @@ +# serializer version: 1 +# name: test_template_snapshot[order-kiosk] + dict({ + 'builder': dict({ + 'Checkout': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'Cup selection': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Ingredients': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Menu': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Order detail confirmation': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Order details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Quantity selection': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Welcome': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/password-reset.ambr b/backend/tests/baserow/core/templates/__snapshots__/password-reset.ambr new file mode 100644 index 0000000000..5050f00d62 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/password-reset.ambr @@ -0,0 +1,127 @@ +# serializer version: 1 +# name: test_template_snapshot[password-reset] + dict({ + 'builder': dict({ + 'Forgot password': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'Home': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'Reset password': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'simple_container', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/performance-reviews.ambr b/backend/tests/baserow/core/templates/__snapshots__/performance-reviews.ambr new file mode 100644 index 0000000000..082770dbd0 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/performance-reviews.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[performance-reviews] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/personal-finance-manager.ambr b/backend/tests/baserow/core/templates/__snapshots__/personal-finance-manager.ambr new file mode 100644 index 0000000000..27db88d090 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/personal-finance-manager.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[personal-finance-manager] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/personal-health-log.ambr b/backend/tests/baserow/core/templates/__snapshots__/personal-health-log.ambr new file mode 100644 index 0000000000..719e946fb3 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/personal-health-log.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[personal-health-log] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/personal-task-manager.ambr b/backend/tests/baserow/core/templates/__snapshots__/personal-task-manager.ambr new file mode 100644 index 0000000000..9b647476fb --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/personal-task-manager.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[personal-task-manager] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/podcast-content-manager.ambr b/backend/tests/baserow/core/templates/__snapshots__/podcast-content-manager.ambr new file mode 100644 index 0000000000..c688c78210 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/podcast-content-manager.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[podcast-content-manager] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/policy-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/policy-management.ambr new file mode 100644 index 0000000000..ae3f6389ab --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/policy-management.ambr @@ -0,0 +1,680 @@ +# serializer version: 1 +# name: test_template_snapshot[policy-management] + dict({ + 'builder': dict({ + 'Add new version': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Home': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'My policies': list([ + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Policy details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Policy version details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Policy versions to approve': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Version approval': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/political-campaign-contributions.ambr b/backend/tests/baserow/core/templates/__snapshots__/political-campaign-contributions.ambr new file mode 100644 index 0000000000..e3eaee1a18 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/political-campaign-contributions.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[political-campaign-contributions] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/product-roadmap.ambr b/backend/tests/baserow/core/templates/__snapshots__/product-roadmap.ambr new file mode 100644 index 0000000000..467873efcb --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/product-roadmap.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[product-roadmap] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/program-management-kpi.ambr b/backend/tests/baserow/core/templates/__snapshots__/program-management-kpi.ambr new file mode 100644 index 0000000000..ff89598c70 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/program-management-kpi.ambr @@ -0,0 +1,386 @@ +# serializer version: 1 +# name: test_template_snapshot[program-management-kpi] + dict({ + 'builder': dict({ + 'Donor Reporting Portal': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'Executive Dashboard': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'KPI Performance Tracking': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'Login Page': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Program Health & Deliverables': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'Task Execution Board': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'simple_container', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/project-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/project-management.ambr new file mode 100644 index 0000000000..7f858be84b --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/project-management.ambr @@ -0,0 +1,463 @@ +# serializer version: 1 +# name: test_template_snapshot[project-management] + dict({ + 'builder': dict({ + 'Phase details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Project details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/project-tracker.ambr b/backend/tests/baserow/core/templates/__snapshots__/project-tracker.ambr new file mode 100644 index 0000000000..eb54f8ce4d --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/project-tracker.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[project-tracker] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/property-showings.ambr b/backend/tests/baserow/core/templates/__snapshots__/property-showings.ambr new file mode 100644 index 0000000000..a69c41a236 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/property-showings.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[property-showings] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/public-library-inventory.ambr b/backend/tests/baserow/core/templates/__snapshots__/public-library-inventory.ambr new file mode 100644 index 0000000000..0d2efc8350 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/public-library-inventory.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[public-library-inventory] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/purchase-order-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/purchase-order-management.ambr new file mode 100644 index 0000000000..16c3dc803d --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/purchase-order-management.ambr @@ -0,0 +1,581 @@ +# serializer version: 1 +# name: test_template_snapshot[purchase-order-management] + dict({ + 'builder': dict({ + 'Add request': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Add request details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'column', + }), + ]), + 'Homepage': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Request details': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Request details update': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/qa-test-scripts.ambr b/backend/tests/baserow/core/templates/__snapshots__/qa-test-scripts.ambr new file mode 100644 index 0000000000..9764cfcd59 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/qa-test-scripts.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[qa-test-scripts] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/recipe-book.ambr b/backend/tests/baserow/core/templates/__snapshots__/recipe-book.ambr new file mode 100644 index 0000000000..28e4eab9b7 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/recipe-book.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[recipe-book] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/remote-team-hub.ambr b/backend/tests/baserow/core/templates/__snapshots__/remote-team-hub.ambr new file mode 100644 index 0000000000..4684aa04d2 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/remote-team-hub.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[remote-team-hub] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/restaurant-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/restaurant-management.ambr new file mode 100644 index 0000000000..370a2d391e --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/restaurant-management.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[restaurant-management] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/risk-assessment-and-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/risk-assessment-and-management.ambr new file mode 100644 index 0000000000..239bc48809 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/risk-assessment-and-management.ambr @@ -0,0 +1,745 @@ +# serializer version: 1 +# name: test_template_snapshot[risk-assessment-and-management] + dict({ + 'builder': dict({ + 'Add New Assessment': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Add New Mitigation Plan': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Add New Risk': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Assessment details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Mitigation plan details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Registered risk details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Risk Management': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/sales-pipeline-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/sales-pipeline-management.ambr new file mode 100644 index 0000000000..222a16b521 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/sales-pipeline-management.ambr @@ -0,0 +1,763 @@ +# serializer version: 1 +# name: test_template_snapshot[sales-pipeline-management] + dict({ + 'builder': dict({ + 'Account details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Accounts': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Edit opportunity': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Home': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + ]), + 'Opportunities': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Product and services details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Products and services': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/santa-logistics.ambr b/backend/tests/baserow/core/templates/__snapshots__/santa-logistics.ambr new file mode 100644 index 0000000000..c3b6cb2663 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/santa-logistics.ambr @@ -0,0 +1,251 @@ +# serializer version: 1 +# name: test_template_snapshot[santa-logistics] + dict({ + 'builder': dict({ + 'Screen': list([ + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + ]), + 'type': 'column', + }), + ]), + '__shared__': list([ + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/single-trip-planner.ambr b/backend/tests/baserow/core/templates/__snapshots__/single-trip-planner.ambr new file mode 100644 index 0000000000..df13f96b1e --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/single-trip-planner.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[single-trip-planner] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/skill-discovery-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/skill-discovery-management.ambr new file mode 100644 index 0000000000..c76fa182d2 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/skill-discovery-management.ambr @@ -0,0 +1,1342 @@ +# serializer version: 1 +# name: test_template_snapshot[skill-discovery-management] + dict({ + 'builder': dict({ + 'Add ability assessment': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'checkbox', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'checkbox', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'checkbox', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Add accelerate assessment': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Add performance review': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Add potential assessment': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'All employees': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Edit ability assessment': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'checkbox', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'checkbox', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'checkbox', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Edit accelerate assessment': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Edit performance review': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Edit potential assessment': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Employee Details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'TOOD: Ability assessment': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'TOOD: Performance review': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'TOOD: Potential assessment': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/smb-business-plan.ambr b/backend/tests/baserow/core/templates/__snapshots__/smb-business-plan.ambr new file mode 100644 index 0000000000..fc96f55305 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/smb-business-plan.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[smb-business-plan] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/software-application-bug-tracker.ambr b/backend/tests/baserow/core/templates/__snapshots__/software-application-bug-tracker.ambr new file mode 100644 index 0000000000..642cd88f59 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/software-application-bug-tracker.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[software-application-bug-tracker] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/sqcdp.ambr b/backend/tests/baserow/core/templates/__snapshots__/sqcdp.ambr new file mode 100644 index 0000000000..cb367ea772 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/sqcdp.ambr @@ -0,0 +1,261 @@ +# serializer version: 1 +# name: test_template_snapshot[sqcdp] + dict({ + 'builder': dict({ + 'Page': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + ]), + '__shared__': list([ + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/staff-development.ambr b/backend/tests/baserow/core/templates/__snapshots__/staff-development.ambr new file mode 100644 index 0000000000..836ea86109 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/staff-development.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[staff-development] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/standard-operating-procedures.ambr b/backend/tests/baserow/core/templates/__snapshots__/standard-operating-procedures.ambr new file mode 100644 index 0000000000..329e94c878 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/standard-operating-procedures.ambr @@ -0,0 +1,217 @@ +# serializer version: 1 +# name: test_template_snapshot[standard-operating-procedures] + dict({ + 'builder': dict({ + 'Home': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Procedure details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Procedure improvements': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/student-planner.ambr b/backend/tests/baserow/core/templates/__snapshots__/student-planner.ambr new file mode 100644 index 0000000000..daed9b5869 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/student-planner.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[student-planner] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/supply-chain-procurement-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/supply-chain-procurement-management.ambr new file mode 100644 index 0000000000..fd8061b75a --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/supply-chain-procurement-management.ambr @@ -0,0 +1,997 @@ +# serializer version: 1 +# name: test_template_snapshot[supply-chain-procurement-management] + dict({ + 'builder': dict({ + 'Add certificate': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Add contract': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_file', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Add new consumption': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Add purchase request': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Assessment details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'rating_input', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'rating_input', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + ]), + 'Contract details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'iframe', + }), + ]), + 'Home': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Inventory': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Product and service details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Products and services': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Purchase request details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Supplier details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Suppliers': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/swot-analysis.ambr b/backend/tests/baserow/core/templates/__snapshots__/swot-analysis.ambr new file mode 100644 index 0000000000..5b53c4df0e --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/swot-analysis.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[swot-analysis] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/task-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/task-management.ambr new file mode 100644 index 0000000000..4fc11d0b4b --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/task-management.ambr @@ -0,0 +1,1334 @@ +# serializer version: 1 +# name: test_template_snapshot[task-management] + dict({ + 'builder': dict({ + 'Dahboard': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Equipment': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Equipment details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Project details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Projects': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Staff': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Staff details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Task details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Tasks': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/teacher-lesson-plans.ambr b/backend/tests/baserow/core/templates/__snapshots__/teacher-lesson-plans.ambr new file mode 100644 index 0000000000..437484d858 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/teacher-lesson-plans.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[teacher-lesson-plans] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/team-check-ins.ambr b/backend/tests/baserow/core/templates/__snapshots__/team-check-ins.ambr new file mode 100644 index 0000000000..c6b486d2b3 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/team-check-ins.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[team-check-ins] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/tourism-agency-manager.ambr b/backend/tests/baserow/core/templates/__snapshots__/tourism-agency-manager.ambr new file mode 100644 index 0000000000..c7105178c6 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/tourism-agency-manager.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[tourism-agency-manager] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/trick-or-treat.ambr b/backend/tests/baserow/core/templates/__snapshots__/trick-or-treat.ambr new file mode 100644 index 0000000000..0ee275e8b8 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/trick-or-treat.ambr @@ -0,0 +1,552 @@ +# serializer version: 1 +# name: test_template_snapshot[trick-or-treat] + dict({ + 'builder': dict({ + 'Add treat': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Edit treat': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Homepage': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'Loot': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Mansion details (not-visited)': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'Mansion details (tricked)': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'Mansion details (visited)': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Quests': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'Route': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'repeat', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/trip-history.ambr b/backend/tests/baserow/core/templates/__snapshots__/trip-history.ambr new file mode 100644 index 0000000000..4eeb71b6ae --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/trip-history.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[trip-history] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/university-admissions-management.ambr b/backend/tests/baserow/core/templates/__snapshots__/university-admissions-management.ambr new file mode 100644 index 0000000000..9bfa4d2328 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/university-admissions-management.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[university-admissions-management] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/user-feedback.ambr b/backend/tests/baserow/core/templates/__snapshots__/user-feedback.ambr new file mode 100644 index 0000000000..25d5ebc6b0 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/user-feedback.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[user-feedback] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/venture-capital-investments.ambr b/backend/tests/baserow/core/templates/__snapshots__/venture-capital-investments.ambr new file mode 100644 index 0000000000..c865a20e1d --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/venture-capital-investments.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[venture-capital-investments] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/web-app-uat.ambr b/backend/tests/baserow/core/templates/__snapshots__/web-app-uat.ambr new file mode 100644 index 0000000000..ec09896723 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/web-app-uat.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[web-app-uat] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/wedding-client-planner.ambr b/backend/tests/baserow/core/templates/__snapshots__/wedding-client-planner.ambr new file mode 100644 index 0000000000..7df8e5d5a4 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/wedding-client-planner.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[wedding-client-planner] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/wedding-planning.ambr b/backend/tests/baserow/core/templates/__snapshots__/wedding-planning.ambr new file mode 100644 index 0000000000..88b69834e2 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/wedding-planning.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[wedding-planning] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/work-management-platform.ambr b/backend/tests/baserow/core/templates/__snapshots__/work-management-platform.ambr new file mode 100644 index 0000000000..c42d9f5801 --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/work-management-platform.ambr @@ -0,0 +1,1828 @@ +# serializer version: 1 +# name: test_template_snapshot[work-management-platform] + dict({ + 'builder': dict({ + 'Add milestone': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'column', + }), + ]), + 'Add project': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'Add task': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + ]), + 'type': 'column', + }), + ]), + 'Home': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + ]), + 'Login': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'auth_form', + }), + ]), + 'Project details': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Project files': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_file', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + ]), + 'Project milestones': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Project tasks': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Project team': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + ]), + 'Projects': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'Task actions': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + ]), + 'Task dependencies': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + ]), + 'Task details': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'choice', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'datetime_picker', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + dict({ + 'children': list([ + ]), + 'type': 'record_selector', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + ]), + 'Task files': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + dict({ + 'children': list([ + ]), + 'type': 'input_file', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + 'type': 'column', + }), + ]), + 'Task messages': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'button', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'input_text', + }), + ]), + 'type': 'form_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'simple_container', + }), + ]), + 'type': 'repeat', + }), + ]), + 'type': 'column', + }), + ]), + 'User details': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'link', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + dict({ + 'children': list([ + ]), + 'type': 'heading', + }), + dict({ + 'children': list([ + ]), + 'type': 'table', + }), + ]), + '__shared__': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + dict({ + 'children': list([ + ]), + 'type': 'image', + }), + dict({ + 'children': list([ + ]), + 'type': 'text', + }), + ]), + 'type': 'column', + }), + dict({ + 'children': list([ + ]), + 'type': 'menu', + }), + ]), + 'type': 'header', + }), + ]), + }), + }) +# --- diff --git a/backend/tests/baserow/core/templates/__snapshots__/workshops-and-trainings.ambr b/backend/tests/baserow/core/templates/__snapshots__/workshops-and-trainings.ambr new file mode 100644 index 0000000000..7b5b4722eb --- /dev/null +++ b/backend/tests/baserow/core/templates/__snapshots__/workshops-and-trainings.ambr @@ -0,0 +1,5 @@ +# serializer version: 1 +# name: test_template_snapshot[workshops-and-trainings] + dict({ + }) +# --- diff --git a/backend/tests/baserow/core/templates/conftest.py b/backend/tests/baserow/core/templates/conftest.py new file mode 100644 index 0000000000..27bc1b3402 --- /dev/null +++ b/backend/tests/baserow/core/templates/conftest.py @@ -0,0 +1,17 @@ +import warnings + +import pytest + + +@pytest.fixture(autouse=True) +def _suppress_syrupy_location_warning(): + # syrupy warns when the snapshot file path doesn't follow its default + # naming convention (one file per test module). We use a custom extension + # that writes one file per template slug, so the warning is expected and + # can be safely silenced. + with warnings.catch_warnings(): + warnings.filterwarnings( + "ignore", + message="Can not relate snapshot location", + ) + yield diff --git a/backend/tests/baserow/core/templates/test_snapshots.py b/backend/tests/baserow/core/templates/test_snapshots.py new file mode 100644 index 0000000000..ae1a115383 --- /dev/null +++ b/backend/tests/baserow/core/templates/test_snapshots.py @@ -0,0 +1,71 @@ +import json +from pathlib import Path + +import pytest +from syrupy.assertion import SnapshotAssertion +from syrupy.extensions.amber import AmberSnapshotExtension +from syrupy.location import PyTestLocation + +from baserow.core.handler import CoreHandler +from baserow.core.models import Template +from baserow.core.registries import application_type_registry + +TEMPLATES_DIR = Path(__file__).parents[4] / "templates" + +_template_slugs = sorted( + p.stem + for p in TEMPLATES_DIR.glob("*.json") + if json.loads(p.read_text()).get("baserow_template_version") +) + + +class PerTemplateSnapshotExtension(AmberSnapshotExtension): + """ + An extension which changes the default snapshot behavior (one monolithic snapshot) + in favor of writing one .ambr file per template slug under __snapshots__/templates/. + """ + + @classmethod + def dirname(cls, *, test_location: "PyTestLocation", **kwargs) -> str: + return str(Path(test_location.filepath).parent / "__snapshots__") + + @classmethod + def get_file_basename( + cls, *, test_location: "PyTestLocation", index: int, **kwargs + ) -> str: + # node id: "...::test_template_snapshot[slug-name]" → "slug-name" + node_id = test_location.nodeid + if "[" in node_id: + return node_id.split("[", 1)[1].rstrip("]") + return super().get_file_basename( + test_location=test_location, index=index, **kwargs + ) + + +@pytest.fixture +def snapshot(snapshot: SnapshotAssertion) -> SnapshotAssertion: + return snapshot.use_extension(PerTemplateSnapshotExtension) + + +@pytest.mark.django_db +@pytest.mark.once_per_day_in_ci +@pytest.mark.parametrize("slug", _template_slugs) +def test_template_snapshot(slug: str, snapshot: SnapshotAssertion) -> None: + """ + Imports a single template and asserts the application structure matches the + stored snapshot. Run with `--snapshot-update` to (re)generate snapshots. + """ + + CoreHandler().sync_templates(pattern=slug) + + template = Template.objects.get(slug=slug) + applications = template.workspace.application_set.order_by("name") + + result = {} + for app in applications: + app_type = application_type_registry.get_by_model(app.specific_class) + serialized = app_type.serialize_for_regression_testing(app.specific) + if serialized is not None: + result[app_type.type] = serialized + + assert result == snapshot diff --git a/backend/uv.lock b/backend/uv.lock index 82471327ac..2a4c77153e 100644 --- a/backend/uv.lock +++ b/backend/uv.lock @@ -344,6 +344,7 @@ dev = [ { name = "ruff", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "rust-just", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "snoop", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, + { name = "syrupy", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "watchdog", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] @@ -476,6 +477,7 @@ dev = [ { name = "ruff", specifier = ">=0.8.0" }, { name = "rust-just", specifier = ">=1.46.0" }, { name = "snoop", specifier = "==0.6.0" }, + { name = "syrupy", specifier = "==5.1.0" }, { name = "watchdog", specifier = "==6.0.0" }, ] @@ -3657,6 +3659,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/18/c4/09985a03dba389d4fe16a9014147a7b02fa76ef3519bf5846462a485876d/starlette-0.51.0-py3-none-any.whl", hash = "sha256:fb460a3d6fd3c958d729fdd96aee297f89a51b0181f16401fe8fd4cb6129165d", size = 74133, upload-time = "2026-01-10T20:23:13.445Z" }, ] +[[package]] +name = "syrupy" +version = "5.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/68/4c/1b2be8898d8e0f4e0e85e98eee89f9b9e0cd3cfb30d4d6e25e8d2d8cfbae/syrupy-5.1.0.tar.gz", hash = "sha256:df543c7aa50d3cf1246e83d58fe490afe5f7dab7b41e74ecc0d8d23ae19bd4b8", size = 50495, upload-time = "2026-01-25T14:53:06.000Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/70/cf880c3b95a6034ef673e74b369941b42315c01f1554a5637a4f8b911009/syrupy-5.1.0-py3-none-any.whl", hash = "sha256:95162d2b05e61ed3e13f117b88dfab7c58bd6f90e66ebbf918e8a77114ad51c5", size = 51658, upload-time = "2026-01-25T14:53:05.000Z" }, +] + [[package]] name = "tenacity" version = "9.1.2" From e54ea1ffa34a71aaeea447769a77a2c774ae8a1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 15:05:57 +0200 Subject: [PATCH 2/3] chore(deps): bump ujson from 5.12.0 to 5.12.1 in /backend (#5360) Bumps [ujson](https://github.com/ultrajson/ultrajson) from 5.12.0 to 5.12.1. - [Release notes](https://github.com/ultrajson/ultrajson/releases) - [Commits](https://github.com/ultrajson/ultrajson/compare/5.12.0...5.12.1) --- updated-dependencies: - dependency-name: ujson dependency-version: 5.12.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- backend/uv.lock | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/backend/uv.lock b/backend/uv.lock index 2a4c77153e..82ae1cb952 100644 --- a/backend/uv.lock +++ b/backend/uv.lock @@ -3844,26 +3844,26 @@ wheels = [ [[package]] name = "ujson" -version = "5.12.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cb/3e/c35530c5ffc25b71c59ae0cd7b8f99df37313daa162ce1e2f7925f7c2877/ujson-5.12.0.tar.gz", hash = "sha256:14b2e1eb528d77bc0f4c5bd1a7ebc05e02b5b41beefb7e8567c9675b8b13bcf4", size = 7158451, upload-time = "2026-03-11T22:19:30.397Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/10/bd/9a8d693254bada62bfea75a507e014afcfdb6b9d047b6f8dd134bfefaf67/ujson-5.12.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:85833bca01aa5cae326ac759276dc175c5fa3f7b3733b7d543cf27f2df12d1ef", size = 56499, upload-time = "2026-03-11T22:18:45.431Z" }, - { url = "https://files.pythonhosted.org/packages/bd/2d/285a83df8176e18dcd675d1a4cff8f7620f003f30903ea43929406e98986/ujson-5.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d22cad98c2a10bbf6aa083a8980db6ed90d4285a841c4de892890c2b28286ef9", size = 53998, upload-time = "2026-03-11T22:18:47.184Z" }, - { url = "https://files.pythonhosted.org/packages/bf/8b/e2f09e16dabfa91f6a84555df34a4329fa7621e92ed054d170b9054b9bb2/ujson-5.12.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:99cc80facad240b0c2fb5a633044420878aac87a8e7c348b9486450cba93f27c", size = 57783, upload-time = "2026-03-11T22:18:48.271Z" }, - { url = "https://files.pythonhosted.org/packages/68/fb/ba1d06f3658a0c36d0ab3869ec3914f202bad0a9bde92654e41516c7bb13/ujson-5.12.0-cp314-cp314-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:d1831c07bd4dce53c4b666fa846c7eba4b7c414f2e641a4585b7f50b72f502dc", size = 60011, upload-time = "2026-03-11T22:18:49.284Z" }, - { url = "https://files.pythonhosted.org/packages/64/2b/3e322bf82d926d9857206cd5820438d78392d1f523dacecb8bd899952f73/ujson-5.12.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e00cec383eab2406c9e006bd4edb55d284e94bb943fda558326048178d26961", size = 57465, upload-time = "2026-03-11T22:18:50.584Z" }, - { url = "https://files.pythonhosted.org/packages/e9/fd/af72d69603f9885e5136509a529a4f6d88bf652b457263ff96aefcd3ab7d/ujson-5.12.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f19b3af31d02a2e79c5f9a6deaab0fb3c116456aeb9277d11720ad433de6dfc6", size = 1037275, upload-time = "2026-03-11T22:18:51.998Z" }, - { url = "https://files.pythonhosted.org/packages/9c/a7/a2411ec81aef7872578e56304c3e41b3a544a9809e95c8e1df46923fc40b/ujson-5.12.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:bacbd3c69862478cbe1c7ed4325caedec580d8acf31b8ee1b9a1e02a56295cad", size = 1196758, upload-time = "2026-03-11T22:18:53.548Z" }, - { url = "https://files.pythonhosted.org/packages/ed/85/aa18ae175dd03a118555aa14304d4f466f9db61b924c97c6f84388ecacb1/ujson-5.12.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:94c5f1621cbcab83c03be46441f090b68b9f307b6c7ec44d4e3f6d5997383df4", size = 1089760, upload-time = "2026-03-11T22:18:55.336Z" }, - { url = "https://files.pythonhosted.org/packages/c3/71/9b4dacb177d3509077e50497222d39eec04c8b41edb1471efc764d645237/ujson-5.12.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7ddb08b3c2f9213df1f2e3eb2fbea4963d80ec0f8de21f0b59898e34f3b3d96d", size = 56845, upload-time = "2026-03-11T22:18:59.629Z" }, - { url = "https://files.pythonhosted.org/packages/24/c2/8abffa3be1f3d605c4a62445fab232b3e7681512ce941c6b23014f404d36/ujson-5.12.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0a3ae28f0b209be5af50b54ca3e2123a3de3a57d87b75f1e5aa3d7961e041983", size = 54463, upload-time = "2026-03-11T22:19:00.697Z" }, - { url = "https://files.pythonhosted.org/packages/db/2e/60114a35d1d6796eb428f7affcba00a921831ff604a37d9142c3d8bbe5c5/ujson-5.12.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d30ad4359413c8821cc7b3707f7ca38aa8bc852ba3b9c5a759ee2d7740157315", size = 58689, upload-time = "2026-03-11T22:19:01.739Z" }, - { url = "https://files.pythonhosted.org/packages/c8/ad/010925c2116c21ce119f9c2ff18d01f48a19ade3ff4c5795da03ce5829fc/ujson-5.12.0-cp314-cp314t-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:02f93da7a4115e24f886b04fd56df1ee8741c2ce4ea491b7ab3152f744ad8f8e", size = 60618, upload-time = "2026-03-11T22:19:03.101Z" }, - { url = "https://files.pythonhosted.org/packages/9b/74/db7f638bf20282b1dccf454386cbd483faaaed3cdbb9cb27e06f74bb109e/ujson-5.12.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3ff4ede90ed771140caa7e1890de17431763a483c54b3c1f88bd30f0cc1affc0", size = 58151, upload-time = "2026-03-11T22:19:04.175Z" }, - { url = "https://files.pythonhosted.org/packages/9c/7e/3ebaecfa70a2e8ce623db8e21bd5cb05d42a5ef943bcbb3309d71b5de68d/ujson-5.12.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bf9cc97f05048ac8f3e02cd58f0fe62b901453c24345bfde287f4305dcc31c", size = 1038117, upload-time = "2026-03-11T22:19:05.558Z" }, - { url = "https://files.pythonhosted.org/packages/2e/aa/e073eda7f0036c2973b28db7bb99faba17a932e7b52d801f9bb3e726271f/ujson-5.12.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:2324d9a0502317ffc35d38e153c1b2fa9610ae03775c9d0f8d0cca7b8572b04e", size = 1197434, upload-time = "2026-03-11T22:19:06.92Z" }, - { url = "https://files.pythonhosted.org/packages/1c/01/b9a13f058fdd50c746b192c4447ca8d6352e696dcda912ccee10f032ff85/ujson-5.12.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:50524f4f6a1c839714dbaff5386a1afb245d2d5ec8213a01fbc99cea7307811e", size = 1090401, upload-time = "2026-03-11T22:19:08.383Z" }, +version = "5.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bc/78/937198ea8708182dd1edbf0237bf255a96feab3f511691ad08b84da98e5d/ujson-5.12.1.tar.gz", hash = "sha256:5b7e96406c301a1366534479a7352ec40ec68bb327c0c119091635acd5925e35", size = 7164538, upload-time = "2026-05-05T22:05:01.354Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/ca/d88d86f90f8f237985f3e347b9a4f9fa24e8d30d19ec7d477ed18aa58393/ujson-5.12.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:6f19e9a407a24230df0cc1ec1c0f5999872ba526b14a780f80ad6479f5eed9bc", size = 58099, upload-time = "2026-05-05T22:04:06.688Z" }, + { url = "https://files.pythonhosted.org/packages/ae/2d/a0a88407cee3550f7ed1e49b41157ee2d410f51905ed51fb134844255280/ujson-5.12.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8b657e870c77aaacdeea86cfad3e6d2ef9b52517e45988c9c367f7ee764fe4dd", size = 55631, upload-time = "2026-05-05T22:04:07.925Z" }, + { url = "https://files.pythonhosted.org/packages/a9/6d/12a3b8e72132db244ae048075e71a0079b3c5f61ff45b7ca81d5193ab3e7/ujson-5.12.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:984b5a99d1e0a037c2046c3c4b34cec832565d62d5017be0a035bf3cbfab72dc", size = 59469, upload-time = "2026-05-05T22:04:09.208Z" }, + { url = "https://files.pythonhosted.org/packages/a2/72/310f8c21737554f2d2b4f1883e1a71e8a6ab0d8f92f0feb8aaa85e0f4b66/ujson-5.12.1-cp314-cp314-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:f48ef8a16f1d85bd7982beac7adfd3fb704058631db84c1c61c8a1b7072b1508", size = 61611, upload-time = "2026-05-05T22:04:10.836Z" }, + { url = "https://files.pythonhosted.org/packages/50/50/ab4b2f7bab6c7a67298c8f2aca80e2082eaf6f332cf2d099762647b5301e/ujson-5.12.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f39ba3b65cc637b59731532f7e7c807786bff1d0332ab2d5b96a04d2584d78f", size = 59122, upload-time = "2026-05-05T22:04:12.137Z" }, + { url = "https://files.pythonhosted.org/packages/21/48/5d81cbe76fc2aa9e071aa489a3041cf0712f5e0663d60d501641f92b7bb4/ujson-5.12.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:07f307780f85b49cba93f291718421b6f5f3b627a323b431fad937a18f6587cb", size = 1038938, upload-time = "2026-05-05T22:04:13.548Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a7/abe1acb0e5d8b8d724b35533a44c89684c88100a5fd9f2fee7f7155528d5/ujson-5.12.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:1c335caea51c31494e514b82d50763b9792d3960d2c7d9fdb6b6fb8ed50ebdd0", size = 1198416, upload-time = "2026-05-05T22:04:15.609Z" }, + { url = "https://files.pythonhosted.org/packages/ed/6e/087067d6ee22bd01bfba9fb1f32ce98c24ae2bcbab53bd2fbf8f7a80fe9e/ujson-5.12.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:19ea07e29a45d199f926aadf93a9974128438c01b83141fba32477c0ee604b33", size = 1091425, upload-time = "2026-05-05T22:04:17.909Z" }, + { url = "https://files.pythonhosted.org/packages/3f/3d/7547835cd0b7fa22eb1122702f81b2403c38a0027a2cc0d75acc449a4a66/ujson-5.12.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:49dd9c378e1c8e676785ff2b62cb490074229f15ab54abf45b623713cb2c36b5", size = 58565, upload-time = "2026-05-05T22:04:23.75Z" }, + { url = "https://files.pythonhosted.org/packages/ed/6a/1784e0b24aab50623eb47b2f7a8dc22c9d809d798854d2568a9cb7c3560f/ujson-5.12.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6d8827904358d7da59ccf2e1fd8de59e78248036d17fecc0462e62c6721f1102", size = 56157, upload-time = "2026-05-05T22:04:25.028Z" }, + { url = "https://files.pythonhosted.org/packages/91/2d/2c1b24df24eee309047d81460c3a1acf0d047207327edc6f3cab8a614985/ujson-5.12.1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc26caebea90425662ef0b979f945f6ac832651881107d6ec9a3c4d4a4ba929c", size = 60288, upload-time = "2026-05-05T22:04:26.273Z" }, + { url = "https://files.pythonhosted.org/packages/c5/14/c0c603e3dff2ef98f7deee2df7795e6055abbc5825c6ef530024b3b06a15/ujson-5.12.1-cp314-cp314t-manylinux_2_24_i686.manylinux_2_28_i686.whl", hash = "sha256:45022aae09ac3d45bda6fbfc631088d1aff9a0465542d40bd6d295ced378c430", size = 62302, upload-time = "2026-05-05T22:04:27.516Z" }, + { url = "https://files.pythonhosted.org/packages/5c/0d/889bbc044561d9adc9bf413620fbd9878f352c9fd36da829d319bca2f5ad/ujson-5.12.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b22aa0f644516d3d5b29464949e4b23fe784f84b4a1030ab9ac3cb42aaedabb1", size = 59784, upload-time = "2026-05-05T22:04:28.776Z" }, + { url = "https://files.pythonhosted.org/packages/18/35/3b1d8ff8cd6dc048f5c495af6ee6ded43055562610a7e9b78b438dc6421e/ujson-5.12.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7dc5cf44ea42365cd1b66e6ed3fc6ca040c86587b024a6659b98e99d31cff2cd", size = 1039759, upload-time = "2026-05-05T22:04:30.291Z" }, + { url = "https://files.pythonhosted.org/packages/6a/d8/3c66cdf839420a6da2d6140a54a882c15efd135bcced103bd4473d577636/ujson-5.12.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:8df5d984ff4ac1ef292d70f30da03417038a7e1e0bc272d28ca9d34f02f41682", size = 1199121, upload-time = "2026-05-05T22:04:31.961Z" }, + { url = "https://files.pythonhosted.org/packages/54/51/c3d1b94a4ad27dc7532e9f7d00b869463157cede2295ba6d57566afeb8cd/ujson-5.12.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:485f0182a0c0b54c304061cdc826d8343ce595c4055f7a24e72772a8520e5f7b", size = 1092085, upload-time = "2026-05-05T22:04:33.697Z" }, ] [[package]] From 33a66ba2c653d2fb6337603ed8c4172e02024bca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Pardou?= <571533+jrmi@users.noreply.github.com> Date: Wed, 13 May 2026 15:26:11 +0200 Subject: [PATCH 3/3] Check permissions for collection element during dispatch (#5356) --- .../builder/api/data_providers/serializers.py | 15 +++ .../data_sources/builder_dispatch_context.py | 9 +- .../builder/elements/permission_manager.py | 72 +++++++++++---- .../api/domains/test_domain_public_views.py | 91 +++++++++++++++++++ .../test_element_permission_manager.py | 81 ++++++++++++++++- ..._element_provided_during_a_collection.json | 9 ++ 6 files changed, 258 insertions(+), 19 deletions(-) create mode 100644 changelog/entries/unreleased/bug/check_permission_on_the_element_provided_during_a_collection.json diff --git a/backend/src/baserow/contrib/builder/api/data_providers/serializers.py b/backend/src/baserow/contrib/builder/api/data_providers/serializers.py index 9ae9057392..c719d68c5c 100644 --- a/backend/src/baserow/contrib/builder/api/data_providers/serializers.py +++ b/backend/src/baserow/contrib/builder/api/data_providers/serializers.py @@ -2,7 +2,13 @@ from rest_framework import serializers from rest_framework.exceptions import ValidationError +from baserow.contrib.builder.data_sources.exceptions import ( + DataSourceRefinementForbidden, +) +from baserow.contrib.builder.elements.exceptions import ElementDoesNotExist from baserow.contrib.builder.elements.models import Element +from baserow.contrib.builder.elements.service import ElementService +from baserow.core.exceptions import PermissionException IANA_TIMEZONES = [(tz, tz) for tz in pytz.all_timezones] @@ -27,6 +33,15 @@ def validate(self, data): page = self.context.get("page") element = data.get("element") if element: + user = self.context.get("user") + if user is not None: + try: + data["element"] = ElementService().get_element(user, element.id) + except (ElementDoesNotExist, PermissionException): + raise DataSourceRefinementForbidden( + "The data source is not available for the dispatched element." + ) from None + if ( element.page_id != page.id and element.page.builder.shared_page.id != page.id diff --git a/backend/src/baserow/contrib/builder/data_sources/builder_dispatch_context.py b/backend/src/baserow/contrib/builder/data_sources/builder_dispatch_context.py index 40f11c789d..464ebded43 100644 --- a/backend/src/baserow/contrib/builder/data_sources/builder_dispatch_context.py +++ b/backend/src/baserow/contrib/builder/data_sources/builder_dispatch_context.py @@ -104,7 +104,14 @@ def request_data(self) -> Dict: serializer = DynamicMetadataSerializer( data=getattr(self.request, "data", {}).get("metadata", {}), - context={"page": self.page}, + context={ + "page": self.page, + "user": getattr( + self.request, + "user_source_user", + getattr(self.request, "user", None), + ), + }, ) serializer.is_valid(raise_exception=True) diff --git a/backend/src/baserow/contrib/builder/elements/permission_manager.py b/backend/src/baserow/contrib/builder/elements/permission_manager.py index 4b5e80e4dc..b921ef3742 100755 --- a/backend/src/baserow/contrib/builder/elements/permission_manager.py +++ b/backend/src/baserow/contrib/builder/elements/permission_manager.py @@ -2,7 +2,10 @@ from django.contrib.auth.models import AbstractUser from django.db.models import Q, QuerySet -from baserow.contrib.builder.elements.operations import ListElementsPageOperationType +from baserow.contrib.builder.elements.operations import ( + ListElementsPageOperationType, + ReadElementOperationType, +) from baserow.contrib.builder.pages.models import Page from baserow.contrib.builder.workflow_actions.operations import ( DispatchBuilderWorkflowActionOperationType, @@ -70,6 +73,53 @@ def auth_user_can_view_element(self, user, element): # Return False by default for safety return False + def actor_can_view_page(self, actor, page): + """ + Return True if the actor is allowed to view the page. + """ + + if isinstance(actor, User): + return True + + if page.visibility != Page.VISIBILITY_TYPES.LOGGED_IN: + return True + + if not getattr(actor, "is_authenticated", False): + return False + + if page.role_type == Page.ROLE_TYPES.ALLOW_ALL: + return True + elif page.role_type == Page.ROLE_TYPES.ALLOW_ALL_EXCEPT: + return actor.role not in page.roles + elif page.role_type == Page.ROLE_TYPES.DISALLOW_ALL_EXCEPT: + return actor.role in page.roles + + return False + + def actor_can_view_element(self, actor, element): + """ + Return True if the actor is allowed to view the element, taking element + and page visibility and role settings into account. + """ + + if not self.actor_can_view_page(actor, element.page): + return False + + current_element = element + while current_element is not None: + if getattr(actor, "is_authenticated", False): + if current_element.visibility == Element.VISIBILITY_TYPES.NOT_LOGGED: + return False + + if not self.auth_user_can_view_element(actor, current_element): + return False + elif current_element.visibility == Element.VISIBILITY_TYPES.LOGGED_IN: + return False + + current_element = current_element.parent_element + + return True + def check_multiple_permissions( self, checks, @@ -85,22 +135,10 @@ def check_multiple_permissions( for check in checks: if check.operation_name == DispatchBuilderWorkflowActionOperationType.type: - if getattr(check.actor, "is_authenticated", False): - if ( - check.context.element.visibility - == Element.VISIBILITY_TYPES.NOT_LOGGED - ): - result[check] = False - elif not self.auth_user_can_view_element( - check.actor, check.context.element - ): - result[check] = False - else: - if ( - check.context.element.visibility - == Element.VISIBILITY_TYPES.LOGGED_IN - ): - result[check] = False + if not self.actor_can_view_element(check.actor, check.context.element): + result[check] = False + elif check.operation_name == ReadElementOperationType.type: + result[check] = self.actor_can_view_element(check.actor, check.context) return result diff --git a/backend/tests/baserow/contrib/builder/api/domains/test_domain_public_views.py b/backend/tests/baserow/contrib/builder/api/domains/test_domain_public_views.py index c8b5dfd7bd..af7f0618f3 100644 --- a/backend/tests/baserow/contrib/builder/api/domains/test_domain_public_views.py +++ b/backend/tests/baserow/contrib/builder/api/domains/test_domain_public_views.py @@ -1,3 +1,4 @@ +import json from unittest.mock import ANY, MagicMock, patch from django.test.utils import override_settings @@ -1066,6 +1067,96 @@ def test_public_dispatch_data_source_view_returns_some_fields( } +@pytest.mark.django_db +def test_public_dispatch_data_source_cannot_use_hidden_element_refinements( + api_client, data_fixture +): + user = data_fixture.create_user() + builder_from = data_fixture.create_builder_application(user=user) + builder = data_fixture.create_builder_application(workspace=None) + data_fixture.create_builder_custom_domain( + builder=builder_from, published_to=builder + ) + public_page = data_fixture.create_builder_page(builder=builder) + hidden_page = data_fixture.create_builder_page( + builder=builder, visibility=Page.VISIBILITY_TYPES.LOGGED_IN + ) + integration = data_fixture.create_local_baserow_integration( + application=builder, authorized_user=user, name="test" + ) + table, _, _ = data_fixture.build_table( + user=user, + columns=[ + ("Name", "text"), + ("SSN", "text"), + ], + rows=[ + ["Peter", "111"], + ["Afonso", "222"], + ], + ) + public_field = table.field_set.get(name="Name") + private_field = table.field_set.get(name="SSN") + data_source = data_fixture.create_builder_local_baserow_list_rows_data_source( + user=user, + page=builder.shared_page, + integration=integration, + table=table, + ) + + visible_element = data_fixture.create_builder_table_element( + page=public_page, + data_source=data_source, + fields=[ + { + "name": "Name", + "type": "text", + "config": {"value": f"get('current_record.{public_field.db_column}')"}, + }, + ], + ) + visible_element.property_options.create( + schema_property=private_field.db_column, filterable=False + ) + + hidden_element = data_fixture.create_builder_table_element( + page=hidden_page, + data_source=data_source, + visibility=Element.VISIBILITY_TYPES.LOGGED_IN, + ) + hidden_element.property_options.create( + schema_property=private_field.db_column, filterable=True + ) + + advanced_filters = { + "filter_type": "AND", + "filters": [ + { + "field": private_field.id, + "type": "equal", + "value": "222", + } + ], + } + url = reverse( + "api:builder:domains:public_dispatch", + kwargs={"data_source_id": data_source.id}, + ) + + response = api_client.post( + f"{url}?filters={json.dumps(advanced_filters)}", + {"metadata": {"data_source": {"element": hidden_element.id}}}, + format="json", + ) + + assert response.status_code == HTTP_400_BAD_REQUEST + assert response.json() == { + "error": "ERROR_DATA_SOURCE_REFINEMENT_FORBIDDEN", + "detail": "Data source filter, search and/or sort fields error: " + "The data source is not available for the dispatched element.", + } + + @pytest.mark.django_db def test_public_dispatch_data_sources_get_row_no_elements( api_client, data_fixture, user_source_user_fixture diff --git a/backend/tests/baserow/contrib/builder/elements/test_element_permission_manager.py b/backend/tests/baserow/contrib/builder/elements/test_element_permission_manager.py index da88e1a546..22290e4d4e 100644 --- a/backend/tests/baserow/contrib/builder/elements/test_element_permission_manager.py +++ b/backend/tests/baserow/contrib/builder/elements/test_element_permission_manager.py @@ -3,7 +3,10 @@ import pytest from baserow.contrib.builder.elements.models import Element -from baserow.contrib.builder.elements.operations import ListElementsPageOperationType +from baserow.contrib.builder.elements.operations import ( + ListElementsPageOperationType, + ReadElementOperationType, +) from baserow.contrib.builder.elements.permission_manager import ( ElementVisibilityPermissionManager, ) @@ -255,6 +258,82 @@ def test_element_visibility_permission_manager_filter_queryset( ) +@pytest.mark.django_db +def test_element_visibility_permission_manager_read_element_permission( + data_fixture, + stub_user_source_registry, +): + user = data_fixture.create_user(username="Auth user") + builder = data_fixture.create_builder_application(user=user) + builder_to = data_fixture.create_builder_application(workspace=None) + data_fixture.create_builder_custom_domain(builder=builder, published_to=builder_to) + public_page = data_fixture.create_builder_page(builder=builder_to) + logged_in_page = data_fixture.create_builder_page( + builder=builder_to, visibility=Page.VISIBILITY_TYPES.LOGGED_IN + ) + public_user_source = data_fixture.create_user_source_with_first_type( + application=builder_to + ) + public_user_source_user = UserSourceUser( + public_user_source, None, 1, "US public", "e@ma.il" + ) + + element_all = data_fixture.create_builder_button_element( + page=public_page, visibility=Element.VISIBILITY_TYPES.ALL + ) + element_logged_in = data_fixture.create_builder_button_element( + page=public_page, visibility=Element.VISIBILITY_TYPES.LOGGED_IN + ) + element_not_logged = data_fixture.create_builder_button_element( + page=public_page, visibility=Element.VISIBILITY_TYPES.NOT_LOGGED + ) + element_on_logged_in_page = data_fixture.create_builder_button_element( + page=logged_in_page, visibility=Element.VISIBILITY_TYPES.ALL + ) + + checks = [ + PermissionCheck( + public_user_source_user, ReadElementOperationType.type, element_all + ), + PermissionCheck( + public_user_source_user, ReadElementOperationType.type, element_logged_in + ), + PermissionCheck( + public_user_source_user, ReadElementOperationType.type, element_not_logged + ), + PermissionCheck( + public_user_source_user, + ReadElementOperationType.type, + element_on_logged_in_page, + ), + PermissionCheck(AnonymousUser(), ReadElementOperationType.type, element_all), + PermissionCheck( + AnonymousUser(), ReadElementOperationType.type, element_logged_in + ), + PermissionCheck( + AnonymousUser(), ReadElementOperationType.type, element_not_logged + ), + PermissionCheck( + AnonymousUser(), ReadElementOperationType.type, element_on_logged_in_page + ), + ] + + result = ElementVisibilityPermissionManager().check_multiple_permissions( + checks, builder.workspace + ) + + assert [result.get(check, None) for check in checks] == [ + True, + True, + False, + True, + True, + False, + True, + False, + ] + + @pytest.fixture(autouse=True) def ab_builder_user_page(data_fixture): """A fixture to help test Element permissions.""" diff --git a/changelog/entries/unreleased/bug/check_permission_on_the_element_provided_during_a_collection.json b/changelog/entries/unreleased/bug/check_permission_on_the_element_provided_during_a_collection.json new file mode 100644 index 0000000000..6420f95e7b --- /dev/null +++ b/changelog/entries/unreleased/bug/check_permission_on_the_element_provided_during_a_collection.json @@ -0,0 +1,9 @@ +{ + "type": "bug", + "message": "Check permission on the element provided during a collection element data source dispatch", + "issue_origin": "github", + "issue_number": null, + "domain": "builder", + "bullet_points": [], + "created_at": "2026-05-12" +} \ No newline at end of file