Skip to content

Commit 0d52116

Browse files
author
Kolea Plesco
committed
METS Package updates
1 parent b0b012a commit 0d52116

6 files changed

Lines changed: 24 additions & 25 deletions

File tree

ted_sws/notice_packager/model/metadata.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
MEDIA_TYPE = "RDF"
3434
LANGUAGES = ["en"]
3535
LANGUAGE = LANGUAGES[0]
36-
USES_LANGUAGE = "MULL"
36+
USES_LANGUAGE = "MUL"
3737

3838
ACTION_CREATE = "create"
3939
ACTION_UPDATE = "update"
@@ -85,7 +85,7 @@ class WorkMetadata(Metadata):
8585
dataset_published_by_agent: str = WORK_AGENT
8686
datetime_transmission: str = datetime.datetime.now().isoformat()
8787
title: Optional[Dict[str, str]] = None
88-
date_creation: Optional[str] = None
88+
date_creation: Optional[str] = datetime.datetime.now().strftime('%Y-%m-%d')
8989
concept_type_dataset: str = CONCEPT_TYPE_DATASET
9090
dataset_version: Optional[str] = None
9191
dataset_keyword: List[str] = DATASET_KEYWORD

ted_sws/notice_packager/resources/templates/mets_xml_dmd_rdf.jinja2

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@
1111

