Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
427 commits
Select commit Hold shift + click to select a range
4ad3ce5
fix: add tests for run key migration
CarolineDenis Jun 18, 2026
4a208b1
fix: remove unused file/definition
CarolineDenis Jun 18, 2026
053b06c
fix: Clear cached schema override state between tests
CarolineDenis Jun 18, 2026
ffdf85f
fix: Assert call
CarolineDenis Jun 18, 2026
d7161ec
fix: Revert run_key_migration chnages
CarolineDenis Jun 18, 2026
0be0c12
fix: imports and performance for 0004 migration
melton-jason Jun 18, 2026
34aaccb
chore: add bug comment for irrevirsible migration
melton-jason Jun 18, 2026
c3cf4d7
Merge remote-tracking branch 'origin/issue-8058' into issue-8224
CarolineDenis Jun 22, 2026
faae90d
Add second test file for run_key_migration_functions
CarolineDenis Jun 22, 2026
8d8622c
Add test suite for select series migration helper 0031
CarolineDenis Jun 22, 2026
e8f1eb7
Test: Update test_run_key_migration_functions_2
CarolineDenis Jun 22, 2026
4409b79
Fix: Add decorator
CarolineDenis Jun 22, 2026
b6a523e
Fix: Import ApiTest
CarolineDenis Jun 22, 2026
a831e7e
Test: Add tests for helper_0039
CarolineDenis Jun 22, 2026
1e95d61
Refactor: Remove unecessary agent-loan-gift test
CarolineDenis Jun 22, 2026
72eaaff
Refactor: Move dedup logic to deduplication file
CarolineDenis Jun 22, 2026
ba79e48
Test: Add a new test suite for run key migration indepotency
CarolineDenis Jun 22, 2026
8dbe71b
Fix: Update cots_tests.py
CarolineDenis Jun 22, 2026
06e8f30
Fix: Align expected migration function names
CarolineDenis Jun 22, 2026
f7bb933
Fix: assertion
CarolineDenis Jun 22, 2026
ec885eb
Fix: fix keeper logic
CarolineDenis Jun 22, 2026
88d3588
Fix: Change tectonic class
CarolineDenis Jun 22, 2026
9d48f36
Fix: Adjust bulk-create assertions
CarolineDenis Jun 22, 2026
8093c2a
chore: reformat helper functions
melton-jason Jun 22, 2026
601c0d6
chore: correct migration helper names for clarity
melton-jason Jun 22, 2026
0399624
fix: create SpLocaleItemStr records when creating Schema Config recor…
melton-jason Jun 22, 2026
59f0ecb
Fix: Renaming wrong migration helper title
CarolineDenis Jun 23, 2026
be044b4
Fix: Renaming wrong migration helper title import
CarolineDenis Jun 23, 2026
8202bc1
Test: Add test suite for migration helper 0007
CarolineDenis Jun 23, 2026
42b37a9
Test: Add test suite for migration helper 0017
CarolineDenis Jun 23, 2026
7c8b866
Test: Add test suite for migration helper 0008, 0004, 0012
CarolineDenis Jun 23, 2026
b65e892
Test: Add test for helper_0013_collectionobjectgroup_parentcog
CarolineDenis Jun 23, 2026
d698e09
Fix: Deduplicate discipline test
CarolineDenis Jun 23, 2026
9630fcb
Test: Skip run_key_migration test
CarolineDenis Jun 23, 2026
7f9a8e2
chore: remove redundant objects and further compartmentalize
melton-jason Jun 23, 2026
f4b6656
fix: typo in UserRole description
melton-jason Jun 23, 2026
170b732
chore: fix indentation of comment
melton-jason Jun 23, 2026
ddb8a78
fix: typo in field name for 0023
melton-jason Jun 23, 2026
cd84f91
fix: specify 'en' language in 0033 migration and optimize
melton-jason Jun 23, 2026
92ab2bf
fix: only consider non-workbench schema items in 0023 reverse
melton-jason Jun 23, 2026
b7518ff
fix: 0027 revert not matching fields (also optimize)
melton-jason Jun 23, 2026
374d5cf
fix: only modify en locale strings and optimize 0027
melton-jason Jun 23, 2026
04392d9
refactor: simplify 0027 revert schema config changes
melton-jason Jun 23, 2026
4f1494e
chore: add refactor comments to 0017 for improvement feasability
melton-jason Jun 23, 2026
6b70846
fix: field lists being lowered in 0021 migration
melton-jason Jun 23, 2026
63b2693
refactor: optimizations
melton-jason Jun 23, 2026
0a618d4
fix: add 0040 migration updates to SchemaConfig default file
melton-jason Jun 23, 2026
cd1ff89
Merge branch 'issue-8124-8126-fix-7660-7682-2-after-review-2' into is…
melton-jason Jun 23, 2026
0ad2b28
Fix: Fix failing migration tests by initializing required system pick…
CarolineDenis Jun 24, 2026
4b24248
Merge remote-tracking branch 'origin/issue-8058' into issue-8224
CarolineDenis Jun 24, 2026
bfeb633
fix: update test_default_cots
CarolineDenis Jun 24, 2026
d8748e3
fix: update test_default_cots
CarolineDenis Jun 24, 2026
7cbc57d
fix: use correct case for table labels and descriptions
melton-jason Jun 24, 2026
7a60c83
fix: use database for picklist agetype tests
melton-jason Jun 24, 2026
acf8bc8
fix: cogtype picklist test
melton-jason Jun 24, 2026
9ceac77
fix: use correct Picklist Type when filtering in migration
melton-jason Jun 24, 2026
1bab9ba
Merge branch 'issue-8058' into issue-8224
melton-jason Jun 24, 2026
492a6ff
fix: use all on queryset over manager in test
melton-jason Jun 24, 2026
d7f2382
Merge pull request #8223 from specify/issue-8058
CarolineDenis Jun 24, 2026
cd4af73
fix: improve previous migration test file
CarolineDenis Jun 25, 2026
206ba5b
Test: Add test suite for migration helper 0020
CarolineDenis Jun 25, 2026
a6757ce
Test: Add test suite for migration helper 0024
CarolineDenis Jun 25, 2026
d7e6f58
Test: Add test suite for migration helper 0027
CarolineDenis Jun 25, 2026
a872096
Test: Add test suite for migration helper 0035
CarolineDenis Jun 25, 2026
38a5f6f
Test: Add test suite for migration helper 0018
CarolineDenis Jun 25, 2026
3d9f34e
Test: Add test suite for migration helper 0021
CarolineDenis Jun 25, 2026
910d73c
Test: Add test suite for migration helper 0021 -2
CarolineDenis Jun 25, 2026
b37b179
Test: Add test suite for migration helper 0032
CarolineDenis Jun 25, 2026
3334863
Test: Add test suite for migration helper 0033
CarolineDenis Jun 25, 2026
f0d04f9
Test: Add test suite for migration helper 0042
CarolineDenis Jun 25, 2026
8cdc580
fix: remove import
CarolineDenis Jun 25, 2026
b077f0d
Test
Jun 25, 2026
cd69409
fix: model capitalizations
grantfitzsimmons Jun 26, 2026
57557ea
Merge pull request #8182 from specify/issue-8181
grantfitzsimmons Jun 29, 2026
e7f4071
Test: Add test suite for migration helper_0015
Jun 30, 2026
0663b28
Test: Add test suite for migration helper_0023
Jun 30, 2026
f8d30b5
Merge branch 'v7_12_0_7_base' into issue-8124-8126-fix-7660-7682-2-af…
melton-jason Jun 30, 2026
fdfdaa3
Merge pull request #8154 from specify/issue-8124-8126-fix-7660-7682-2…
melton-jason Jun 30, 2026
57f2355
Test: Add test suite for migration helper_0034
Jun 30, 2026
7a77b3d
Test: Add test suite for migration helper_0023
Jun 30, 2026
2b5a896
Test: Add test suite for migration helper_0040
Jun 30, 2026
5b33006
Test: Improve test suite for migration helpers
Jun 30, 2026
13fac21
fix(trees): replace child/synonym LEFT JOINs with scalar subqueries
grantfitzsimmons Jun 30, 2026
adcf24d
Test: Fix assert test suite for migration helper_0040
Jul 1, 2026
bcebcb3
Test: Add container desc to test suite
Jul 1, 2026
6fa769f
Test: Fix age citation test
Jul 1, 2026
95aaefe
Test: Improve test_run_key order
Jul 1, 2026
68e7fb3
Test: Improve helper test 0042
Jul 1, 2026
118e4b3
Test: Assert first run of key migration
Jul 1, 2026
caf2cd2
refactro: remove unneeded helper function
melton-jason Jul 1, 2026
fd0b861
fix: remove undefined kwarg in permissions/initialize function
melton-jason Jul 1, 2026
5baa172
Merge branch 'v7_12_0_7_base' into issue-8148-fixes-6121-after-review
melton-jason Jul 1, 2026
af3dac4
feat: speed up UserRole creation during tests
melton-jason Jul 1, 2026
afe781c
refactor: remove unused DB_ALIAS setting
melton-jason Jul 1, 2026
bf6d410
fix: remove `MYSQL_USER` and `MYSQL_PASSWORD`
grantfitzsimmons May 21, 2026
4c44e6f
fix: remove restart policy
grantfitzsimmons May 21, 2026
cdb39ce
fix: exit on DB setup failure
grantfitzsimmons May 21, 2026
b9cc882
fix: clarify migrations in docker entrypoint
grantfitzsimmons May 21, 2026
232c15a
fix: clarify startup migrations comment
grantfitzsimmons May 21, 2026
39ec2e7
fix: make DB reset opt-in
grantfitzsimmons Jul 2, 2026
49a803d
Test: Remove rkm from schema config tests
Jul 2, 2026
d9f93ac
Test: Add required fields to Discipline in test file
Jul 2, 2026
1ba1216
fix: type annotation for roles in assign_users_to_roles_during_testing
melton-jason Jul 2, 2026
a46b390
fix: remove DATABASE_NAME from docker-compose.yml
melton-jason Jul 2, 2026
c6a108c
fix: use correct connection in migrations
melton-jason Jul 2, 2026
574c3e2
feat: update chronostrat
grantfitzsimmons Jul 2, 2026
387d7fd
feat: update chronostrat defaults to 2026_06
grantfitzsimmons Jul 2, 2026
aecb362
fix: remove duplicate names
grantfitzsimmons Jul 2, 2026
54b4b7b
fix: show Mississippian and Pennsylvanian under Carboniferous
grantfitzsimmons Jul 3, 2026
c5081b3
fix: move Pridoli to the correct rank
grantfitzsimmons Jul 6, 2026
d57e90b
Merge pull request #8248 from specify/update-chronostrat
grantfitzsimmons Jul 6, 2026
77c6351
fix: correct host direction when creating users, identifier escapes
melton-jason Jul 7, 2026
d4a9f0e
fix: remove unused HOST variables in default .env
melton-jason Jul 7, 2026
2e3ab27
Merge pull request #8243 from specify/issue-8242
CarolineDenis Jul 7, 2026
a08d216
fix: correct character escaping
melton-jason Jul 7, 2026
8ba2580
chore: remove unused environment variable
melton-jason Jul 7, 2026
ddfc9d5
Merge branch 'v7_12_0_7_base' into issue-8148-fixes-6121-after-review
melton-jason Jul 7, 2026
f4736cb
Merge branch 'v7_12_0_7_base' into issue-8224
melton-jason Jul 7, 2026
08240ca
Merge pull request #8156 from specify/issue-8148-fixes-6121-after-review
CarolineDenis Jul 8, 2026
db45d99
Merge branch 'v7_12_0_7_base' into issue-8224
melton-jason Jul 8, 2026
5e531e3
fix: test discipline directory cleanup functions
melton-jason Jul 8, 2026
9d65f24
feat: resolve tests for run_key_migration_functions
melton-jason Jul 9, 2026
fbe1c37
Merge pull request #8225 from specify/issue-8224
CarolineDenis Jul 9, 2026
ab28095
fix: regular expressions when checking for permissions
melton-jason Jul 10, 2026
e28c85b
fix: rely on more granular schema config functions
melton-jason Jul 14, 2026
8f752df
feat(backend): add matchingmode field to Spattachmentdataset
grantfitzsimmons Jul 14, 2026
c019079
feat(attachments): add MappingMode types and localization strings
grantfitzsimmons Jul 14, 2026
2f43c12
feat(attachments): add crossReferenceMappingFiles and prepareMappingF…
grantfitzsimmons Jul 14, 2026
bdaa197
feat(attachments): add MatchingModeDialog and MappingFileSetup compon…
grantfitzsimmons Jul 14, 2026
9f2e3cf
feat(attachments): integrate mapping-file mode into Import, ViewAttac…
grantfitzsimmons Jul 14, 2026
d912787
chore: improve descriptions
grantfitzsimmons Jul 14, 2026
e9b54a6
feat(attachments): match CSV columns against schema field names
grantfitzsimmons Jul 14, 2026
6e00a70
feat(attachments): add mapping file tests
grantfitzsimmons Jul 14, 2026
9456761
fix(attachments): remove spurious canceled for duplicates
grantfitzsimmons Jul 14, 2026
da57dc6
fix(attachments): show friendly prompt instead of misleading warnings…
grantfitzsimmons Jul 14, 2026
1a57240
feat(attachments): add icon to matching dialog
grantfitzsimmons Jul 14, 2026
29ad01b
fix(attachments): pass oldRows to seed effect and add isMappingMode t…
grantfitzsimmons Jul 14, 2026
acf35f2
feat(attachments): detect non-placeholder filename collisions in cros…
grantfitzsimmons Jul 14, 2026
0abf489
fix(attachments): reset column indices and dedup ref on new CSV load …
grantfitzsimmons Jul 14, 2026
de736b3
fix(attachments): prefer File instances in dedup safety net over firs…
grantfitzsimmons Jul 14, 2026
3a4a941
fix(attachments): preserve success/attached status in notInMappingFil…
grantfitzsimmons Jul 14, 2026
7f72e9d
fix(attachments): use mutable array for crossReferenceMappingFiles re…
grantfitzsimmons Jul 14, 2026
4eff842
fix(attachments): add mappingFileName to placeholder rows in crossRef…
grantfitzsimmons Jul 14, 2026
f94cd22
fix(backend): validate matchingmode values and add model-level choice…
grantfitzsimmons Jul 14, 2026
b4ae1bf
fix(attachments): clear headers and rows on CSV parse error in Mappin…
grantfitzsimmons Jul 14, 2026
a0383b2
fix(attachments): anchor fileNamePatterns to prevent substring matches
grantfitzsimmons Jul 14, 2026
feb6e25
refactor(attachments): treat null matchingmode as filename mode inste…
grantfitzsimmons Jul 14, 2026
2a9a02c
fix(attachments): fix dedup key
grantfitzsimmons Jul 14, 2026
4137c02
fix(atachments): show stale-row warnings
grantfitzsimmons Jul 14, 2026
e59b837
fix(attachments): fix dialog
grantfitzsimmons Jul 14, 2026
4fcb3a5
fix(attachments): fix tests
grantfitzsimmons Jul 15, 2026
1be4238
Merge branch 'main' into issue-8302
grantfitzsimmons Jul 15, 2026
dc2a98b
fix(attachments): remove unused local
grantfitzsimmons Jul 15, 2026
ed28a86
fix(attachments): make dialog appear on empty data sets
grantfitzsimmons Jul 15, 2026
5219b96
refactor(attachments): use isMappingFilePlaceholder to require both c…
grantfitzsimmons Jul 15, 2026
abef194
fix(attachments): prevent stale CSV parse
grantfitzsimmons Jul 15, 2026
1c69c7f
Fix: Allow to delete unused tree ranks
Jul 15, 2026
0c91b87
Revert: Grant migrator privileges even when the user already exists
Jul 15, 2026
ab40252
refactor(backend): remove unnecessary MATCHING_MODE_CHOICES
grantfitzsimmons Jul 15, 2026
4121f80
refactor(attachments): simplify reset effect since mode is fixed at d…
grantfitzsimmons Jul 15, 2026
115a445
Merge pull request #8312 from specify/issue-7102_07_base
CarolineDenis Jul 15, 2026
dcd25e6
refactor(attachments): localize CSV error messages
grantfitzsimmons Jul 15, 2026
7302797
Lint code with ESLint and Prettier
grantfitzsimmons Jul 15, 2026
2e977f6
Fix: Disable attachment relationships in batch edit
Jul 16, 2026
27cb105
Merge pull request #8317 from specify/issue-8314
rijulpoudel Jul 16, 2026
8e59498
Merge remote-tracking branch 'origin/v7_12_0_7_base' into v7_12_0_7_s…
melton-jason Jul 17, 2026
1e35602
added check for same master and migrator + allowed for granting privs…
combs-a Jul 17, 2026
e258b74
fix: simplify schema config code and always use global schema defaults
melton-jason Jul 17, 2026
f2d93af
fix: use discipline type during migrations for schema defaults
melton-jason Jul 17, 2026
74b2b94
fix: broken imports in sync schema config command
melton-jason Jul 17, 2026
baacfce
feat: add header localization
grantfitzsimmons Jul 19, 2026
51f0766
Merge branch 'main' into issue-8302
grantfitzsimmons Jul 19, 2026
784fb9a
Fix: Use the raw database identifier for GRANT
Jul 20, 2026
0b32eff
Fix: Update readme
Jul 20, 2026
c45d0e8
fix(tests): Try explicitly fetching tags and showing traceback
melton-jason Jul 21, 2026
8e35a2e
fix(tests): ordering of arguments in mypy Make target
melton-jason Jul 21, 2026
c3df545
fix: remove explicit type alias keyword
melton-jason Jul 21, 2026
e1e1434
fix(tests): fetch deep copy of Specify repo when running backend tests
melton-jason Jul 21, 2026
51d22fb
fix(tests): write tests for SchemaWriter
melton-jason Jul 21, 2026
86e01e5
Merge pull request #8313 from specify/issue-8305
CarolineDenis Jul 21, 2026
86a17d5
feat: define SchemaReader utility class
melton-jason Jul 21, 2026
93c9c85
fix(tests): Do not use mocks for 0004_stratigraphy_age migration
melton-jason Jul 21, 2026
77a5280
chore: remove duplicated bulk_create_splocaleitemstr test
melton-jason Jul 21, 2026
f22a446
fix(tests): item IDs being passed to bulk_create_splocaleitemstr_idem…
melton-jason Jul 21, 2026
e254e8a
fix(tests): avoid mocks in specify 0013 migration tests
melton-jason Jul 21, 2026
48f20d7
fix(tests): avoid mocks in specify 0015 migration test
melton-jason Jul 21, 2026
28f73dc
fix(tests): remove unneeded specify 0034 migration test
melton-jason Jul 21, 2026
5f7e85a
fix(tests): resolve incorrect lookup in schema writer test
melton-jason Jul 21, 2026
c34c51f
Merge remote-tracking branch 'origin/v7_12_0_7_base' into v7_12_0_7_s…
melton-jason Jul 21, 2026
b30f6ef
fix: include more values from schema_localization_en.json defaults
melton-jason Jul 21, 2026
2f5ba3d
fix: include weblinkname when call field update helper
melton-jason Jul 21, 2026
c9d3293
fix: always be case-insensitive for SchemaReader helper functions
melton-jason Jul 21, 2026
297dc03
fix: ensure return value of cached functions are immutable
melton-jason Jul 21, 2026
211b918
fix: handle case where schema config defaults do not have table
melton-jason Jul 21, 2026
5a792a0
fix: flatten QueryValues list in specify 0035 migration
melton-jason Jul 21, 2026
5707ab2
fix: flatten single QueryValues list in specify 0040 migration
melton-jason Jul 21, 2026
001362b
fix: pass in app registry when creating SchemaWriter Table
melton-jason Jul 21, 2026
9041a58
fix(tests): remove check for missing Schema Config field in 0013 migr…
melton-jason Jul 21, 2026
f62bedd
fix: Define a recursive helper to mark a dictonary as immutable
melton-jason Jul 21, 2026
f1a2832
fix: add helper to copy immutable dict
melton-jason Jul 21, 2026
d39a363
refactor: define a ReadonlyDict class
melton-jason Jul 21, 2026
f77e8de
fix: don't persist credentials in GitHub Action
melton-jason Jul 21, 2026
4a536c1
fix(tests): remove check for Schema Config field and leave comment
melton-jason Jul 21, 2026
136e126
refactor: use a recursive approach when getting value of ReadonlyDict
melton-jason Jul 21, 2026
e6df714
feat: add test for schema default immutability
melton-jason Jul 21, 2026
7b5ac6e
fix: ensure all passed-in default values are always respected
melton-jason Jul 21, 2026
79b4555
refactor: be nicer to field_defaults passed to update_table_schema_co…
melton-jason Jul 21, 2026
3d66f74
fix(tests): resolve raised exception in schema writer tests
melton-jason Jul 21, 2026
a597fb1
Feat: Add actions logs progress for run_key_migrations
Jul 22, 2026
c281730
Test: Unit test to verify progress is logged
Jul 22, 2026
b1d2205
Merge pull request #8329 from specify/v7_12_0_7_schema_config
grantfitzsimmons Jul 22, 2026
c40773f
fix: have a null catalogNumber format
melton-jason Jul 22, 2026
ebb2a40
fix: unhide PaleoContext, Chronostrat, and Lithostrat in Paleo discip…
melton-jason Jul 22, 2026
d6e2a4b
fix: default DATABASE_PORT to 3306
melton-jason Jul 22, 2026
f3e4ad7
fix: compartmentalize run_key_migration_functions remove duplicated work
melton-jason Jul 23, 2026
17768d2
perf: different approach for semi-immutability
melton-jason Jul 23, 2026
136c35b
chore: add warning note to schema_config_default function
melton-jason Jul 23, 2026
c6ad8cc
fix: incorrect picklistname for Determination -> nameUsages
melton-jason Jul 23, 2026
f50da8e
fix: paleo tree visibility and table descritions for all disciplines
melton-jason Jul 23, 2026
1cfed61
fix: unhide Chronostrat by default or vertpaleo
melton-jason Jul 23, 2026
ec0162f
fix: prevent access to collections in disciplines being created
melton-jason Jul 24, 2026
533e6e7
Merge branch 'main' into issue-8302
grantfitzsimmons Jul 24, 2026
5014577
Lint code with ESLint and Prettier
grantfitzsimmons Jul 24, 2026
e0bfc3d
Merge branch 'main' into issue-8302
grantfitzsimmons Jul 27, 2026
86ff4ea
Lint code with ESLint and Prettier
grantfitzsimmons Jul 27, 2026
5f4ea50
Merge branch 'v7_12_0_7_base' into issue-7968
CarolineDenis Jul 28, 2026
6cb6726
Merge pull request #8340 from specify/issue-7968
CarolineDenis Jul 28, 2026
4844341
Merge branch 'main' into issue-8302
CarolineDenis Jul 28, 2026
cc3b386
Merge branch 'main' into issue-8302
grantfitzsimmons Jul 28, 2026
fedd8cd
feat: update CHANGELOG for 7.12.0.7
grantfitzsimmons Jul 28, 2026
7aa1c9c
Merge branch 'main' into issue-8302
grantfitzsimmons Jul 28, 2026
c05c1d8
Merge remote-tracking branch 'origin/main' into v7_12_0_7_main
melton-jason Jul 29, 2026
1f6eacd
fix: replace timestampcreated with id in duplicate dir query
melton-jason Jul 29, 2026
b23e0ad
refactor: use annotation with filter for readability
melton-jason Jul 29, 2026
c11e709
Lint code with ESLint and Prettier
melton-jason Jul 29, 2026
328c4d5
Merge remote-tracking branch 'origin/main' into v7_12_0_7_main
melton-jason Jul 29, 2026
80d69cd
fix: errors in delete blocker tests
melton-jason Jul 29, 2026
cb5bf0a
fix(tests): stop preserving discipline dirs of the same timestamp
melton-jason Jul 29, 2026
b31ebc0
fix: remove test for preserving order of run_key_migration_functions
melton-jason Jul 29, 2026
dade764
Merge branch 'main' into issue-8302
grantfitzsimmons Jul 30, 2026
fb334d8
feat(datamodel): add schema for matchingmode
grantfitzsimmons Jul 30, 2026
9beaa43
feat(attachments): add support for FNP
grantfitzsimmons Jul 30, 2026
935cbb3
feat(attachments): add support for FNP by description
grantfitzsimmons Jul 30, 2026
d22e16d
feat(attachments): add support for FN and Disposal
grantfitzsimmons Jul 30, 2026
6db0903
Merge branch 'v7_12_0_7_main' into issue-8302
grantfitzsimmons Jul 30, 2026
b926cf2
Lint code with ESLint and Prettier
grantfitzsimmons Jul 30, 2026
3452517
fix(migrations): use the new system for captions
grantfitzsimmons Jul 30, 2026
28ad912
feat(attachments): add warning dialog for missing items
grantfitzsimmons Jul 31, 2026
f363164
Merge pull request #8311 from specify/issue-8302
grantfitzsimmons Jul 31, 2026
9cfe7e7
Merge branch 'main' into v7_12_0_7_main
grantfitzsimmons Jul 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,18 @@ DATABASE_NAME=specify
# This user should already be setup before running Specify.
MASTER_NAME=root
MASTER_PASSWORD=password
MASTER_HOST=%

