From f0b28a3075db0f26b8d22da1e2d25836c36c7d86 Mon Sep 17 00:00:00 2001 From: Maximilian Moser <maximilian.moser@tuwien.ac.at> Date: Tue, 11 Mar 2025 11:14:15 +0100 Subject: [PATCH] Add service component for setting the publication date on new versions * the "metadata" service component copies over every field *except for* "version" and "publication_date" from the old record --- invenio_config_tuw/services.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/invenio_config_tuw/services.py b/invenio_config_tuw/services.py index 82fc2ec..3e0afbc 100644 --- a/invenio_config_tuw/services.py +++ b/invenio_config_tuw/services.py @@ -9,6 +9,8 @@ """Overrides for core services.""" +from datetime import datetime + from invenio_curations.services.components import ( CurationComponent as BaseCurationComponent, ) @@ -84,9 +86,20 @@ class CurationComponent(BaseCurationComponent): return value +class PublicationDateComponent(ServiceComponent): + """Component for populating the "publication_date" metadata field.""" + + def new_version(self, identity, draft=None, record=None): + """Set "publication_date" for new record versions.""" + draft.metadata.setdefault( + "publication_date", datetime.now().strftime("%Y-%m-%d") + ) + + TUWRecordsComponents = [ *DefaultRecordsComponents, ParentAccessSettingsComponent, PublicationNotificationComponent, + PublicationDateComponent, CurationComponent, ] -- GitLab