Import a career record from Europass's current JSON format #69
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
#54 Import a career record from the European Union's XML format
Postulo/postulo
Reference
Postulo/postulo#69
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Observation
Why this is separate from #54
#54 targets the XML —
urn:europass:xml:…, what the 2004 CV editor produced and whatevery old file on somebody's disk still is. It notes the JSON in passing as a trap. Pulled
out here because they are genuinely two pieces of work sharing one destination:
rescuing what people already have;
first, and the one that has to keep working as the platform changes.
Doing them as one issue would mean neither is finished until both are.
Shape
One mapping, two readers. The XML reader and the JSON reader both produce the same
intermediate shape, and everything after that — the review page, the writing, the refusal to
overwrite — is shared. If the JSON reader ends up with its own copy of the mapping, the
split was done wrong.
What the JSON carries, in the Europass Learner Information shape:
LearnerInfo.Identification→ the profile: name, contact address, telephone, email,websites, and an ORCID if one is there (#46);
WorkExperience→Experience, with the period, the employer and its address, theposition, and the activities as highlights;
Education→Education, including the level and the awarding body;Skills.Linguistic→LanguageSkill. Europass records mother tongues separately fromforeign languages, and each foreign one carries CEFR levels split five ways — listening,
reading, spoken interaction, spoken production, writing. Postulo keeps one proficiency,
so the mapping has to say which it takes and why rather than picking silently;
Skills.Computer,Skills.Organisational,Skills.Communication→ skill groups;Achievement→ projects or links.Read it defensively. It is JSON from somewhere else: a size cap, a depth cap, and no
assumption that any key is present or that any value has the type it should. A file that is
half right should import the half that is right and say what it skipped.
Never overwrite, exactly as #54: an import adds entries. Duplicates are the person's to
delete and are far better than something lost.
One file input, not two. A person has a Europass file; they should not have to know
which format it is. The upload sniffs it — a leading
<is the XML, a leading{is theJSON — and says which it found on the review page.
Classification
Enhancement. Not breaking.
Depends on
#54, for the mapping, the review page and the writing. This is a second front door onto the
same machinery, and building it first would mean building that machinery twice.
Open questions
claiming the highest of five on a CV is the sort of thing that gets found out in an
interview. Whatever is chosen, the review page shows all five so the person can correct it.
real export rather than against the schema, and the test file is committed.