pulibrary / figgy

Valkyrie-based digital repository backend.
Other
35 stars 4 forks source link

Item with images and child object with more pages #6380

Closed ccleeton closed 1 month ago

ccleeton commented 2 months ago

https://figgy.princeton.edu/catalog/b00eabd1-eb26-417f-810d-8d9a0d71d6e2

The above item is having some issues with the structure. When looking at the item you can see see the items for Folder 8 but if you click on Folder 7 it spins.

I think this might have been caused by our ingest. There are times when we are digitizing selected items from a single component. For example we did these two folders at a separate time. So during the ingest it messes with the structure. I also now do not have access to edit the item in figgy.

If this could be fixed it would be great. We also need some guidance on how to ingest something into a compid when we already have structure.

Implementation Details

The images that are attached directly to the resource should be extracted into its own resource, that resource should be added as a child, and the structure should be migrated to the new resource if possible.

Useful information

for https://figgy.princeton.edu/catalog/b00eabd1-eb26-417f-810d-8d9a0d71d6e2, just create a new resource named 'Folder 8', no structure migration necessary.

For https://figgy.princeton.edu/catalog/1876cf9e-ef27-4e76-be77-bb31c8f25e65 create a new resource named "Reel 91", and migrate structure.

Sudden Priority Justification

These resources can only be fixed by developers, there's no other avenue to fix them manually in a reasonable way.

ccleeton commented 2 months ago

Kim McCauley also has this example https://figgy.princeton.edu/catalog/1876cf9e-ef27-4e76-be77-bb31c8f25e65

tpendragon commented 2 months ago

Confirmed that this can be worked on in the 3 week timeframe, we'll prioritize it at our next cycle planning.

tpendragon commented 1 month ago

https://figgy.princeton.edu/catalog/b00eabd1-eb26-417f-810d-8d9a0d71d6e2 is moved

tpendragon commented 1 month ago

Moved the second one. Created a volume in the UI then did this:

resource = ChangeSetPersister.default.query_service.find_by(id: "1876cf9e-ef27-4e76-be77-bb31c8f25e65")
reel = ChangeSetPersister.default.query_service.find_by(id: "951990d1-de45-419f-b45c-9beb129232fe")
file_sets = Wayfinder.for(resource).file_sets
reel.member_ids = file_sets.map(&:id)
reel.logical_structure = resource.logical_structure
ChangeSetPersister.default.save(change_set: ChangeSet.for(reel))
resource = ChangeSetPersister.default.query_service.find_by(id: "1876cf9e-ef27-4e76-be77-bb31c8f25e65")
resource.member_ids = resource.member_ids - file_sets.map(&:id)
resource.logical_structure = []
ChangeSetPersister.default.save(change_set: ChangeSet.for(resource))