Skip to content

Commit

Permalink
Translate dates from esri metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Nov 30, 2022
1 parent 6b65b42 commit 63860ec
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 1 deletion.
33 changes: 33 additions & 0 deletions src/core/metadata/qgsmetadatautils.cpp
Expand Up @@ -43,6 +43,39 @@ QgsLayerMetadata QgsMetadataUtils::convertFromEsri( const QDomDocument &document
if ( metadata.identifier().isEmpty() && !title.isEmpty() )
metadata.setIdentifier( title );

const QDomElement citationDatesElement = idCitation.firstChildElement( QStringLiteral( "date" ) ).toElement();
if ( !citationDatesElement.isNull() )
{
{
const QDomElement createDateElement = citationDatesElement.firstChildElement( QStringLiteral( "createDate" ) ).toElement();
if ( !createDateElement.isNull() )
{
metadata.setDateTime( Qgis::MetadataDateType::Created, QDateTime::fromString( createDateElement.text(), Qt::ISODate ) );
}
}
{
const QDomElement pubDateElement = citationDatesElement.firstChildElement( QStringLiteral( "pubDate" ) ).toElement();
if ( !pubDateElement.isNull() )
{
metadata.setDateTime( Qgis::MetadataDateType::Published, QDateTime::fromString( pubDateElement.text(), Qt::ISODate ) );
}
}
{
const QDomElement reviseDateElement = citationDatesElement.firstChildElement( QStringLiteral( "reviseDate" ) ).toElement();
if ( !reviseDateElement.isNull() )
{
metadata.setDateTime( Qgis::MetadataDateType::Revised, QDateTime::fromString( reviseDateElement.text(), Qt::ISODate ) );
}
}
{
const QDomElement supersededDateElement = citationDatesElement.firstChildElement( QStringLiteral( "supersDate" ) ).toElement();
if ( !supersededDateElement.isNull() )
{
metadata.setDateTime( Qgis::MetadataDateType::Superseded, QDateTime::fromString( supersededDateElement.text(), Qt::ISODate ) );
}
}
}

// abstract
const QDomElement idAbs = dataIdInfo.firstChildElement( QStringLiteral( "idAbs" ) );
const QString abstractPlainText = QTextDocumentFragment::fromHtml( idAbs.text() ).toPlainText();
Expand Down
8 changes: 7 additions & 1 deletion tests/src/python/test_qgsmetadatautils.py
Expand Up @@ -13,7 +13,8 @@
from qgis.PyQt.QtCore import QDateTime
from qgis.PyQt.QtXml import QDomDocument
from qgis.core import (
QgsMetadataUtils
QgsMetadataUtils,
Qgis
)
from qgis.testing import (start_app,
unittest,
Expand Down Expand Up @@ -52,6 +53,11 @@ def testConvertEsri(self):
self.assertEqual(metadata.extent().spatialExtents()[0].bounds.yMaximum(), -9.373145)
self.assertEqual(metadata.extent().spatialExtents()[0].extentCrs.authid(), 'EPSG:4283')

self.assertEqual(metadata.dateTime(Qgis.MetadataDateType.Created), QDateTime(2022, 11, 1, 0, 0))
self.assertEqual(metadata.dateTime(Qgis.MetadataDateType.Published), QDateTime(2016, 6, 28, 0, 0))
self.assertEqual(metadata.dateTime(Qgis.MetadataDateType.Revised), QDateTime(2022, 11, 5, 0, 0))
self.assertEqual(metadata.dateTime(Qgis.MetadataDateType.Superseded), QDateTime(2022, 11, 12, 0, 0))

self.assertEqual(metadata.licenses(), ['This material is licensed under a CC4'])
self.assertEqual(metadata.rights(), ['The State of Queensland (Department of Natural Resources and Mines)',
'© State of Queensland (Department of Natural Resources and Mines) 2016'])
Expand Down
4 changes: 4 additions & 0 deletions tests/testdata/esri_metadata.xml
Expand Up @@ -141,6 +141,10 @@
<resTitle Sync="FALSE">Baseline roads and tracks Queensland</resTitle>
<date>
<pubDate>2016-06-28T00:00:00</pubDate>
<createDate>2022-11-01T00:00:00</createDate>
<reviseDate>2022-11-05T00:00:00</reviseDate>
<deprecDate>2022-11-29T00:00:00</deprecDate>
<supersDate>2022-11-12T00:00:00</supersDate>
</date>
<citRespParty>
<rpIndName>DNRM, NR, LSI, ED</rpIndName>
Expand Down

0 comments on commit 63860ec

Please sign in to comment.