# MIGRATOR Database User
# User with elevated privileges to perform migrations (create/drop/modify tables, etc.), for Django migration steps.
# Make sure that the user is unique to just one database, otherwise use master.
MIGRATOR_NAME=specify_migrator
MIGRATOR_PASSWORD=specify_migrator
MIGRATOR_HOST=%

# APP Database User
# Normal runtime database user that performs application-level operations.
# Make sure that the user is unique to just one database, otherwise use master.
APP_USER_NAME=specify_user
APP_USER_PASSWORD=specify_user
APP_HOST=%

# Enabling this option allows administrators with access to the
# backend Specify instance to log in as any user for support
Expand Down
17 changes: 16 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,22 @@ jobs:
- 6379

steps:
- uses: actions/checkout@v4
- name: Checkout Copy of Repo
uses: actions/checkout@v4
with:
# We're not making any writes to the repo, so there's no need to
# store the credentials in git config
persist-credentials: false
# Ugh, don't like fetching the entire copy of the Specify 7 repo
# here, but this was needed because the details of the most recent
# tag was required from the build version Make target
# The backend tests can be run on a branch that can be some arbitrary
# distance from the most recent tag, so we can't realistically set a
# reasonable fetch depth here.
# There might be some Git command to do this, will need to look into
# that if we want to somewhat speed up the backend tests
fetch-depth: 0


