Feat/repeatable template exporter - #1913
Open
peterjanssens wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When using a template in the exporter that logic workflow path terminates with returning the processed template value, not passing the option to repeat_element_for_multiple_values.
It would be nice to have the repeat_element_for_multiple_values though, and this change would allow that on a chosen delimiter (hiking on the $values array).
Having the delimiter as part of the settings does not require parsing the delimiter from the template and allows for more creative exploding (for instance with nested units).
Direct templating can be more performant than switching "context" for relations, but templating loses the option of repetition. That was the use-case that triggered this evaluation.
There appear two paths for the use of "template" in the processExporterItem function, for this POC I only touched the pathway with source (not clear why that would be different, having source or not - source itself is not used on templating).
I'm not sure if and/or what needs to be done to have other @attributes added to these elements from other mapping rows, as with the original repeatable values; since this follows the $values I think it should be the same..
For instance:

Results:

languages is the original repeatable from the multivalue source, languageo "fails" repeating through template (just returning the delimited values), languages and languagez became repeatable with minimal and (very specialistic) template renders.
The change should be safe, not using the repeat_element_for_multiple_values and delimiter settings will behave as currently (as in the example languageo not having the delimiter)