Personal View Configuration
Each view (Table, List, Kanban, Pivot, Calendar, …) has a base configuration set by the admin — filters, sorting, grouping, visible columns. On top of that base, each user can personalize the view for themselves. Personalizations are saved per user and synced across devices.
How to personalize
There's no separate "personal configuration" menu. Use the existing buttons in the view header — "Filtrar", "Agrupar", "Ocultar", "Pesquisar", the facet panel, calendar mode — and your choices are saved automatically as personal preferences. On your next visit (same session, another device), the view reappears with your preferences.
What is saved
- Personal filters — filters you add via "Filtrar". They're added on top of the admin's filters (intersection). They can't escape an admin restriction: if the admin pinned
statusto a set of values, you can only filter by values within that set. - Sorting — the column + direction you chose; replaces the base sort.
- Grouping — in List view you can choose up to 3 grouping levels via "Agrupar" (other views stay single-level); your choice fully replaces the admin's grouping, it doesn't add to it. "Limpar" in the grouping dialog removes your choice and the view reverts to the admin's grouping.
- Hidden columns — columns hidden via "Ocultar". Columns the admin hid stay hidden; your choice adds to that list.
- Facet panel state (Table / List / Kanban) — open/closed and expanded sections.
- Collapsed groups (Kanban) — the state of each column across sessions.
- Calendar mode — Day / Week / Month / Agenda / Blocks, whichever you last selected.
Each view only exposes the options relevant to it — the calendar doesn't show "group by", Kanban doesn't have "sort by column" in the tabular sense.
Resetting preferences
When you have active personal preferences, a small reset icon (↻) appears in the view header. One click clears all your personalizations (filters, sorting, hidden columns, panel state, etc.) and the view goes back to showing only what the admin defined. It doesn't affect other users' preferences or the base configuration.
Right after the reset, a notification appears at the bottom of the screen with an "Anular" option. You have about 7 seconds to click it — doing so restores all your previous preferences exactly as they were, without having to reapply them manually. After that window the notification disappears and the reset is final (but you can still reconfigure manually).
Precedence
The view results from four layers that progressively narrow it down:
- Admin — filters, sorting, grouping, visible columns defined on the view.
- Rail — if the view sits in a rail with its own configuration, the rail can narrow it further.
- Dynamic context — in linked views (LinkedView, master/detail, Form view) the context passes automatic filters (e.g. lines of a specific invoice). It takes absolute priority over your personal filters.
- Personal — your choices.
If you try to filter a column that's pinned by dynamic context, the option doesn't even show up as filterable (the context controls that column until you leave the view). If you try to filter a column with an admin restriction (e.g. admin allows status ∈ {open, in_progress}) by a value outside that restriction, your filter is silently discarded so it can't bypass the admin's rule.
Sync
Personal preferences are stored in the user_view_config table, per user. They sync across devices via PowerSync — what you personalize on your laptop shows up on your phone after the next refresh. Security policies ensure each user can only see (and only write) their own configuration.
Rapid changes (e.g. repeatedly adjusting a filter) are debounced ~200ms so they don't flood the sync. Locally the view updates immediately — the debounce only affects the write to the server.