Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
825ab46
Add a new treeDefault import feature
CarolineDenis Apr 18, 2025
069cd26
Remove import
CarolineDenis Apr 18, 2025
c22a999
init create_default_trees_view
acwhite211 May 27, 2025
8360e83
create_default_trees_view api change
acwhite211 May 29, 2025
33f73d3
add create_default_trees_view fixes
acwhite211 May 30, 2025
435e9ac
Add api to onClick fct
CarolineDenis May 30, 2025
bae30d6
init create_default_trees_task
acwhite211 Jun 12, 2025
a0f9f9e
create_default_trees_task fix
acwhite211 Jun 12, 2025
df5003c
bypass tree validation to speedup default tree upload
acwhite211 Jun 12, 2025
d4d2c5d
Merge branch 'main' into issue-6294
acwhite211 Jun 13, 2025
93617ac
Lint code with ESLint and Prettier
acwhite211 Jun 13, 2025
99d9de5
Merge branch 'main' into issue-6294
acwhite211 Jun 13, 2025
5fc1df6
Lint code with ESLint and Prettier
acwhite211 Jun 13, 2025
1b79f85
Merge branch 'main' into issue-6294
acwhite211 Jun 13, 2025
5b84226
Lint code with ESLint and Prettier
acwhite211 Jun 13, 2025
7401c57
Merge remote-tracking branch 'origin/main' into issue-6294
CarolineDenis Aug 19, 2025
9f9994f
test
CarolineDenis Aug 19, 2025
821053c
Lint code with ESLint and Prettier
CarolineDenis Aug 19, 2025
832b665
Merge remote-tracking branch 'origin/main' into issue-6294
CarolineDenis Sep 2, 2025
2be475e
Lint code with ESLint and Prettier
CarolineDenis Sep 2, 2025
441d301
Use frontend collection name
CarolineDenis Sep 3, 2025
ab79af9
Lint code with ESLint and Prettier
CarolineDenis Sep 3, 2025
2a31190
Merge branch 'main' into issue-6294
acwhite211 Oct 27, 2025
43b2c81
Merge branch 'main' into issue-6294
alesan99 Nov 10, 2025
05df6d9
Add notification formatting to frontend
alesan99 Nov 10, 2025
c141cc4
Update API schema and name
alesan99 Nov 13, 2025
d8cc3bf
WIP Poll for tree creation progress
alesan99 Nov 13, 2025
3e78902
Add label to progress bar
alesan99 Nov 13, 2025
efd5425
Fix task error handling
alesan99 Nov 17, 2025
f3e26b6
Fix continous progress polling after errors
alesan99 Nov 17, 2025
c5e55af
Generalize initial taxon tree creation code
alesan99 Nov 17, 2025
4da498d
Generalize add_default_taxon function
alesan99 Nov 24, 2025
366e9c5
WIP Add Geography and GeologicTimePeriod schemas
alesan99 Nov 25, 2025
317a0df
Merge branch 'main' into issue-6294
alesan99 Nov 26, 2025
f98d6ed
Fix geography and geologictimeperiod mapping
alesan99 Nov 26, 2025
5e718f1
Fix: Always get treedef by name
alesan99 Dec 1, 2025
58720bf
WIP retry failed rows
alesan99 Dec 1, 2025
5ac489f
Improve readability
alesan99 Dec 1, 2025
2b5ff77
WIP accept row_count and mapping_url
alesan99 Dec 1, 2025
e4122c5
Improve success notification
alesan99 Dec 2, 2025
269f1c0
Add localization
alesan99 Dec 2, 2025
85e43e5
Fetch tree mapping from url
alesan99 Dec 3, 2025
7271e8b
Lint code with ESLint and Prettier
alesan99 Dec 3, 2025
452a7e5
Remove non-background execution
alesan99 Dec 3, 2025
f9cea3f
Merge branch 'issue-6294' of https://github.com/specify/specify7 into…
alesan99 Dec 3, 2025
6d36cf3
Merge branch 'main' into issue-6294
alesan99 Dec 3, 2025
a817c4d
Fix provided colleciton name not being used
alesan99 Dec 9, 2025
43368ed
Add stop button
alesan99 Dec 17, 2025
c17ba87
Lint code with ESLint and Prettier
alesan99 Dec 17, 2025
96422c0
Fix task_id in notifications
alesan99 Dec 17, 2025
7736f98
Merge branch 'issue-6294' of https://github.com/specify/specify7 into…
alesan99 Dec 17, 2025
10a1df7
Lint code with ESLint and Prettier
alesan99 Dec 17, 2025
6b4a5a1
Use tree title as tree name
alesan99 Dec 22, 2025
4048cb2
Merge branch 'issue-6294' of https://github.com/specify/specify7 into…
alesan99 Dec 22, 2025
d2f110d
Merge branch 'main' into issue-6294
alesan99 Dec 22, 2025
2c74aed
Lint code with ESLint and Prettier
alesan99 Dec 22, 2025
d6acbcb
Add comments for lines_iter
alesan99 Dec 22, 2025
5329412
Merge branch 'issue-6294' of https://github.com/specify/specify7 into…
alesan99 Dec 22, 2025
ae1690e
Use tree mapping for rank count
alesan99 Dec 23, 2025
eeee9d4
Update tree rank debug logs
alesan99 Dec 23, 2025
4f4921a
Get rank by column name
alesan99 Dec 23, 2025
fbfc75e
Add default isenforced and isinfullname values
alesan99 Dec 23, 2025
2e1c3c5
WIP update tree mapping schema for rank config
alesan99 Dec 24, 2025
23b4f31
Update rank mapping schema
alesan99 Dec 29, 2025
5a41064
Fix tree mapping
alesan99 Dec 29, 2025
6cafcad
Fix rank in mapping schema
alesan99 Dec 29, 2025
f8a4634
Add fullnameseparator to schema
alesan99 Dec 29, 2025
3cb2cb1
Add "fullnameseparator" to schema
alesan99 Dec 31, 2025
b62a7ff
Add full name direction
alesan99 Dec 31, 2025
4e9e9c1
Fix transaction
alesan99 Dec 31, 2025
648439d
WIP Increase timeout
alesan99 Dec 31, 2025
b737578
Fix automatic titles
alesan99 Dec 31, 2025
a47b78a
Add root node names per tree
alesan99 Jan 5, 2026
11a4d60
Remove close button from Default Tree creation dialog
alesan99 Jan 6, 2026
9970805
Lint code with ESLint and Prettier
alesan99 Jan 6, 2026
20db31d
Merge branch 'main' into issue-6294
grantfitzsimmons Jan 9, 2026
d5ba2f3
Simplify notifications
alesan99 Jan 12, 2026
f8de341
Close add tree dialog on progress dialog close
alesan99 Jan 13, 2026
e52112f
fix tests
alesan99 Jan 13, 2026
8449d3f
Merge branch 'main' into issue-6294
alesan99 Jan 14, 2026
9a6220a
Merge branch 'issue-2931-1' into issue-6294
alesan99 Jan 14, 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
66 changes: 66 additions & 0 deletions specifyweb/backend/trees/tree_mutations.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@

