Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bad role CI_RoleCode codelistvalues #12534

Open
etj opened this issue Aug 29, 2024 · 2 comments
Open

Bad role CI_RoleCode codelistvalues #12534

etj opened this issue Aug 29, 2024 · 2 comments

Comments

@etj
Copy link
Contributor

etj commented Aug 29, 2024

Codelist values for gmd:CI_RoleCode should be

Entry Description Notes
author party who authored the resource
custodian party that accepts accountability and responsability for the data and ensures appropriate care and maintenance of the resource
distributor party who distributes the resource
originator party who created the resource
owner party that owns the resource
pointOfContact party who can be contacted for acquiring knowledge about or acquisition of the resource
principalInvestigator key party responsible for gathering information and conducting research
processor party who has processed the data in a manner such that the resource has been modified
publisher party who published the resource
resourceProvider party that supplies the resource
sponsor party that sponsors the resource
user party who uses the resource

In GeoNode they are defined as

class Roles(enum.Enum):
"""Roles with their `label`, `is_required`, `is_multivalue`, `is_toggled_in_metadata_editor"""
OWNER = Role("Owner", True, False, False)
METADATA_AUTHOR = Role("Metadata Author", True, True, True)
PROCESSOR = Role("Processor", False, True, True)
PUBLISHER = Role("Publisher", False, True, True)
CUSTODIAN = Role("Custodian", False, True, True)
POC = Role("Point of Contact", True, True, False)
DISTRIBUTOR = Role("Distributor", False, True, True)
RESOURCE_USER = Role("Resource User", False, True, True)
RESOURCE_PROVIDER = Role("Resource Provider", False, True, True)
ORIGINATOR = Role("Originator", False, True, True)
PRINCIPAL_INVESTIGATOR = Role("Principal Investigator", False, True, True)

where the label is also set as codeListValue:

<gmd:role>
<gmd:CI_RoleCode codeSpace="ISOTC211/19115" codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="{{ label }}">{{ label }}</gmd:CI_RoleCode>
</gmd:role>

This values are still not inserted into the xml metadata because of #12533

@ridoo
Copy link
Contributor

ridoo commented Nov 7, 2024

@etj we already mapped these roles via template tag. Do you think that kind of fix/change would resolve this issue? Then we would be happy to provide an upstream PR.

@ridoo
Copy link
Contributor

ridoo commented Nov 13, 2024

@etj if you intend to support this more natively, we also can think of adding code to Role like:

class Role:
    def __init__(self, label, code, is_required, is_multivalue, is_toggled_in_metadata_editor):
        self.label = label
        self.code = code
        self.is_required = is_required
        self.is_multivalue = is_multivalue
        self.is_toggled_in_metadata_editor = is_toggled_in_metadata_editor

    def __repr__(self):
        return self.label

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants