Export a CV as Europass and as JSON Resume #1235
No reviewers
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo!1235
Loading…
Reference in a new issue
No description provided.
Delete branch "f-1100"
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?
Closes #1100: a CV can be downloaded as Europass and as JSON Resume.
fastjsonschema2.22.3 (BSD-3-Clause, pure Python, no advisories).For review: europass.europa.eu today writes a Candidate XML, not this JSON; SkillsPassport JSON was chosen as the only Europass with a JSON Schema and the one Postulo reads back. Postulo's reader turns every Europass achievement block into a project, so certifications and the like come back as projects (a possible follow-up).
Tested: the new tests fail without the change (26 pass with it); documents, Europass, formats, manifests, icons and query-budget tests, and the browser tests of the CV pages, accessibility and reflow. No migration, no archive change; new strings extracted for Weblate.
🤖 Generated with Claude Code
A CV could be read in from Europass but never written back to it, and portals across Europe take Europass while many tools read JSON Resume: a CV that left only as a PDF or a Word file was retyped into each. Both are now formats of a CV beside text, OpenDocument and Word, each a sub-module of Extend file formats ("Europass export", "JSON Resume"). A format may now be handed the CV as values (documents.structured) instead of its outline: the variant's chosen entries in its order and language, and the personal details it prints, nobody where its contact block is off. Such a format is never offered for a letter. The Europass writer sits beside the reader in the europass plugin and writes the SkillsPassport JSON (schema 3.3.0) with the reader's own mapping, so a CV written as Europass reads back through Postulo's importer as what was written; a test holds that. Long fields are HTML, as the format's are, with what was typed escaped. JSON Resume (schema 1.2.1) is written in its own fields. What a format has no place for is left out of the file and named under its download on the CV's page. The JSON Resume schema (MIT) is vendored under tests/data and the file is checked against it; the Europass schema states no licence, so the test writes out the constraints of it the writer relies on. fastjsonschema (BSD-3-Clause, pure Python, no dependencies, no advisories) is a new test-only dependency. Closes #1100 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>958aa124c6bf8e4a9955Superseded by #1237, which stacks this branch with two other features so they share one CI run (each merge here is fast-forward-only, so landing them one by one would mean a CI run each after every rebase). The commits are the same.
🤖 Generated with Claude Code
Pull request closed