Offers in the API, CV export formats, and plugin dashboard widgets #1237
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!1237
Loading…
Reference in a new issue
No description provided.
Delete branch "f-features"
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?
Three 0.6.0 features stacked on one branch, so they share one CI run; each keeps its own commits. Merge fast-forward-only. They were reviewed as #1232, #1235 and #1236, which this replaces.
POST,PATCH,DELETE /api/v1/offers), through the page's own form and functions, under thewritescope.DashboardWidgeton the plugin surface), offered on the arrange page, shown only where the plugin policy allows, its markup held to an allowlist, left out and logged if it fails.Tested locally on the stack: lint, migrations, catalogues (extract writes nothing), and the full unit suite: 16,421 passed. The two failures are
tests/test_wiki_surface.py, which CI skips: the wiki's API table and plugin-surface page gain the offer calls andDashboardWidgetafter the merge.🤖 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>