diff --git a/invenio_config_tuw/services.py b/invenio_config_tuw/services.py index 82fc2ecf8df5cd5a801d0e5549073e899e1876c3..3e0afbc4a253c6a5ca9048663345910aeb31dd91 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, ]