*** Wartungsfenster jeden ersten Mittwoch vormittag im Monat ***

Skip to content
Snippets Groups Projects
Commit 725a4bb1 authored by Moser, Maximilian's avatar Moser, Maximilian
Browse files

Calculate creatibutor name from given_name and family_name

parent 97b9fafd
Branches
Tags
No related merge requests found
......@@ -32,6 +32,7 @@ from .utils import (
get_identity_for_user,
patch_metadata,
read_metadata,
set_creatibutor_names,
set_record_owners,
)
......@@ -99,6 +100,7 @@ def create_draft(metadata_path, publish, user, owners, vanity_pid):
if owners:
metadata = set_record_owners(metadata, owners)
metadata = set_creatibutor_names(metadata)
draft = create_record_from_metadata(metadata, identity, vanity_pid=vanity_pid)
recid = draft["id"]
......@@ -112,6 +114,7 @@ def create_draft(metadata_path, publish, user, owners, vanity_pid):
if owners:
metadata = set_record_owners(metadata, owners)
metadata = set_creatibutor_names(metadata)
draft = create_record_from_metadata(metadata, identity)
recid = draft["id"]
file_names = []
......@@ -196,6 +199,7 @@ def update_draft(metadata_file, pid, pid_type, user, patch, owners):
owners = [get_identity_for_user(owner) for owner in owners]
metadata = set_record_owners(metadata, owners)
metadata = set_creatibutor_names(metadata)
service.update_draft(id_=pid, identity=identity, data=metadata)
click.secho(pid, fg="green")
......
......@@ -29,6 +29,7 @@ from .utils import (
get_identity_for_user,
get_object_uuid,
patch_metadata,
set_creatibutor_names,
set_record_owners,
)
......@@ -112,6 +113,7 @@ def update_record(metadata_file, pid, pid_type, user, patch, owners):
owners = [get_identity_for_user(owner) for owner in owners]
metadata = set_record_owners(metadata, owners)
metadata = set_creatibutor_names(metadata)
service.update(id_=pid, identity=identity, data=metadata)
click.secho(pid, fg="green")
......
......@@ -133,3 +133,28 @@ def set_record_owners(record_metadata, owners):
metadata["access"]["owned_by"] = owners
return metadata
def _set_creatibutor_name(creatibutor):
"""Set the name from the given_name and family_name from the creator/contributor."""
creatibutor = creatibutor.get("person_or_org", {})
name = creatibutor.get("name")
if not name:
given_name = creatibutor.get("given_name")
family_name = creatibutor.get("family_name")
if given_name and family_name:
creatibutor["name"] = "{}, {}".format(family_name, given_name)
def set_creatibutor_names(record_metadata):
"""Set the name field for each creator and contributor if they're not set."""
metadata = record_metadata.copy()
for creator in metadata.get("metadata", {}).get("creators", []):
_set_creatibutor_name(creator)
for contributor in metadata.get("metadata", {}).get("contributors", []):
_set_creatibutor_name(contributor)
return metadata
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment