-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Beim Speichern soll eine Validierung stattfinden, wenn eine ORCID iD ungültig ist, soll das Dokument so markiert werden, dass das Problem in einer Facette angezeigt werden kann.
Es gibt die Funktionen isValid und getValidationErrors in der Implementation des Datenmodells. Diese werden zur Zeit nicht mehr oder kaum verwendet, weil irgendwann beschlossen wurde, Validierungen in den Formularen durchzuführen, aber im Framework auch das Speichern von ungültigen Werten zuzulassen. Ob das die richtige Entscheidung war, ist nicht ganz klar, aber hier nicht das Thema.
Beim Speichern von ORCID iD Werten werden jetzt vorangestellte URL-Teile entfernt. Dabei könnte auch eine Validierung stattfinden, um bei importierten Dokumente, die nicht in Formularen validiert wurden, ungültige Werte zu erkennen und die Dokumente entsprechend zu markieren.
Ein Problem ist, dass an dieser Stelle im Code, in der storeIdentifierOrcid-Funktion, nicht andere Element, Enrichments, des Dokuments manipuliert werden können oder sollten. Es kann auch zu Race-Conditions kommen, wenn z.B. die Validierung für das gesamte Dokument vorgenommen wird und die Speicherfunktion hinterher den Wert verändert, in dem sie den URL-Präfix entfernt. Wird die Prüfung später angesetzt, sind die Enrichments vielleicht schon gespeichert worden, bevor das Dokument markiert werden kann.
Es muss überlegt werden was ein sinnvolles, robustes Design wäre und dann muss man schauen was mit der aktuellen Implementation ohne viel Aufwand möglich ist. Es kann sein, dass die notwendigen Kompromisse im Augenblick zu groß sind.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status