A Settings page for every person, reached from the account menu, separate from Your details #22

Closed
opened 2026-09-05 12:50:43 +00:00 by tiagoagueda · 0 comments
Owner

Observation

every user should have a dedicated settings page accessible when clicking on its avatar on the drop menu

What exists today

One page, Your details (accounts/profile.html, accounts:profile), holds three different things:

  • Contact block — headline, phone, location, website, LinkedIn, source repository: who the person is, and what the CV prints.
  • Preferences — language, time zone, theme: how Postulo behaves for them.
  • Account — links to Change password, Email addresses and Capture tokens.

That was the right size for 0.1.0. The 0.2.0 milestone adds a theme switch (#9), a hidden-Dashboard option (the next issue), table columns (#20), avatars (#7), verified emails (#3), usernames (#1), notification channels (#4), connections (#11) and API tokens (#12). Piled onto one page, Your details stops being anyone's details.

Shape

Two places, with a clear line between them.

  • Your details keeps what describes the person: name (#2), the contact block, the avatar (#7). It is what documents draw from.
  • Settings gathers how Postulo behaves for the person. A settings area rather than one long page: a left-hand list of sections, each its own view and URL, so a section can grow without crowding the others and a plugin can add one.

Sections, first cut:

Section Holds
Appearance theme (the select behind #9's switch), hide the Dashboard link, table columns and page size (#20)
Language and time language, time zone
Account username (#1), email addresses (#3), password, sign-in methods (#6's connected accounts)
Notifications channels and which events they receive (#4)
Connections every plugin connection (#11)
API tokens personal access tokens (#12), where Capture tokens is today
Your data export and import (core:export), and the account-deletion path

Reached from the account menu (#10): Your details and Settings as the first two entries, above Sign out.

Plugins add sections. A plugin that has per-person settings — a notifier, a store, a sync — declares a section (label, view) and the area lists it under the built-in ones. That is the mission statement applied to the settings page: the core offers the frame, plugins fill it, nothing is hard-coded.

allauth's pages (email addresses, password, connected accounts) already render inside Postulo's shell; they get the settings sidebar as well so they feel like sections rather than detours.

Classification

Enhancement. Not breaking: no field moves, no URL disappears — accounts:profile keeps serving Your details, and the old links redirect to their new section.

Open questions

  1. Sidebar sections (proposal) or one page with anchors? Sections, because #4, #11 and #12 each need forms of their own.
  2. Should Your data include deleting the account here, or does that stay a request to the administrator? Proposal: here, with the export offered first; it is the person's data.
## Observation > every user should have a dedicated settings page accessible when clicking on its avatar on the drop menu ## What exists today One page, *Your details* (`accounts/profile.html`, `accounts:profile`), holds three different things: - **Contact block** — headline, phone, location, website, LinkedIn, source repository: who the person is, and what the CV prints. - **Preferences** — language, time zone, theme: how Postulo behaves for them. - **Account** — links to *Change password*, *Email addresses* and *Capture tokens*. That was the right size for 0.1.0. The 0.2.0 milestone adds a theme switch (#9), a hidden-Dashboard option (the next issue), table columns (#20), avatars (#7), verified emails (#3), usernames (#1), notification channels (#4), connections (#11) and API tokens (#12). Piled onto one page, *Your details* stops being anyone's details. ## Shape **Two places, with a clear line between them.** - **Your details** keeps what describes the person: name (#2), the contact block, the avatar (#7). It is what documents draw from. - **Settings** gathers how Postulo behaves for the person. A settings *area* rather than one long page: a left-hand list of sections, each its own view and URL, so a section can grow without crowding the others and a plugin can add one. **Sections, first cut:** | Section | Holds | |---|---| | Appearance | theme (the select behind #9's switch), hide the Dashboard link, table columns and page size (#20) | | Language and time | language, time zone | | Account | username (#1), email addresses (#3), password, sign-in methods (#6's connected accounts) | | Notifications | channels and which events they receive (#4) | | Connections | every plugin connection (#11) | | API tokens | personal access tokens (#12), where *Capture tokens* is today | | Your data | export and import (`core:export`), and the account-deletion path | **Reached from the account menu** (#10): *Your details* and *Settings* as the first two entries, above *Sign out*. **Plugins add sections.** A plugin that has per-person settings — a notifier, a store, a sync — declares a section (label, view) and the area lists it under the built-in ones. That is the mission statement applied to the settings page: the core offers the frame, plugins fill it, nothing is hard-coded. **allauth's pages** (email addresses, password, connected accounts) already render inside Postulo's shell; they get the settings sidebar as well so they feel like sections rather than detours. ## Classification Enhancement. Not breaking: no field moves, no URL disappears — `accounts:profile` keeps serving *Your details*, and the old links redirect to their new section. ## Open questions 1. Sidebar sections (proposal) or one page with anchors? Sections, because #4, #11 and #12 each need forms of their own. 2. Should *Your data* include deleting the account here, or does that stay a request to the administrator? Proposal: here, with the export offered first; it is the person's data.
tiagoagueda added this to the 0.2.0 milestone 2026-09-05 12:50:43 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
Postulo/postulo#22
No description provided.