diff --git a/addons/metadata/utils.py b/addons/metadata/utils.py index ed3b662d8b0..aaacd0ae136 100644 --- a/addons/metadata/utils.py +++ b/addons/metadata/utils.py @@ -151,7 +151,7 @@ def transform_name_fields_item(data): if creators is not None: rows = creators['value'] if isinstance(rows, str): - rows = json.loads(rows) + rows = json.loads(rows) if rows.strip() else [] creators['value'] = rows if isinstance(rows, list) and _transform_creators_rows(rows): dirty = True diff --git a/osf/migrations/0270_remove_metadata_access_rights.py b/osf/migrations/0270_remove_metadata_access_rights.py new file mode 100644 index 00000000000..d202998c716 --- /dev/null +++ b/osf/migrations/0270_remove_metadata_access_rights.py @@ -0,0 +1,43 @@ +from django.db import migrations + +noop = migrations.RunPython.noop + +TARGET_SCHEMA_NAME = '公的資金による研究データのメタデータ登録' + +OBSOLETE_KEY = 'grdm-file:metadata-access-rights' + + +def _transform_item(data): + if OBSOLETE_KEY in data: + data.pop(OBSOLETE_KEY, None) + return True + return False + + +def _transform_entry(entry): + metadata = entry.get('metadata', {}) + if OBSOLETE_KEY in metadata: + metadata.pop(OBSOLETE_KEY, None) + return True + return False + + +def remove_metadata_access_rights(*args): + from addons.metadata.utils import FileMetadataMigrator + migrator = FileMetadataMigrator( + TARGET_SCHEMA_NAME, + _transform_item, + _transform_entry, + ) + migrator.run() + + +class Migration(migrations.Migration): + + dependencies = [ + ('osf', '0269_merge_20260525_0425'), + ] + + operations = [ + migrations.RunPython(remove_metadata_access_rights, noop), + ]