1212
<cdm:work rdf:about="&resource;ted/{{ work.identifier }}">
1313
<rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#work"/>
14-
<rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#{{ work.cdm_rdf_type }}"/>
15-
<cdm:work_has_resource-type>{{ work.resource_type }}</cdm:work_has_resource-type>
14+
<rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#procurement_public"/>
15+
<cdm:work_has_resource-type rdf:resource="http://publications.europa.eu/resource/authority/resource-type/PROCUREMENT_NOTICE"/>
1616
<cdm:do_not_index rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">{{ work.do_not_index }}</cdm:do_not_index>
1717
<cdm:work_date_document rdf:datatype="http://www.w3.org/2001/XMLSchema#date">{{ work.date_document }}</cdm:work_date_document>
1818
<cdm:work_created_by_agent rdf:resource="&cellar-authority;corporate-body/{{ work.created_by_agent }}"/>
1919
{% for lang in notice.languages %}
2020
<cdm:work_title xml:lang="{{ lang }}">{{ work.title[lang] }}</cdm:work_title>
2121
{% endfor %}
2222
<cdm:datetime_transmission rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">{{ work.datetime_transmission }}</cdm:datetime_transmission>
23-
<cdm:procurement_public_issued_by_country>{{ work.procurement_public_issued_by_country }}</cdm:procurement_public_issued_by_country>
23+
{# <cdm:procurement_public_issued_by_country>{{ work.procurement_public_issued_by_country }}</cdm:procurement_public_issued_by_country>
2424
{% for uri in work.procurement_public_url_etendering %}
2525
<cdm:procurement_public_url_etendering xml:lang="{{ uri.language }}">{{ uri.text }}</cdm:procurement_public_url_etendering>
26-
{% endfor %}
26+
{% endfor %} #}
2727
{# <cdm:datetime_negotiation rdf:resource="http://publications.europa.eu/ontology/cdm#datetime_transmission"/>
2828
<cdm:work_dataset_published_by_agent rdf:resource="&cellar-authority;corporate-body/{{ work.dataset_published_by_agent }}"/>
2929
<cdm:work_date_creation rdf:datatype="http://www.w3.org/2001/XMLSchema#date">{{ work.date_creation }}</cdm:work_date_creation>

ted_sws/notice_packager/services/metadata_transformer.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,16 +67,15 @@ def from_notice_metadata(cls, notice_metadata: ExtractedMetadata) -> PackagerMet
6767
metadata.notice.id = cls.normalize_value(notice_metadata.notice_publication_number)
6868

6969
# WORK
70+
publication_date = datetime.datetime.strptime(notice_metadata.publication_date, '%Y%m%d').strftime('%Y-%m-%d')
7071
metadata.work.identifier = publication_work_identifier(metadata.notice.id, notice_metadata)
7172
metadata.work.cdm_rdf_type = PROCUREMENT_PUBLIC
7273
metadata.work.resource_type = PROCUREMENT_NOTICE
73-
metadata.work.date_document = notice_metadata.publication_date
74-
metadata.work.uri = publication_notice_uri(metadata.notice.id)
74+
metadata.work.date_document = publication_date
75+
metadata.work.uri = publication_notice_uri(metadata.notice.id, notice_metadata)
7576
title_search = [t.title.text for t in notice_metadata.title if t.title.language == LANGUAGE.upper()]
7677
if len(title_search) > 0:
7778
metadata.work.title = {LANGUAGE: title_search[0]}
78-
metadata.work.date_creation = datetime.datetime \
79-
.strptime(notice_metadata.publication_date, '%Y%m%d').strftime('%Y-%m-%d')
8079
metadata.work.dataset_version = _date.strftime('%Y%m%d') + '-' + _revision
8180
metadata.work.procurement_public_issued_by_country = notice_metadata.country_of_buyer
8281
metadata.work.procurement_public_url_etendering = notice_metadata.uri_list
@@ -85,23 +84,23 @@ def from_notice_metadata(cls, notice_metadata: ExtractedMetadata) -> PackagerMet
8584
metadata.expression.title = {LANGUAGE: BASE_TITLE + " " + metadata.notice.id}
8685

8786
# MANIFESTATION
88-
metadata.manifestation.date_publication = notice_metadata.publication_date
87+
metadata.manifestation.date_publication = publication_date
8988
return metadata
9089

9190

92-
def publication_notice_year(notice_id):
93-
return notice_id.split(NORMALIZED_SEPARATOR)[1]
91+
def publication_notice_year(notice_metadata):
92+
return datetime.datetime.strptime(notice_metadata.publication_date, '%Y%m%d').strftime('%Y')
9493

9594

9695
def publication_notice_number(notice_id):
9796
return notice_id.split(NORMALIZED_SEPARATOR)[0]
9897

9998

100-
def publication_notice_uri(notice_id):
101-
return f"{BASE_WORK}{publication_notice_year(notice_id)}/{notice_id}"
99+
def publication_notice_uri(notice_id, notice_metadata):
100+
return f"{BASE_WORK}{publication_notice_year(notice_metadata)}/{notice_id}"
102101

103102

104103
def publication_work_identifier(notice_id, notice_metadata):
105-
year = publication_notice_year(notice_id)
104+
year = publication_notice_year(notice_metadata)
106105
number = publication_notice_number(notice_id)
107106
return f"{year}_{notice_metadata.ojs_type}_{notice_metadata.ojs_issue_number}_{number}"

tests/test_data/notice_packager/template_metadata.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
},
1010
"work": {
1111
"do_not_index": "true",
12-
"date_document": "2021-08-01",
12+
"date_document": "2016-08-01",
1313
"created_by_agent": "PUBL",
1414
"dataset_published_by_agent": "PUBL",
1515
"datetime_transmission": "2021-08-01T00:01:00",
@@ -34,7 +34,7 @@
3434
},
3535
"manifestation": {
3636
"type": "E_PROCUREMENT_ONTOLOGY",
37-
"date_publication": "2021-08-01",
37+
"date_publication": "2016-08-01",
3838
"distribution_has_status_distribution_status": "COMPLETED",
3939
"distribution_has_media_type_concept_media_type": "RDF"
4040
}

tests/unit/notice_packager/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,4 @@ def invalid_rdf_files_path():
9393

9494
@pytest.fixture
9595
def notice_id():
96-
return "196390_2016"
96+
return "196390_2018"

tests/unit/notice_packager/test_metadata_transformer.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ def test_metadata_transformer(notice_sample_metadata: ExtractedMetadata):
2626
assert hasattr(template_metadata, "manifestation")
2727

2828

29-
def test_publication_notice_year(notice_id):
30-
year = publication_notice_year(notice_id)
31-
assert year == "2016"
29+
def test_publication_notice_year(notice_sample_metadata):
30+
year = publication_notice_year(notice_sample_metadata)
31+
assert year == "2018"
3232

3333

34-
def test_publication_notice_uri(notice_id):
35-
uri = publication_notice_uri(notice_id)
36-
assert uri == "http://data.europa.eu/a4g/resource/2016/196390_2016"
34+
def test_publication_notice_uri(notice_id, notice_sample_metadata):
35+
uri = publication_notice_uri(notice_id, notice_sample_metadata)
36+
assert uri == "http://data.europa.eu/a4g/resource/2018/196390_2018"

0 commit comments

Comments
 (0)