from specifyweb.backend.permissions.permissions import PermissionTarget, PermissionTargetAction


class TaxonMutationPT(PermissionTarget):
resource = "/tree/edit/taxon"
merge = PermissionTargetAction()
move = PermissionTargetAction()
synonymize = PermissionTargetAction()
desynonymize = PermissionTargetAction()
repair = PermissionTargetAction()


class GeographyMutationPT(PermissionTarget):
resource = "/tree/edit/geography"
merge = PermissionTargetAction()
move = PermissionTargetAction()
synonymize = PermissionTargetAction()
desynonymize = PermissionTargetAction()
repair = PermissionTargetAction()


class StorageMutationPT(PermissionTarget):
resource = "/tree/edit/storage"
merge = PermissionTargetAction()
move = PermissionTargetAction()
bulk_move = PermissionTargetAction()
synonymize = PermissionTargetAction()
desynonymize = PermissionTargetAction()
repair = PermissionTargetAction()


class GeologictimeperiodMutationPT(PermissionTarget):
resource = "/tree/edit/geologictimeperiod"
merge = PermissionTargetAction()
move = PermissionTargetAction()
synonymize = PermissionTargetAction()
desynonymize = PermissionTargetAction()
repair = PermissionTargetAction()


class LithostratMutationPT(PermissionTarget):
resource = "/tree/edit/lithostrat"
merge = PermissionTargetAction()
move = PermissionTargetAction()
synonymize = PermissionTargetAction()
desynonymize = PermissionTargetAction()
repair = PermissionTargetAction()

class TectonicunitMutationPT(PermissionTarget):
resource = "/tree/edit/tectonicunit"
merge = PermissionTargetAction()
move = PermissionTargetAction()
synonymize = PermissionTargetAction()
desynonymize = PermissionTargetAction()
repair = PermissionTargetAction()

def perm_target(tree):
return {
'taxon': TaxonMutationPT,
'geography': GeographyMutationPT,
'storage': StorageMutationPT,
'geologictimeperiod': GeologictimeperiodMutationPT,
'lithostrat': LithostratMutationPT,
'tectonicunit':TectonicunitMutationPT
}[tree]
5 changes: 5 additions & 0 deletions specifyweb/backend/trees/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,9 @@
re_path(r'^(?P<treedef>\d+)/(?P<parentid>\w+)/(?P<sortfield>\w+)/$', views.tree_view),
path('repair/', views.repair_tree),
])),

# Create new trees
path('create_default_tree/', views.create_default_tree_view),
re_path(r'^create_default_tree/status/(?P<task_id>[^/]+)/$', views.default_tree_upload_status),
re_path(r'^create_default_tree/abort/(?P<task_id>[^/]+)/$', views.abort_default_tree_creation),
]
Loading
Loading