Your career in the account menu, after Your details #676
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#676
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?
Your details and Your career are the two halves of what Postulo knows about the person as a candidate, and they sit in different places: Your details in the account menu, Your career under Documents in the main navigation. The maintainer's list asks for the second to follow the first: "User menu: after “Your details” show “Your career”."
What exists today
kind="navigation"disclosure of links: the person, then Your details, Settings, Server settings for staff, a separator, the theme switch and Sign out (src/postulo/templates/base.html:192-240). Your details is the first link (base.html:216-218). There is no link to the career record in it.resume:overview, at/career/(src/postulo/config/urls.py:24). It is reached from the main navigation only through the Documents item, which listsresume:overviewamong the URL names that light it up (src/postulo/core/navigation.py:84-96, the name at line 93), and from buttons on the CV list, the CV page, the candidate file page and the preview (documents/cv_list.html:22,56,documents/cv_detail.html:256,resume/candidate_file.html:88,resume/preview.html:15).documents:cv_list(navigation.py:87), so the Your career page is one click from a CV list and no click from the account menu where Your details is.resume:overviewis in Documents' list. The other pages of the same area (resume:preview,resume:item_create,resume:item_update,resume:europass_import,resume:candidate_file, and the rest insrc/postulo/resume/urls.py) light up nothing in the main navigation.trigger_class="{% nav_active 'accounts:profile' %} …"(base.html:193). The links inside the menu are never marked, although the stylesheet already draws.menu-item[aria-current="page"](assets/css/app.css:826, written for the row under More, #299).src/postulo/core/search.py:542); the page's own title and heading are “Your career” (templates/resume/overview.html:4,9). The wiki gives the way as “Documents → Your career” (or “… → Your career record”) in five places (Getting-started.md:117,Your-career-record.md:3,:111,:321,:517)./career/#experience,#education,#projects,#certificationsand#skills(search.py:492,:510), but the page's anchors aresection-<slug>(overview.html:39:section-experience,section-project, …), so none of those fragments exists on the page.Checked against
mainatf09b6010b.Proposal
resume:overview, with an icon from the bundled set (assets/icons.txt). The menu is a list of links, so Tab walks it in the order they are written; nothing else about the component changes (templates/cotton/dropdown_menu.html).resume:overviewleaves the Documents item's list (navigation.py:93), so the page is not lit under two places.aria-current="page"(the stylesheet already marks it with weight, tint and underline, not colour alone), and the avatar button is marked on the pages of either row. The career area's URL names are kept in one list besideITEMSincore/navigation.py, next to the account menu's two rows, and a test walksresume/urls.pyso that a page added to the area without its name in the list fails.search.py:542), so the results page and the menu say the same thing. “Your career” is already a translated msgid; “Career record” is used nowhere else and leaves the catalogues at the next extract.Getting-started.mdandYour-career-record.mdsay “Your picture, top right → Your career” in place of “Documents → Your career” at the five places above, in the same commit.Decisions
graduation-capis already bundled, but means study.briefcaseis the Listings icon. Lucide hasbriefcase-business(present inlucide-statichere), which would be a new line inassets/icons.txtand one more file understatic/icons/. Recommended:briefcase-business, so the two are not confused in the same screen as Listings and Education; it is one line in the icon list and a test besidetests/test_navigation.py::test_every_item_has_an_icon_from_the_bundled_setholds the account menu's rows to the same rule./career/. Options: keep it in both places, or only in the account menu. Recommended: only in the account menu; two controls that both claim to be “you are here” for one page is what #299 removed for the dashboard and the wordmark. The CV list keeps its “Your career” button, so the way from a CV to the record is unchanged.search_career) or file separately. Recommended: separately as a bug; it is not caused by this issue and has its own test.Builds on
#282 (the avatar-only account menu, which the template comment at
base.html:180describes as “the person, three links, a switch and sign-out”: this makes it four links), #299 (the main navigation;aria-currentin a menu row), #180 (Your details), #175 (Your career in sections). Related: #677 changes the label over the sub-menu of both pages and touches the same two templates; the two are independent.Done when
/career/.tests/test_header.py::test_the_right_side_holds_the_plus_menu_and_the_account_menuis extended for it (it already slices the panel up to “Your details”)./career/and on every page ofresume/urls.py, the avatar button carries the active class and the Your career row carriesaria-current="page", the Documents item does not light, and on/accounts/profile/the same holds for Your details. New tests intests/test_navigation.py, including the walk of the career area's URL names.tests/test_search.pyis updated for the renamed group; a case intests/e2e/test_keyboard_and_focus.py, beside the account-menu one, opens the menu by keyboard and finds the row by Tab, and the axe run over the pages (tests/e2e/test_accessibility.py) stays clean in both themes.assets/icons.txtandsrc/postulo/static/icons/(npm run sync:icons);tests/test_icons.pypasses.From the list of improvements of 2026-10-02.