Closed gannebamm closed 1 year ago
Hey gannebamm, I'm also very interested in this feature. We're currently adopting the metadata schema for our geonode installation. I guess this changes we pretty much are similar to the ones we are planing. Would the other members of the SC accept this changes to the geonode core?
@mwallschlaeger My +1 ;)
Just few headsup:
Thanks for your reply @afabiani and @t-book
I also think keeping the owner as it is is a wise choice. I will come up with an PR as soon as I'm rdy.
@afabiani, since we will need to define third-party contact, do you think something like this #10342 is feasible?
Hey @mwallschlaeger, did you start already with development on this? If so could you include me in the development process? I picked this issue up today and want to finish it in the upcoming two weeks. Thanks
@MalteIwanicki yes i'm on it. but it requires more investigation of code as i thought. we can discuss on working together on this. pls contact me via mail or glitter
The corresponding draft PR #10367 (which is not listed here for some reason)
@giohappy @afabiani Since the GeoNode 4.1 release was postponed but is likely imminent, shall we try to get this new feature into the upcoming 4.1 release?
I will continue my work on the current change requests later this week, so you could have another look into this.
@gannebamm there are plans to release a new version a few weeks after 4.1.0, that should include the refactored faceting/filtering system. I think it will be safer to wait for that release, and take the time to test the multiple ISO roles better, unless you have urgencies.
Is your feature request related to a problem? Please describe. I want to use multiple CI CONTACT roles in the metadata of my datasets via the user GUI.
a) I can not add multiple CI CONTACT roles to a dataset in the metadata wizard / advanced metadata editor. b) I can not use all of the CI CONTACT roles ISO 19139 provides.
additionally, the changes shall be used by pycsw: c) pycsw does not respond with all CI CONTACT roles given. It will only respond with POC ('pointOfContact'), the owner ('originator') and metadata author ('author').
I can put 1:N metadata roles in the Django admin area. This does work since Contact Roles are already implemented in the model:
https://github.com/GeoNode/geonode/blob/6e093976049b6bff7d7af70f76df14e0f2f40e0a/geonode/base/models.py#L98-L109
which uses this enum with all ISO CI CONTACT roles: https://github.com/GeoNode/geonode/blob/6e093976049b6bff7d7af70f76df14e0f2f40e0a/geonode/people/enumerations.py#L21-L34
but currently, you can only set POC and metadata author and owner by the metadata wizard. Some example of this is:
https://github.com/GeoNode/geonode/blob/6e093976049b6bff7d7af70f76df14e0f2f40e0a/geonode/base/models.py#L1850
Describe the solution you'd like Being able to use all ISO CONTACT roles:
author: party who authored the resource processor: party who has processed the data in a manner such that the resource has been modified publisher: party who published the resource custodian: party that accepts accountability and responsibility for the data and ensures appropriate maintenance of the resource point of contact: party who can be contacted for acquiring knowledge about or acquisition of the resource distributor: party who distributes the resource user: party who uses the resource resource provider: party that supplies the resource originator: party who created the resource owner: party that owns the resource principal investigator: key party responsible for gathering information and conducting research
While POC and owner are CI CONTACTs with a multiplicity of 1. Meaning there is only one POC and owner. The other provided roles can have multiple persons involved. Therefore we need an N:M list in the metadata wizard like this:
Furthermore, the pycsw output shall be changed to respond with all possible contact roles. This likely needs changes here:
https://github.com/GeoNode/geonode/blob/6e093976049b6bff7d7af70f76df14e0f2f40e0a/geonode/catalogue/templates/catalogue/full_metadata.xml
Describe alternatives you've considered
Adding new contacts via the Django admin interface. Nonetheless, c) will not work.
Additional context
Example of a CSW response: https://master.demo.geonode.org/catalogue/csw?request=GetRecordById&service=CSW&version=2.0.2&id=76f604f1-99f9-4485-95cb-119815b64d93&outputschema=http%3A%2F%2Fwww.isotc211.org%2F2005%2Fgmd&elementsetname=full
For a dataset with different users for POC, the metadata author and owner.