Feature #41 | Creating physical samples config support and edit form - #118
Merged
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## feat-41/igsn #118 +/- ##
================================================
- Coverage 17.13% 16.83% -0.31%
================================================
Files 21 21
Lines 10212 10617 +405
Branches 1977 2064 +87
================================================
+ Hits 1750 1787 +37
- Misses 8279 8646 +367
- Partials 183 184 +1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
gabrielakuhn
marked this pull request as ready for review
June 25, 2026 11:29
kairoaraujo
requested changes
Jun 27, 2026
kairoaraujo
left a comment
Collaborator
There was a problem hiding this comment.
Hi @gabrielakuhn I'm leaving few comments on this round.
I'm planning do a second round in the database and sparql
gabrielakuhn
force-pushed
the
wip-feat-41-igsn
branch
from
June 29, 2026 08:38
9acb327 to
7e3a763
Compare
kairoaraujo
reviewed
Jun 30, 2026
kairoaraujo
left a comment
Collaborator
There was a problem hiding this comment.
Sorry, I have some small comments :)
gabrielakuhn
force-pushed
the
wip-feat-41-igsn
branch
3 times, most recently
from
July 2, 2026 14:48
a423c28 to
40ffe14
Compare
kairoaraujo
approved these changes
Jul 2, 2026
kairoaraujo
left a comment
Collaborator
There was a problem hiding this comment.
LGTM, I assume you will rebase the others after merged
Collaborator
Author
Thanks! Yes, will do that. |
gabrielakuhn
force-pushed
the
wip-feat-41-igsn
branch
from
July 3, 2026 08:06
40ffe14 to
8f568a8
Compare
* src/djehuty/web/database.py: Add physical_objects getter and insert/update/delete procedures, plus creators, events and related identifier sub-record getters and helpers. * src/djehuty/web/wsgi.py: Add UI endpoints to list, create, edit and delete physical objects, and API endpoints for creators, events and related identifiers. * src/Makefile.am: Register the new physical object templates, SPARQL queries and edit-physical-object.js in the resource list. * src/djehuty/web/resources/html_templates/depositor/physical-objects.html: Add the page listing physical objects. * src/djehuty/web/resources/html_templates/depositor/edit-physical-object.html: Add the physical object metadata edit form. * src/djehuty/web/resources/html_templates/depositor/dashboard.html: Add a physical objects entry to the dashboard. * src/djehuty/web/resources/html_templates/depositor/my-data.html: Add a link to the physical objects page. * src/djehuty/web/resources/html_templates/depositor/my-collections.html: Add a link to the physical objects page. * src/djehuty/web/resources/static/js/edit-physical-object.js: Add the client-side logic for editing physical objects. * src/djehuty/web/resources/sparql_templates/physical-objects.sparql: Add query to retrieve physical objects. * src/djehuty/web/resources/sparql_templates/physical_object_creators.sparql: Add query to retrieve physical object creators. * src/djehuty/web/resources/sparql_templates/physical_object_events.sparql: Add query to retrieve physical object events. * src/djehuty/web/resources/sparql_templates/physical_object_related_identifiers.sparql: Add query to retrieve physical object related identifiers. * src/djehuty/web/resources/sparql_templates/initiate_creator_for_physical_object.sparql: Add query to create a creator for a physical object. * src/djehuty/web/resources/sparql_templates/initiate_event_for_physical_object.sparql: Add query to create an event for a physical object. * src/djehuty/web/resources/sparql_templates/initiate_related_identifier_for_physical_object.sparql: Add query to create a related identifier for a physical object. * src/djehuty/web/resources/sparql_templates/update_physical_object_draft.sparql: Add query to update a physical object draft. * src/djehuty/web/resources/sparql_templates/delete_physical_object_draft.sparql: Add query to delete a physical object draft.
…SN config * src/djehuty/web/database.py: Rename physical objects to physical samples, add dates and related resource handling, fix the cache and remove a duplicate query run. * src/djehuty/web/wsgi.py: Rename endpoints to physical samples, add API endpoints for dates, related resources, tags, categories and reordering, add the auth guard return and correct 404/405 handling. * src/djehuty/web/formatter.py: Add record formatters for physical samples, dates and related resources. * src/djehuty/web/ui.py: Parse the IGSN API configuration from the configuration file. * src/djehuty/web/config/runtime.py: Add IGSN settings and expose supports_igsn. * src/Makefile.am: Update the resource list for physical sample templates, SPARQL queries and edit-physical-sample.js. * src/djehuty/web/resources/html_templates/depositor/physical-samples.html: Rename the file. * src/djehuty/web/resources/html_templates/depositor/edit-physical-sample.html: Rename and expand the metadata edit form with keywords, categories, dates, related resources, geolocation and owner contact fields. * src/djehuty/web/resources/html_templates/depositor/dashboard.html: Update the dashboard entry for physical samples. * src/djehuty/web/resources/html_templates/depositor/my-data.html: Update the link to the physical samples page. * src/djehuty/web/resources/html_templates/depositor/my-collections.html: Update the link to the physical samples page and remove a duplicate button. * src/djehuty/web/resources/static/js/edit-physical-sample.js: Rename and extend the client-side logic for editing physical samples. * src/djehuty/web/resources/static/css/form.css: Adjust form styling. * src/djehuty/web/resources/sparql_templates/physical-samples.sparql: Rename the query to retrieve physical samples. * src/djehuty/web/resources/sparql_templates/physical_sample_creators.sparql: Rename the query to retrieve physical sample creators. * src/djehuty/web/resources/sparql_templates/physical_sample_dates.sparql: Add query to retrieve physical sample dates. * src/djehuty/web/resources/sparql_templates/physical_sample_related_resources.sparql: Rename the query to retrieve physical sample related resources. * src/djehuty/web/resources/sparql_templates/initiate_creator_for_physical_sample.sparql: Rename the query to create a creator for a physical sample. * src/djehuty/web/resources/sparql_templates/initiate_date_for_physical_sample.sparql: Rename the query to create a date for a physical sample. * src/djehuty/web/resources/sparql_templates/initiate_related_resource_for_physical_sample.sparql: Rename the query to create a related resource for a physical sample. * src/djehuty/web/resources/sparql_templates/update_physical_sample_draft.sparql: Rename and extend the query to update a physical sample draft. * src/djehuty/web/resources/sparql_templates/delete_physical_sample_draft.sparql: Rename the query to delete a physical sample draft. * src/djehuty/web/resources/sparql_templates/update_authors_order.sparql: Make the author reorder query accept a predicate.
gabrielakuhn
force-pushed
the
wip-feat-41-igsn
branch
from
July 3, 2026 09:02
8f568a8 to
bcbca9f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Attention
This branch is in wip. I am currently removing all the all physical-sample class and property
insertions from this branch to add later in the migrations.
Summary
Add physical samples to djehuty
This adds a new type of output you can deposit in the repository, physical samples.
Depositors get a new "Physical samples" area in their dashboard where they can create, edit, and delete sample drafts. This also creates a the edit form which lets you fill in all the
physical-samples metadata
Also adds a config for the IGSN to later integrate with Datacite.
Nothing here changes the existing dataset or collection flows; it all sits side by side.
Changes
web: Implement physical samples with metadata editing and IGSN config
insert/update/delete procedures, plus creators, dates and related
resource sub-record getters and add helpers.
delete physical samples, and API endpoints for creators, dates,
related resources, tags, categories and reordering.
samples, dates and related resources.
configuration file.
supports_igsn as a property derived from the prefix.
queries and edit-physical-sample.js in the resource list.
Add the page listing a depositor's physical samples.
Add the physical sample metadata edit form.
a physical samples entry to the dashboard.
link to the physical samples page.
Add a link to the physical samples page.
client-side logic for editing physical samples, including creators,
dates, related resources, keywords and categories.
Add query to retrieve physical samples.
Add query to retrieve physical sample creators.
Add query to retrieve physical sample dates.
Add query to retrieve physical sample related resources.
Add query to create a creator for a physical sample.
Add query to create a date for a physical sample.
Add query to create a related resource for a physical sample.
Add query to update a physical sample draft.
Add query to delete a physical sample draft.
Generalise the author reorder query to accept a predicate.
Approval Checklist
Issue Reference
Is part of issue #41
Screenshots (optional)
User dashboard:

Physical Samples dashboard:

Physical Samples registration form

Note