openlibhums / openlibhums/janeway
New Event signal: ON_ARTICLE_EDIT
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 238
- Forks
- 97
- Avg merge
- 9d 1h
- Merged PRs (30d)
- 8
Description
Is your feature request related to a problem? Please describe.
When an article's metadata is modified, the person making the edits needs to then remember pushing the metadata changes to indexes and aggregators
Describe the solution you'd like
When an article is edited, an event signal should be fired (e.g. "ON_ARTICLE_EDIT") for exporting tools to be able to subscribe to
Describe alternatives you've considered
We could hook a database signal instead, but we would need to hook multiple models (Article, FrozenAuthor, SectionArticle, Keyword, KeywordArticle...) and then workout what article needs to change based on the model, as well as determine which field updates should lead to a signal being raised. I think using the event system instead, by firing a signal when the django form is saved would work best.
Additional context
Bulk operations will (and probably should!) still require metadata is re-deposited on an ad-hoc basis
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the Django form save path for article metadata and the existing event system. Review the Article, FrozenAuthor, SectionArticle, Keyword, and KeywordArticle models to define the article-level boundary. Done means relevant form saves emit ON_ARTICLE_EDIT for export-tool subscribers, while bulk operations remain ad hoc.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, content
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100