Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
186 commits
Select commit Hold shift + click to select a range
306d3ae
Implementation of 3D Secure Support
ryoya-hayase Apr 14, 2025
cd81b39
fix ret_url
ryoya-hayase Apr 14, 2025
dbc7dab
Session removal on error
ryoya-hayase Apr 15, 2025
243cc9e
Unit Test Implementation
ryoya-hayase Apr 22, 2025
0d9c3fc
Review Comment Fixes
ryoya-hayase Apr 22, 2025
4c149ac
Merge pull request #598 from ryoya-hayase/v0.9.26_hiroba_secure
ivis-kondo Apr 22, 2025
b51293b
fix for cors error
ryoya-hayase May 21, 2025
d398938
Merge pull request #720 from ryoya-hayase/v0.9.26_hiroba_secure
ivis-kondo May 21, 2025
99fe739
fix param for charge secure
ryoya-hayase May 23, 2025
448bfef
Merge pull request #732 from ryoya-hayase/v0.9.26_hiroba_secure
ryoya-hayase May 23, 2025
d9dcfee
fix post-payment process
ryoya-hayase May 27, 2025
c820dc6
Merge pull request #748 from ryoya-hayase/v0.9.26_hiroba_secure
ivis-kondo May 27, 2025
cd0303a
fix the type of WEKO_CHARGE_STATUS
ryoya-hayase Jun 2, 2025
4bd55d6
Merge pull request #780 from ryoya-hayase/v0.9.26_hiroba_secure
ryoya-hayase Jun 3, 2025
d7cd3f1
Bug fixes for integration tests
ryoya-hayase Jun 9, 2025
d7502c6
Merge pull request #793 from ryoya-hayase/v0.9.26_hiroba_secure
ryoya-hayase Jun 10, 2025
d79c922
Merge pull request #892 from ivis-weko3-dev/v0.9.26_hiroba_secure
kanon-yoneji Aug 22, 2025
8730543
Merge pull request #893 from ivis-weko3-dev/feature/H2025-01_v0.9.26_…
kanon-yoneji Aug 22, 2025
475358c
fix HTTP_UIDPDOMAINNAME
kanon-yoneji Aug 22, 2025
fa42788
Merge pull request #895 from kanon-yoneji/MIG-1964_H2025-01_v0.9.26_h…
kanon-yoneji Aug 22, 2025
7fcdc37
fix 3d secure process
ryoya-hayase Nov 11, 2025
e859086
Merge pull request #1054 from ryoya-hayase/hiroba_fix_secure_process
ryoya-hayase Nov 11, 2025
5ac8b10
feat: site licence all check
ivis-kikuchi Feb 20, 2026
e1f88e7
fix
ivis-kikuchi Feb 20, 2026
1077de7
fix
ivis-kikuchi Feb 21, 2026
21dc2c1
fix
ivis-kikuchi Mar 2, 2026
66bb4fd
fix
ivis-kikuchi Mar 2, 2026
a317a17
fix
ivis-kikuchi Mar 4, 2026
09aafa8
fix
ivis-kikuchi Mar 6, 2026
d45865e
fix
ivis-kikuchi Mar 11, 2026
b8d2502
fix
ivis-kikuchi Mar 11, 2026
2e9fa4b
fix: billing_file_label
ivis-kikuchi Mar 12, 2026
0f86062
fix
ivis-kikuchi Mar 16, 2026
ac14d95
fix: unit test
ivis-kikuchi Mar 16, 2026
c62be2c
fix
ivis-kikuchi Mar 16, 2026
06588eb
fix more
ivis-kikuchi Mar 17, 2026
ece97bd
fix
ivis-kikuchi Mar 17, 2026
c547d04
fix
ivis-kikuchi Mar 17, 2026
04b515f
fix
ivis-kikuchi Mar 17, 2026
9f9081c
fix
ivis-kikuchi Mar 17, 2026
8adce5c
unit_test reset
ivis-kikuchi Mar 17, 2026
c993139
fix
ivis-kikuchi Mar 17, 2026
52bfc94
Merge pull request #1072 from kanon-yoneji/v0.9.26_hiroba_fix_opensea…
kanon-yoneji Dec 24, 2025
4a0f4f0
modify task schedule
ivis-kuroda Mar 18, 2026
9dfa2e9
unify the report creation process to support all types of reports
ivis-kuroda Mar 18, 2026
560e4c4
specify date range to create reports in auto-sending
ivis-kuroda Mar 18, 2026
761b9ea
fix options for schedule setting of report mail
ivis-kuroda Mar 18, 2026
3a98d07
add traceback for reports
ivis-kuroda Mar 18, 2026
645115a
fix message color
ivis-kuroda Mar 18, 2026
189f328
weko#37815 fixed double mapping issue
wei-kuochen Jun 22, 2023
a1e936a
weko#37815 fix bug f16ee75576e43387de7c6739341a18d44bfbf0e0
wei-kuochen Jun 27, 2023
0853c3d
weko#37815 fix bug 6d0ba5495aaf0233891d4cf292c7e189ae8a2bdc
wei-kuochen Jun 27, 2023
73ee724
weko#37815 added comment message
wei-kuochen Jun 27, 2023
295ca46
weko#37815 delete test code
wei-kuochen Jun 27, 2023
b102434
weko#37815 fix bug 690a7bf5db8d6d119772de4ef457691dc194db38
wei-kuochen Jul 3, 2023
10f6cbc
weko#37815 fix bug d2622d41d45c454137692407aaab626848b2b74c
wei-kuochen Oct 25, 2023
059a6fb
weko#37815 fix bug c9e1e49208a4356eb73462fee88403101f656fde
wei-kuochen Oct 26, 2023
b964d1a
fix missing comma
nobuyoshikosaka Mar 19, 2026
f7271c2
fix error eb38f0f770225cab6860d219aa5fe37eb65c8caa
Nov 1, 2023
5d6e86c
fix common report query params
ivis-kuroda Mar 19, 2026
f3e97f9
Merge pull request #1105 from ivis-kuroda/hiroba/fix-scheduled-reports
kanon-yoneji Mar 19, 2026
b78992e
Merge pull request #1106 from ivis-kuroda/hiroba/mail-schedules-config
kanon-yoneji Mar 19, 2026
8bab801
Merge pull request #1075 from kanon-yoneji/v0.9.26_hiroba_fix-SHIB_AT…
kanon-yoneji Dec 25, 2025
9fe9d95
Merge pull request #1099 from ivis-kikuchi/fix/billing_file_label
kanon-yoneji Mar 23, 2026
8884096
Merge pull request #1107 from ivis-kikuchi/fix/index_tree_more
kanon-yoneji Mar 23, 2026
7d63060
Merge pull request #1109 from nobuyoshikosaka/feature/W2025-33-displa…
kanon-yoneji Mar 23, 2026
ba0cf08
fix cp437 warn
Dec 26, 2024
468df4d
fix issues/48491
Dec 26, 2024
3585b08
Merge remote-tracking branch 'weko2/feature/W2025-33' into feature/al…
ivis-kikuchi Mar 23, 2026
5827cb8
fix
ivis-kikuchi Mar 23, 2026
e648501
Merge pull request #1093 from ivis-kikuchi/feature/all_check
kanon-yoneji Mar 23, 2026
8efd07c
Merge pull request #1108 from nobuyoshikosaka/feature/W2025-33-toc
kanon-yoneji Mar 23, 2026
8e49f46
refine query params and args for report
ivis-kuroda Mar 24, 2026
3ffe533
indicate the date range in the report file
ivis-kuroda Mar 24, 2026
61d0384
refine the translation of the report header
ivis-kuroda Mar 25, 2026
bd18beb
Merge remote-tracking branch 'ivis-weko3-dev/feature/W2025-33' into h…
ivis-kuroda Mar 25, 2026
f15f4ed
feat: custom_sort
ivis-kikuchi Mar 25, 2026
ca5ac8e
fix
ivis-kikuchi Mar 25, 2026
d2e979e
fix unit test for date range in reports
ivis-kuroda Mar 25, 2026
15bd494
fix
ivis-kikuchi Mar 25, 2026
846167f
Merge pull request #1113 from ivis-kuroda/hiroba/fix-scheduled-reports
kanon-yoneji Mar 25, 2026
0408a35
fix
ivis-kikuchi Mar 25, 2026
45c40a5
fix
ivis-kikuchi Mar 25, 2026
f0b0a8f
fix docstring for reports
ivis-kuroda Mar 25, 2026
be21673
fix: _is_open_date_past
ivis-kikuchi Mar 25, 2026
e75ed85
ut
ivis-kikuchi Mar 25, 2026
13bb282
Merge pull request #1118 from ivis-kikuchi/fix/_is_open_date_past
kanon-yoneji Mar 25, 2026
3b3a11c
fix overall
ivis-kikuchi Mar 25, 2026
2e6696f
fix
ivis-kikuchi Mar 25, 2026
7c0791b
fix
ivis-kikuchi Mar 25, 2026
ce4541f
fix
ivis-kikuchi Mar 25, 2026
f58ff64
fix
ivis-kikuchi Mar 25, 2026
85d03d5
fix
ivis-kikuchi Mar 25, 2026
9c18666
fix
ivis-kikuchi Mar 25, 2026
4c7982d
fix search
ivis-kikuchi Mar 26, 2026
3e1fe7a
fix
ivis-kikuchi Mar 26, 2026
f5343d6
ut
ivis-kikuchi Mar 26, 2026
3cf5397
fix missing test case
ivis-kuroda Mar 26, 2026
babf6e7
fix: paging
ivis-kikuchi Mar 26, 2026
cef9c9f
fix
ivis-kikuchi Mar 26, 2026
31eaee6
fix
ivis-kikuchi Mar 26, 2026
425671c
fix
ivis-kikuchi Mar 26, 2026
74d1034
Merge pull request #1116 from ivis-kikuchi/feature/custom_sort
kanon-yoneji Mar 26, 2026
b0ec0cb
Merge pull request #1121 from ivis-kikuchi/fix/custom_sort
kanon-yoneji Mar 26, 2026
65da99b
add: comment
ivis-kikuchi Mar 26, 2026
9a663da
Merge pull request #1123 from ivis-kikuchi/ut/index_tree_more
kanon-yoneji Mar 27, 2026
fb6b709
fix handling file_download_permission
ivis-kuroda Mar 28, 2026
40e5073
Partially revert "Merge pull request #1099 from ivis-kikuchi/fix/bill…
ivis-kuroda Mar 28, 2026
27b514f
fix handling file's label of billing status
ivis-kuroda Mar 28, 2026
794362b
refine expressions
ivis-kuroda Mar 28, 2026
a4475dd
add test case for file download permission
ivis-kuroda Mar 28, 2026
d63bd1e
fix description
ivis-kuroda Mar 28, 2026
78a8bc2
Merge pull request #1125 from ivis-kuroda/refine/hiroba/billing_file_…
kanon-yoneji Mar 28, 2026
1d2cf1d
fix
ivis-kikuchi Mar 30, 2026
0626f67
fix
ivis-kikuchi Mar 30, 2026
4296592
fix
ivis-kikuchi Mar 30, 2026
70f6a2c
fix
ivis-kikuchi Mar 30, 2026
1204fc6
fix: change reversed() to reverse()
ivis-kikuchi Mar 30, 2026
0aa6ef4
fix: change reversed to reverse
ivis-kikuchi Mar 30, 2026
12568a0
Merge pull request #1124 from ivis-kikuchi/fix/custom_sort2
kanon-yoneji Mar 31, 2026
f0c413e
Merge pull request #1117 from ivis-kuroda/hiroba/test-scheduled-reports
kanon-yoneji Mar 31, 2026
b05708e
fix: unit-test for fixed get_mapping
nobuyoshikosaka Mar 31, 2026
7590077
add: ut
ivis-kikuchi Mar 31, 2026
297c571
fix: delete print
ivis-kikuchi Mar 31, 2026
fe9890a
fix
ivis-kikuchi Mar 31, 2026
22949b3
fix
ivis-kikuchi Mar 31, 2026
03ef9c7
fix: q and comment
ivis-kikuchi Apr 8, 2026
a2c3b20
fix
ivis-kikuchi Apr 8, 2026
1e90e61
fix
ivis-kikuchi Apr 10, 2026
67855bd
Merge branch 'feature/W2025-33_early' into feature/W2025-33
ivis-kuroda Apr 10, 2026
6571c99
Merge pull request #1136 from ivis-kuroda/merge/early-to-mainstream
kanon-yoneji Apr 10, 2026
b204035
fix: circular import
nobuyoshikosaka Apr 13, 2026
1c2ae55
fix: display name
ivis-kikuchi Apr 13, 2026
d9cf5bc
fix: html
ivis-kikuchi Apr 13, 2026
62586ec
fix: unit test
nobuyoshikosaka Apr 13, 2026
5e96e72
fix: format
ivis-kikuchi Apr 13, 2026
133020e
Merge pull request #1140 from ivis-kikuchi/fix/format_html
kanon-yoneji Apr 13, 2026
1abbbcf
Merge pull request #1131 from ivis-kikuchi/ut/custom_sort
kanon-yoneji Apr 13, 2026
5cd5a79
Merge remote-tracking branch 'origin/v0.9.26_hiroba' into feature/W20…
ivis-kikuchi Apr 13, 2026
697c552
Merge pull request #1138 from ivis-kikuchi/fix/display_name
kanon-yoneji Apr 14, 2026
f853a99
_do_custom-sortのformatおよびqの判定テスト追加
ayumi-nishida Apr 14, 2026
4019738
シングルクォーテーション修正
ayumi-nishida Apr 14, 2026
2af371e
fix
ivis-kikuchi Apr 14, 2026
c650e62
Merge pull request #1143 from ivis-kikuchi/fix/display_name
kanon-yoneji Apr 15, 2026
02f2150
update message ids in English for 502abe2
ivis-kuroda Apr 13, 2026
9b62c71
Merge pull request #1145 from ivis-kuroda/fix/admin-translation
kanon-yoneji Apr 15, 2026
1472bce
fix:ut
ivis-kikuchi Apr 16, 2026
a47a40b
fix
ivis-kikuchi Apr 16, 2026
1a998de
fix: unit test
nobuyoshikosaka Apr 17, 2026
25d0789
fix: test_init
ivis-kikuchi Apr 20, 2026
5b029ee
Merge pull request #1130 from nobuyoshikosaka/feature/W2025-33-fix-un…
kanon-yoneji Apr 20, 2026
0c97ade
Merge pull request #1829 from RCOSDP/fix/issues57567
ivis-miyachi Mar 10, 2026
c0ac1aa
Merge pull request #1141 from ayumi-nishida/feature/add-unit-test-for…
kanon-yoneji Apr 20, 2026
2a6ba1d
Merge pull request #1147 from ivis-kikuchi/robot.txt
kanon-yoneji Apr 20, 2026
85eade3
Merge pull request #1142 from ivis-weko3-dev/feature/W2025-33_3Dsecure
kanon-yoneji Apr 20, 2026
2514ab0
fix: bug
ivis-kikuchi Apr 21, 2026
55d7c6b
fix: shib_handle
ivis-kikuchi Apr 21, 2026
07331b6
Merge pull request #1149 from ivis-kikuchi/fix/shib_handle
kanon-yoneji Apr 21, 2026
f82b20c
fix
ivis-kikuchi Apr 21, 2026
eef21a5
Merge pull request #1148 from ivis-kikuchi/fix/bug_custom_sort
kanon-yoneji Apr 21, 2026
1e5e711
Merge remote-tracking branch 'origin/feature/W2025-33' into fix/displ…
ivis-kikuchi Apr 21, 2026
554667c
fix
ivis-kikuchi Apr 21, 2026
6c06e27
fix
ivis-kikuchi Apr 21, 2026
30effbd
add: comment
ivis-kikuchi Apr 22, 2026
44fa6a6
delete: print
ivis-kikuchi Apr 22, 2026
7d8948e
add:ut
ivis-kikuchi Apr 22, 2026
eb064e1
fix
ivis-kikuchi Apr 22, 2026
5950db9
fix
ivis-kikuchi Apr 22, 2026
e7a02ca
Merge pull request #1146 from ivis-kikuchi/fix/display_name
kanon-yoneji Apr 29, 2026
068fccf
fix: source_identifier
ivis-kikuchi May 1, 2026
61c47ce
fix
ivis-kikuchi May 1, 2026
43ffb64
fix
ivis-kikuchi May 1, 2026
fbb4df2
fix
ivis-kikuchi May 1, 2026
48c5d6f
fix
ivis-kikuchi May 1, 2026
bc5d1c1
fix
ivis-kikuchi May 7, 2026
194fffb
fix
ivis-kikuchi May 7, 2026
85a0b08
fix
ivis-kikuchi May 7, 2026
f4556ad
fix
ivis-kikuchi May 7, 2026
10d871b
Merge pull request #1150 from ivis-kikuchi/fix/bug_custom_sort
kanon-yoneji May 8, 2026
c9d1423
fix
ivis-kikuchi May 11, 2026
d0b1850
fix: modal
ivis-kikuchi May 11, 2026
5696e4c
fix
ivis-kikuchi May 11, 2026
a2b6ca1
fix
ivis-kikuchi May 11, 2026
28451c1
fix
ivis-kikuchi May 11, 2026
21c3932
Merge pull request #1151 from ivis-kikuchi/fix/source_identifier
kanon-yoneji May 11, 2026
f2335f6
Merge pull request #1152 from ivis-kikuchi/fix/3dsecure_modal
kanon-yoneji May 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1453,9 +1453,7 @@ def ddi_harvest_processing(self, harvest_data, res):
"""Process parsing DDI data."""
def get_mapping_ddi():
"""Get DDI mapping."""
item_type_id = self.itemtype.id
type_mapping = Mapping.get_record(item_type_id)
item_map = get_mapping(type_mapping, "ddi_mapping")
item_map = get_mapping(self.itemtype.id, "ddi_mapping")
lst_keys_x = list(item_map.keys())
for i in lst_keys_x:
lst_keys.append(i)
Expand Down Expand Up @@ -1543,7 +1541,7 @@ def parse_to_obj_data_by_mapping_keys(vals, keys):
def get_same_key_from_form(sub_key):
"""Get the same key with sub_key in form."""
for item_sub_key_form in item_sub_keys_form:
if item_sub_key_form.replace("[]", "") == sub_key:
if item_sub_key_form.replace("[]", "") in sub_key.split(','):
sub_key = item_sub_key_form
break
return sub_key
Expand Down
458 changes: 230 additions & 228 deletions modules/invenio-oaiharvester/tests/test_harvester.py

