Comments (7)
The biggest deal of this change is the update of all the digital files when the ancestor collection is edited. In Elasticsearch the documents are not related between them, therefore, if a change is made over a collection with 2 descendant folders and 500 descendant digital files, the collection data must be updated in 503 documents.
This can be executed in an efficient way by using partial updates and bulk requests, but it can be a long time process as the application data grows. Ideally, this should be implemented in an asynchronous task after #15 is done.
Estimate: 16 h
from scope.
We could also implement this in two steps:
-
Add ancestor collection identifier and id to digital files and display link to collection in search page data table. Do not update collection identifier value in digital files when the collection is edited. Running again the CLI
index_data
task will fix the issue but it will need to be executed manually after changing a collection identifier. 2 hours -
Update descendants automatically (and asynchronously) when a collection or folder is edited. 14 hours
from scope.
Some notes to test this:
- A link to the ancestor collection should appear in the search page for each file.
- It should show "Untitled" if the collection title is empty.
- The collection title should be searchable in the search page.
- When a collection is edited, if it has descendant files, it should show a notification about a descendants update in progress.
- When a folder is edited, if it has descendant files, it should show a notification too.
- After the async. update finish the correct folder identifier and collection title should be shown in the search page table.
from scope.
@jraddaoui since I'm still pretty new to SCOPE, I'm going to answer each of your points with my testing results just to make sure I'm looking at the right thing.
- Yes - if I search for "objects/BBhelmet.ai", the search result table has a column called Collection name that contains a link to the collection.
- Yes - shows Untitled with a link to the collection.
- Yes - results page shows all digital files belonging to the collection.
- Yes - a notification pops up reading
A background process has been launched to update the Collection metadata in the Elasticsearch index for the related Digital Files.
- Yes - a notification pops up reading
A background process has been launched to update the Folder metadata in the Elasticsearch index for the related Digital Files.
- Yes - everything updates properly.
Overall, LGTM! I think this is ready for CCA testing.
from scope.
@jraddaoui , this looks great!! Going through the same steps:
- Yes - same results as Sara. The link is working.
- No - I updated a collection title to be blank, and searched "*". The old collection name still appears in the search results, still with a working link. (I wasn't able to test from by uploading a new DIP-- we seem to be having issues uploading DIPs from CCA right now.)
- Yes - same results as Sara.
- Yes - same results as Sara.
- Yes - same results as Sara.
- Yes, I think? See point 2.
Let me know if there's anything else you'd like me to test -- thanks so much!
from scope.
Hi @stefanabreitwieser, it looks like there was another memory issue. More information in #127 (comment).
I have restarted the worker, which allowed a couple of import process to finish and the descendants update/delete should work now.
from scope.
Looks great, thanks Radda!
from scope.
Related Issues (20)
- Show 403 (HTTP Forbidden) page when the user doesn't have enough permissions
- Allow Folder creation with DIPs in tar format
- UX: buttons to validate value selection in the dropdown lists HOT 8
- UX: button to reset all filters HOT 5
- UI: values in the dropdown sorted by alphabetical order HOT 1
- Validate Markdown content
- Add new type of user
- Upgrade django to version 2.1.11 or later HOT 1
- Merge scope and dips core apps into scope HOT 2
- Problem: can't declare Storage Service hosts in uppercase
- Use DC relation field to relate Folders to Collections on DIP upload HOT 1
- DIP import fails for DIPs with updated metadata
- Problem: the DIP import process is sometimes executed twice, failing on the second run HOT 1
- Support Elasticsearch 7.x HOT 2
- Upgrade Django to 3.x
- Problem: Difficulties running sessions between SCOPE and Archivematica Django apps on the same domain
- Problem: Performing deletion requires a package identifier but the user might not be aware of it on clicking the option
- Problem: There may be a breaking JQuery change affecting collapse/expansion of user-interface components HOT 2
- Problem: Doesn't handle Dublin Core (DC) repeating fields correctly
- Problem: Dockerfile fails to build due to missing packages HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from scope.