- name: Install ubuntu dependencies
run: |
Expand Down
86 changes: 86 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,92 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## [7.12.0.7](https://github.com/specify/specify7/compare/v7.12.0.6...v7.12.0.7) (28 July 2026)

### Updated

* The [International Chronostratigraphic Chart](https://stratigraphy.org/chart/) graphic, published by the International Commission on Stratigraphy, has been updated to version `2026/06` ([#8248](https://github.com/specify/specify7/pull/8248))
* The default data for the Chronostratigraphy tree (`GeologicTimePeriod`) has been updated to reflect these new values.

### Fixed

* Improves the initial database setup script ([#8156](https://github.com/specify/specify7/pull/8156))
* More reliable DB provisioning, privilege verification and clearer failure diagnostics.
* Fixed single-use-iterable bug affecting uniqueness rule creation.
* Improved legacy-permissions detection and safer role/user assignment during initialization.
* Startup validates DB alias and logs connection fallbacks.
* Migration initialization now respects override behavior; container startup can skip automatic migrations.
* Credentials/config now come from environment variables with chained defaults.
* Setup scripts run in stricter shell mode for safer execution.
* Schema config and migration fixes ([#8154](https://github.com/specify/specify7/pull/8154))
* Fixes model capitalizations and case sensitivity issues across schema config table labels and descriptions
* Fixes Picklist Type filtering to use the correct type during database migrations
* Fixes an issue where `SpLocaleItemStr` records were not created when generating Schema Config records for tables
* Fixes incorrect Discipline to TectonicUnit tree definition pairing when resolving links
* Fixes handling of synonymized root nodes during tree reverse migrations
* Fixes handling of custom Tectonic Unit trees when reverting migrations
* Fixes a case where the business rules app was not ready but migrations attempted to run
* Fixes `MultipleObjectsReturned` errors by simplifying exception handling during schema repairs
* Fixes localized string deduplication to scope by language, preventing cross-language string conflicts
* Fixes catalog-number uniqueness shadowing in collection functions during migration
* Fixes the `DisciplineType` PickList being created when creating a new Collection
* Fixes `DisciplineType` picklist assignment for newly created Disciplines
* Fixes partially migrated disciplines that could not be repaired due to exclusion logic
* Fixes reuse prevention when pairing tree definitions with disciplines
* Fixes discipline tree definition links being set before skipping rank creation
* Fixes several schema migration reversibility issues (0021, 0023, 0027, 0033, 0040) to ensure safe rollbacks
* Fixes `reverse_hide_component_fields` defaulting incorrectly
* Fixes a typo in the `UserRole` description
* Fixes component catalog number cache typing for consistency
* Fixes an issue where `SP7_DEBUG` was not correctly set in all environments
* Fixes validation of `AUDIT_LIFESPAN_MONTHS` before executing purge SQL to prevent unsafe operations
* Fixes key escaping when fetching remote preferences to prevent injection vulnerabilities
* Fixes comparison of full uniqueness rule definitions before deletion to prevent data loss
* Fixes an issue where existing rows were not flipped back to `isDatabaseConstraint=True` where needed
* Fixes the `Migrator` user being used for all migration key operations
* Fixes the `is_sp6_user_permissions_migrated` check being re-introduced for proper legacy permission handling
* Fixes database connection handling to use the correct alias for migration connections
* Fixes `set_discipline_for_taxon_treedefs` being reduced to a single database query for improved performance
* Fixes `fix_taxon_treedef_discipline_links` being optimized to a single query for improved performance
* Fixes admin check ordering to evaluate common cases first for faster permission checks
* Fixes use of Django defaults in `get_or_create` for Role creation
* Fixes database connection used as a context manager for permission operations
* Fixes `fix_global_rules` helper function being simplified for better migration performance
* Fixes missing data model relationships for attachments that could cause issues with record linking ([#8182](https://github.com/specify/specify7/pull/8182))
* Regex field-formatter fixes ([#8152](https://github.com/specify/specify7/pull/8152))
* Fixes expression boundary markers being incorrectly inserted
* Fixes handling of outer parentheses in regex expressions
* Fixes regex trimming to intelligently handle ambiguous patterns
* Adds `ariaLabel` and `placeholder` attributes for improved accessibility
* Schema config defaults hardening ([#8329](https://github.com/specify/specify7/pull/8329))
* Introduces `SchemaWriter` and `SchemaReader` utility classes for consistent and optimized schema config operations
* Introduces `ReadonlyDict` to prevent accidental mutation of schema default values, ensuring migration predictability
* Fixes `QueryValues` list flattening in migrations 0035 and 0040
* Fixes case-insensitive lookups in schema config helper functions
* Improves fallback logic to use `schema_localization_en.json` defaults when generating localized strings
* Ensures all passed-in default values are always respected during schema config creation
* Eliminates redundant database hits when creating Schema Config records sequentially
* Database setup and permissions hardening ([#8313](https://github.com/specify/specify7/pull/8313))
* Reverts automatic migrator privilege grants when the user already exists to avoid permission conflicts
* Prevents access to collections belonging to disciplines that are still being created
* Fixes regular expressions used when checking database permissions
* Defaults `DATABASE_PORT` to 3306 for more reliable out-of-the-box configuration
* Removes unused environment variables and host configuration from default `.env`
* Fixes character escaping and host direction when creating database users
* Batch edit fixes ([#8317](https://github.com/specify/specify7/pull/8317))
* Disables attachment relationships in batch edit mode to prevent invalid record linking
* Tree management improvements ([#8312](https://github.com/specify/specify7/pull/8312), [#8243](https://github.com/specify/specify7/pull/8243))
* Allows deletion of unused tree ranks ([#8312](https://github.com/specify/specify7/pull/8312))
* Replaces child and synonym `LEFT JOIN`s with scalar subqueries for significantly faster tree queries ([#8243](https://github.com/specify/specify7/pull/8243))
* Paleo discipline visibility fixes
* Unhides PaleoContext, Chronostrat, and Lithostrat trees by default in paleo disciplines (Geology, InvertPaleo, Paleobotany, VertPaleo)
* Fixes tree visibility and table descriptions across all disciplines for consistency
* Fixes incorrect picklist name for Determination → nameUsages
* Fixes null `catalogNumber` format specification
* Migration test suite ([#8225](https://github.com/specify/specify7/pull/8225))
* Adds test coverage for `run_key_migration_functions` and discipline directory cleanup functions
* Removes reliance on mocking in several migration tests for more reliable validation

## [7.12.0.6](https://github.com/specify/specify7/compare/v7.12.0.5...v7.12.0.6) (21 May 2026)

* Fix aggregated relation parsing for stored queries ([#8059](https://github.com/specify/specify7/pull/8059))
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ pip_requirements:
$(PIP) install --upgrade -r requirements.txt

django_migrations:
$(PYTHON) manage.py base_specify_migration --database=migrations
$(PYTHON) manage.py base_specify_migration --use-override --database=migrations
$(PYTHON) manage.py migrate --database=migrations

specifyweb/settings/build_version.py: .FORCE
Expand Down Expand Up @@ -53,6 +53,6 @@ MYPY_TARGETS = \
specifyweb/backend/context/user_resources.py

typecheck:
$(MYPY) --follow-imports silent $(MYPY_TARGETS)
$(MYPY) --follow-imports=silent --show-traceback $(MYPY_TARGETS)

.FORCE:
3 changes: 0 additions & 3 deletions config/bird/schema_overrides.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"collectingevent": {
"ishidden": false,
"desc": "Collecting Event",
"items": [
{"stationFieldNumber": {"ishidden": false, "name": "Field Number", "desc": "Field Number"}},
{"method": {"ishidden": false, "name": "Method", "desc": "Method"}},
Expand All @@ -11,7 +10,6 @@
},
"collectionobjectattribute": {
"ishidden": false,
"desc": "Collection Object Attribute",
"items": [
{"text5": {"ishidden": false, "name": "Stomach", "desc": "Stomach"}},
{"text3": {"ishidden": false, "name": "ReproCondition", "desc": "ReproCondition"}},
Expand All @@ -25,7 +23,6 @@
},
"determination": {
"ishidden": false,
"desc": "Determination",
"items": [
{"typeStatusName": {"ishidden": false, "name": "Type Status", "desc": "Type Status"}}
]
Expand Down
2 changes: 0 additions & 2 deletions config/botany/schema_overrides.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
{
"collectingevent": {
"ishidden": false,
"desc": "Collecting Event",
"items": [
{"stationfieldnumber": {"ishidden": false, "name": "Collector Number", "desc": "Collector Number"}},
{"remarks": {"ishidden": false, "name": "Locality and Habitat Notes", "desc": "Locality and Habitat Notes"}}
]
},
"collectionobject": {
"ishidden": false,
"desc": "Collection Object",
"items": [
{"text1": {"ishidden": false, "picklistname": "Phenology", "name": "Phenology", "desc": "Phenology"}},
{"description": {"ishidden": false, "name": "Specimen Description", "desc": "Specimen Description"}},
Expand Down
79 changes: 79 additions & 0 deletions config/common/global_picklists.json
Original file line number Diff line number Diff line change
Expand Up @@ -448,6 +448,85 @@
{ "title": "Fossil record", "value": "Fossil record" },
{ "title": "Radiometric (adjacent)", "value": "Radiometric (adjacent)" }
]
},
{
"name": "DisciplineType",
"formatter": null,
"issystem": true,
"readonly": true,
"sizelimit": -1,
"sorttype": 1,
"tablename": null,
"type": 0,
"version": 0,
"items": [
{
"ordinal": 1,
"title": "Ichthyology",
"value": "fish",
"version": 0
},
{
"ordinal": 2,
"title": "Herpetology",
"value": "herpetology",
"version": 0
},
{
"ordinal": 3,
"title": "Paleobotany",
"value": "paleobotany",
"version": 0
},
{
"ordinal": 4,
"title": "Invertebrate Paleontology",
"value": "invertpaleo",
"version": 0
},
{
"ordinal": 5,
"title": "Vertebrate Paleontology",
"value": "vertpaleo",
"version": 0
},
{
"ordinal": 6,
"title": "Ornithology",
"value": "bird",
"version": 0
},
{
"ordinal": 7,
"title": "Mammalogy",
"value": "mammal",
"version": 0
},
{
"ordinal": 8,
"title": "Entomology",
"value": "insect",
"version": 0
},
{
"ordinal": 9,
"title": "Botany",
"value": "botany",
"version": 0
},
{
"ordinal": 10,
"title": "Invertebrate Zoology",
"value": "invertebrate",
"version": 0
},
{
"ordinal": 11,
"title": "Geology",
"value": "geology",
"version": 0
}
]
}
]
}
Loading
Loading