Large diffs are not rendered by default.

64 changes: 31 additions & 33 deletions modules/invenio-oaiserver/invenio_oaiserver/response.py
Original file line number Diff line number Diff line change
Expand Up @@ -711,13 +711,11 @@ def check_correct_system_props_mapping(object_uuid, system_mapping_config):

Correct mapping mean item map have the 2 field same with config
"""
from weko_records.api import ItemsMetadata, Mapping
from weko_records.api import ItemsMetadata
from weko_records.serializers.utils import get_mapping

item_type = ItemsMetadata.get_by_object_id(object_uuid)
item_type_id = item_type.item_type_id
type_mapping = Mapping.get_record(item_type_id)
item_map = get_mapping(type_mapping, "jpcoar_mapping")
item_map = get_mapping(item_type.item_type_id, "jpcoar_mapping")

if system_mapping_config:
for key in system_mapping_config:
Expand All @@ -734,49 +732,49 @@ def combine_record_file_urls(record, object_uuid, meta_prefix):

Get file property information by item_mapping and put to metadata.
"""
from weko_records.api import ItemsMetadata, Mapping
from weko_records.api import ItemsMetadata
from weko_records.serializers.utils import get_mapping
from weko_schema_ui.schema import get_oai_metadata_formats

metadata_formats = get_oai_metadata_formats(current_app)
item_type = ItemsMetadata.get_by_object_id(object_uuid)
item_type_id = item_type.item_type_id
type_mapping = Mapping.get_record(item_type_id)
mapping_type = metadata_formats[meta_prefix]['serializer'][1]['schema_type']
item_map = get_mapping(type_mapping,
item_map = get_mapping(item_type.item_type_id,
"{}_mapping".format(mapping_type))
file_keys = None
file_keys_str = None
if item_map:
file_props = current_app.config["OAISERVER_FILE_PROPS_MAPPING"]
if mapping_type in file_props:
file_keys = item_map.get(file_props[mapping_type])
file_keys_str = item_map.get(file_props[mapping_type])
else:
file_keys = None
file_keys_str = None

if not file_keys:
if not file_keys_str:
return record
else:
file_keys = file_keys.split('.')

if len(file_keys) == 3 and record.get(file_keys[0]):
attr_mlt = record[file_keys[0]]["attribute_value_mlt"]
if isinstance(attr_mlt, list):
for attr in attr_mlt:
if attr.get('filename'):
if not attr.get(file_keys[1]):
attr[file_keys[1]] = {}
attr[file_keys[1]][file_keys[2]] = create_files_url(
request.url_root,
record.get('recid'),
attr.get('filename'))
elif isinstance(attr_mlt, dict) and \
attr_mlt.get('filename'):
if not attr_mlt.get(file_keys[1]):
attr_mlt[file_keys[1]] = {}
attr_mlt[file_keys[1]][file_keys[2]] = create_files_url(
request.url_root,
record.get('recid'),
attr_mlt.get('filename'))
file_keys = file_keys_str.split(',')

for file_key in file_keys:
key = file_key.split('.')
if len(key) == 3 and record.get(key[0]):
attr_mlt = record[key[0]]["attribute_value_mlt"]
if isinstance(attr_mlt, list):
for attr in attr_mlt:
if attr.get('filename'):
if not attr.get(key[1]):
attr[key[1]] = {}
attr[key[1]][key[2]] = create_files_url(
request.url_root,
record.get('recid'),
attr.get('filename'))
elif isinstance(attr_mlt, dict) and \
attr_mlt.get('filename'):
if not attr_mlt.get(key[1]):
attr_mlt[key[1]] = {}
attr_mlt[key[1]][key[2]] = create_files_url(
request.url_root,
record.get('recid'),
attr_mlt.get('filename'))

return record

Expand Down
100 changes: 64 additions & 36 deletions modules/invenio-records-rest/invenio_records_rest/serializers/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
import pickle

import pytz
import traceback

from flask import current_app
from weko_records.api import Mapping

from invenio_records_rest.config import RECORDS_REST_DEFAULT_MAPPING_DICT
Expand Down Expand Up @@ -155,51 +158,76 @@ def get_keys(arr):
def get_mapping(item_type_id):
"""Get keys of metadata record by mapping."""
# Get default mapping key and lang from config (defaults are None).
from weko_items_ui.utils import get_options_and_order_list, get_hide_list_by_schema_form
from weko_records.api import ItemTypes

mapping_dict = RECORDS_REST_DEFAULT_MAPPING_DICT
# Get mapping of this record.
mapping = Mapping.get_record(item_type_id)
if not mapping:
meta_option, item_type_mapping = get_options_and_order_list(item_type_id)
item_type = ItemTypes.get_by_id(item_type_id)
item_type_list = None
if item_type:
item_type_list = item_type.render.get('table_row')
hide_list = get_hide_list_by_schema_form(item_type_id)
if not item_type_mapping or not item_type_list:
return mapping_dict
# Update default mapping key and lang by mapping of this record.
identifier = 'system_identifier'
for k, v in mapping.items():
if not type(v.get('jpcoar_mapping')) is dict:
continue
for k1, v1 in v.get('jpcoar_mapping').items():
for k2, v2 in mapping_dict.items():
if k1 != k2.split(':')[1] or not type(v1) is dict:
for k in item_type_list:
if k in item_type_mapping:
v = item_type_mapping.get(k)
prop_hidden = meta_option.get(k, {}).get('option', {}).get('hidden', False)
if not type(v.get('jpcoar_mapping')) is dict \
or prop_hidden:
continue
for k1, v1 in v.get('jpcoar_mapping').items():
skip_flag = False
for h in hide_list:
if h.startswith(k) and \
(('@value' in v1.keys() and
h.endswith(v1.get('@value').split('.')[-1])) or \
('creatorName' in v1.keys() and
h.endswith(v1.get('creatorName', {}).get('@value').split('.')[-1]))):
skip_flag = True
if skip_flag:
continue
key = identifier if identifier in k else k
key_arr = ['metadata', key, 'attribute_value_mlt', 0]
lang_arr = key_arr.copy()
if k1 == 'creator':
name = v1.get('creatorName')
# Set all key for __lang
attr = name.get('@attributes', {})
xml_lang = attr.get('xml:lang', '').split('.')
lang_arr.extend(get_keys(xml_lang))
# Set all key for key
name_arr = name.get('@value').split('.')
key_arr.extend(get_keys(name_arr))
elif '.' in v1.get('@value', ''):
# Set key for __lang
attr = v1.get('@attributes', {})
xml_lang = attr.get('xml:lang', '').split('.')
lang_arr.extend(get_keys(xml_lang))
# Set all key for key
name_arr = v1.get('@value').split('.')
key_arr.extend(get_keys(name_arr))
else:
# Set key for __lang
attr = v1.get('@attributes', {})
lang_arr.append(attr.get('xml:lang'))
# Set all key for key
key_arr.append(v1.get('@value'))
mapping_dict[k2] = key_arr
mapping_dict['{}__lang'.format(k2)] = lang_arr
for k2, v2 in mapping_dict.items():
if k1 != k2.split(':')[1] or \
not type(v1) is dict or \
mapping_dict[k2]:
continue
key = identifier if identifier in k else k
key_arr = ['metadata', key, 'attribute_value_mlt', 0]
lang_arr = key_arr.copy()
if k1 == 'creator':
name = v1.get('creatorName')
# Set all key for __lang
attr = name.get('@attributes', {})
xml_lang = attr.get('xml:lang', '').split('.')
lang_arr.extend(get_keys(xml_lang))
# Set all key for key
name_arr = name.get('@value').split('.')
key_arr.extend(get_keys(name_arr))
elif '.' in v1.get('@value', ''):
# Set key for __lang
attr = v1.get('@attributes', {})
xml_lang = attr.get('xml:lang', '').split('.')
lang_arr.extend(get_keys(xml_lang))
# Set all key for key
name_arr = v1.get('@value').split('.')
key_arr.extend(get_keys(name_arr))
else:
# Set key for __lang
attr = v1.get('@attributes', {})
lang_arr.append(attr.get('xml:lang'))
# Set all key for key
key_arr.append(v1.get('@value'))
mapping_dict[k2] = key_arr
mapping_dict['{}__lang'.format(k2)] = lang_arr
return mapping_dict

links_factory = links_factory or (lambda x, record=None, **k: dict())

metadata = pickle.loads(pickle.dumps(record.replace_refs(), -1)) if self.replace_refs \
else record.dumps()
# Get keys of metadata record by mapping.
Expand Down
Loading