Skip to content

issue-cas-7712: Clone endpoint + list APIs + Export Packages shell#8036

Open
foozleface wants to merge 4 commits intoissue-cas-7709from
issue-cas-7712
Open

issue-cas-7712: Clone endpoint + list APIs + Export Packages shell#8036
foozleface wants to merge 4 commits intoissue-cas-7709from
issue-cas-7712

Conversation

@foozleface
Copy link
Copy Markdown
Collaborator

Summary

PR 5 of 7 in CAS DwC export stack. Based on #8035.

Adds clone endpoint, list APIs, and the Export Packages tool shell:

  • clone_mapping view — deep-copies SpQuery + SpQueryFields + SchemaMapping
  • List APIs for SchemaMappings, ExportDataSets, and extensions
  • Cache build CRUD endpoints
  • Export Packages frontend tool shell — landing UI, package list, navigation

Stack

  1. issue-cas-7746: extensions join table + vocabulary on Schemamapping #8032, issue-cas-7737: CacheTableMeta model + cache table infrastructure #8033, issue-cas-7714: DwC schema terms vocabulary + permissions #8034, issue-cas-7709: Schema Mapper UI shell + Schema Config DwC section #8035 (predecessors)
  2. issue-cas-7712 — Clone endpoint + list APIs + Export Packages shell (this PR)
  3. issue-cas-7710, issue-cas-7733

Test plan

  • clone_mapping produces new SpQuery with cloned fields including term/isstatic/staticvalue
  • List endpoints return correctly scoped results
  • Permission gates honored
  • python manage.py test specifyweb.backend.export — 33/33 passing

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 27, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3d59e05b-f820-46c5-8a78-23246e96cdcc

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issue-cas-7712

Comment @coderabbitai help to get the list of available commands and usage tips.

Adds the export-app cache infrastructure:
- CacheTableMeta model + migration tracking build state per (mapping, collection)
- export.models shim: re-exports Caroline's Schemamapping/Exportdataset/
  Exportdatasetextension under PascalCase aliases for use throughout the package
- cache.py: get_cache_table_name, create_cache_table, drop_cache_table,
  _build_single_cache, _execute_and_populate, _infer_column_type, build_cache_tables
- dwca_utils.py: shared sanitize/build helpers used by cache and archive code
- Tests for SchemaMapping, ExportDataSet, ExportDataSetExtension, CacheTableMeta,
  and cache table operations

Fixes #7737. Closes overlap with the cache mechanism part of c381907
on dwc/foundation; remaining cache features (orphan cleanup, signal handlers,
build API, progress callbacks) ship in later atomic PRs.
…ssions

Adds the DwC vocabulary infrastructure:
- schema_terms.json — full DwC term list with descriptions and types
  (Occurrence core, Identification, MeasurementOrFact, Multimedia, etc.)
- get_schema_terms API endpoint serving the JSON
- SchemaMappingPT and ExportPackagePT PermissionTarget classes restricting
  Schema Mapper and Export Packages tools to institution admins
- Frontend vocabulary helper module that loads the terms JSON

Fixes #7714 (schema terms JSON files), #7727 (admin-only access).
Adds the frontend shell for the Schema Mapper tool:
- SchemaMapper/index.tsx — main UI shell with mapping list and editor wiring
- MappingList.tsx — list view of mappings
- TermDropdown.tsx — searchable DwC term picker
- VocabularyDialog.tsx — vocabulary key selection dialog
- types.ts — shared types
- userToolDefinitions: register Schema Mapper as a User Tool
- OverlayRoutes: add the Schema Mapper route
- SchemaConfig/Field.tsx: add 'Darwin Core' section to schema config
- localization/header.ts: localized strings for the new tool

Fixes #7709 (Schema Mapper tool), #7713 (vocabulary dialog),
#7715 (Term mapping column), #7729 (Schema Config DwC section).
Adds the first set of mapping/dataset CRUD endpoints and the Export Packages
tool entry point:
- list_mappings — returns all schema mappings as JSON
- list_export_datasets — returns all export datasets as JSON
- clone_mapping — deep-copies a SchemaMapping (new SpQuery, all SpQueryFields,
  new SchemaMapping pointing to the new query)
- urls.py: register the three new endpoints
- OverlayRoutes: register Export Packages route
- ExportPackages/index.tsx: list view shell for Export Packages tool

Field references adapted to Caroline's schemamapping schema (mapping_type,
is_default), and clone_mapping sets specifyuser/createdbyagent (required by
schema). Restored test_clone_mapping which depends on this layer's endpoint.

Fixes #7712 (cloning of schema mapping queries), #7723 (Export Packages tool).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 📋Back Log

Development

Successfully merging this pull request may close these issues.

1 participant