Repository navigation
[CMSUI] - User preferences route #47
Description
Activity
- added04 type: enhancementmaking existing stuff bettermaking existing stuff better
on Feb 5, 2025 I would call it Settings which I see more commonly these days.
I agree it's a good place for accessing Change Password.
It should include at least:
- language (and we should use this to render the CMSUI labels, even if the content language is different)
- timezone
Reacted by Steve Piercy and Víctor Fernández de Alba- added and removed04 type: enhancementmaking existing stuff bettermaking existing stuff better
on Feb 6, 2025 - added a parent issue
on Jun 4, 2026 - added a parent issue
on Jun 4, 2026 I have looked into things a bit, and the current state of things are:
- Classic UI
@@user-prefernceshas thelanguage,timezonefields based onIPersonalPreferences. IPersonalPreferences(language, timezone, wysiwyg_editor) is member-property data, but
restapi never references it, thus its invisible.@userschemaandGET @users/{id}expose only member-fields, but no language or timezone.⚠️ PATCH @users/{id}on the other hand writes any member property blindly, thesetMemberPropertieshas no schema check), thuslanguage,timezonewrite fine but can't be read back - see plone.restapi PATCH @user
So technically it is possible to implement a write-only form, but it is not readable until plone.restapi has an extended version. I would create the matching ticket and PR in
plone.restapifirst to expose language, timezone user preferences.However there is a decision to be made on the how. Do we extend the current
GET @userschemawithlanguageandtimezone?- Classic UI
@davisagli @sneridagh What do you think about this that @szakitibi mentioned? This is not blocking user preferences development for now, but it makes sense to make a decision about this issue. I think language selection might not even be working in volto right now (?)
I think language selection might not even be working in volto right now (?)
It doesn't send anything to the backend, and it doesn't seem to store it in a cookie either.
@pnicolli @szakitibi I've been talking about this with @davisagli these last days, due to an issue we found in Volto.
We mentioned that we need to update or at least revisit Volto's (and I think Blicca is doing it also) choice to maintain in sync the language "frame" with the content language. However it's still to be seen the underlying implications and the whole workflow (defaults, overrides, etc).As far as I've been told, the user preferences work (at least in a multilingual site). Until you find a content that is not your preferred lang, then it changes. The I18N_LANGUAGE cookie is all over the place, controlling the behavior.
So, I would for now, when coming to the language in settings handling, just change the current language, and probably, set the cookie if we want to maintain that persistent somewhere. Then when whe tackle the multilingual handling, we decide about the whole flow.
The
@@personal-informationroute has been added with #117. The "Personal Information" form is based@userschemasimilar to Voltopersonal-informationpage.The schema generated form is missing some features, widgets, error handling, but as far as I have seen, they are all know issues - see #93.
The "Personal Information" page has the "Change password" link append to it. It is currently a placeholder and pointed at
reset-passwordroute of #109 (#48).The #117 changes do not include
languageandtimezonefields for now. Technically they can be persisted by hacking, but cannot be read back, without being exposed in REST API. From my point of view cleanest path is to extend the@userschemaand@userto include them. It would automatically extend the personal information form too, although some tests might have to be extended and fixed afterwards.Regarding the exact usage of the persisted language setting, is something which could be decided later.
I've been talking about this with @davisagli these last days, due to an issue we found in Volto.
We mentioned that we need to update or at least revisit Volto's (and I think Blicca is doing it also) choice to maintain in sync the language "frame" with the content language.@sneridagh @davisagli
Ah, yes, p l e a s e. I always hated it when I had to assist a client on a content that is neither italian nor english and I had to work with a translated cmsui. I would really want the cmsui to be in my language instead of the content language.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTodo
- StatusShow more project fieldsNo status
- StatusShow more project fieldsBacklog
- StatusShow more project fieldsIn progress
Important
If you are not a member of the Volto Team or Developers Team in the Plone GitHub organization, then do not work on or comment on this issue.
Decide if we need to keep this, if so, implement it.
Could be the place to locate the change password lik?