Choose which identifiers are shown and in what order, under Settings → Appearance #672
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo#672
Loading…
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?
From the list: “Ability to change appearance and order of Identifier from user settings.” Identifiers are drawn in one fixed order for everybody, and the only part of them a person can arrange today is the companies table's columns.
What exists today
CompanyIdentifier.Meta.ordering = ("scheme", "value")(src/postulo/jobs/models.py:505) and the same onPersonIdentifier(src/postulo/accounts/models.py:188), so a company's identifiers on its page come out alphabetically by scheme key, and one the person cares about most is wherever the alphabet puts it. The company page drawscompany.identifiers.allas a definition list (src/postulo/templates/jobs/company_detail.html:73-83); Your details draws the person's rows as a form (src/postulo/templates/accounts/profile.html:186-215).src/postulo/jobs/tables.py:120-133), and which columns show, in what order, is kept on the profile inProfile.table_settings(accounts/models.py:388-390,src/postulo/core/tables.py).hidden_nav_itemsandnav_order(accounts/models.py:309-320), and stores what was decided, never what was offered: an item added by a later release is in neither list and is drawn after the placed ones (src/postulo/core/navigation.py:19-30,complete()at:153,to_store()at:201). Settings → Appearance edits them with a switch and two arrow buttons per item, all submit buttons of one form, so it works with scripts off (AppearanceForm,src/postulo/accounts/forms.py:761-909). Both lists travel in the archive (PROFILE_FIELDS,src/postulo/core/export.py:111-137).tests/test_navigation.pyis the test model: default order, placed keys first, new item after the placed ones, forged input passed over, round trip through the archive.src/postulo/core/identifiers.py,registry()); an instance can have schemes this person has never seen, which is the same situation as a navigation item added later.src/postulo/documents/forms.py:205-235). That is which rows print, not in what order the person keeps them.Checked against
mainatf09b6010b.Proposal
Profile, mirroring the navigation pair: the scheme keys the person has placed, in order, and the ones they have switched off. Empty means the default, which is today's behaviour, so nothing is migrated. Both are read through one helper that drops keys the registry does not know and appends unplaced schemes after the placed ones.Decisions
core/identifiers.py), filtered to the subject being drawn; or one per subject. Recommended: one. It is the shorter page and the schemes that are only one subject simply do not appear on the other.Builds on
Issues #307 (a kind already held cannot be chosen again), #308 (what a CV prints), #311 (the registry's schemes defined in JSON; open), #299 (the navigation order that this copies), #109 (one registry, a subject matrix).
Needed by
#654 (the icon or label choice, later). #675 reads the same order when it lists warnings.
Done when
tests/test_navigation.py: the default order is today's; placed keys come first; a scheme added later is drawn after them; a stored list is believed only as far as the registry goes; a forged move is passed over; the order is applied on the company page, in Your details and in the CV's row choice; a hidden scheme is not drawn on the company page and is still in the edit form and the export.tests/test_export.pyortests/test_navigation.py::test_the_arrangement_travels_with_the_accountis extended so both lists round-trip, and the format bump is in place: the archive format goes up by one (src/postulo/core/export.pyFORMAT_VERSION: one more than whateverFORMAT_VERSIONis when the commit lands (29 atf09b6010b); the format tests follow it,tests/test_export.py:96). The candidate format (4 atf09b6010b) does not change: this is how Postulo behaves for one account, not part of the CV (CANDIDATE_PROFILE_FIELDS).src/postulo/core/gdpr.py) is about contacts' data and does not change: these are a person's own display preferences. The Appearance page stays intests/test_page_coverage.pyand the browser suite with axe, both themes.From the list of improvements of 2026-10-02.
Done in
343666d06,f01ce2baband99fca82a0(on main; CI green at15e6d7ee4). Show/hide and order only, one setting for people and companies, per person; hidden identifiers stay in the edit forms, export, API and CVs. Wiki: Your career record.