Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

As a user from another country I want to see names in a format that we use so that they reflect my cultural norms #6830

Open
4 of 6 tasks
euanmillar opened this issue Apr 19, 2024 · 5 comments · Fixed by #7697, opencrvs/opencrvs-countryconfig#289, opencrvs/opencrvs-countryconfig#298 or #7812 · May be fixed by #7957
Assignees
Labels
Milestone

Comments

@euanmillar
Copy link
Collaborator

euanmillar commented Apr 19, 2024

Description

OpenCRVS is hardcoded to display names with family name appearing last in many places: {firstName} {middleName} {lastName}.

But in many countries surname appears first so this should be configurable in record audit and other places for example.

This ticket describes 2 changes that we need to make.

Tech tasks

National System Admin – Create user form

Image

  1. When logged in as a national system administrator user you can create new users in offices. The create new user form is not currently configurable and we have no plans to make it configurable. However, as we often receive requests from countries to have the surname first in this form, we have decided to satisfy that requirement by putting surname first for ALL countries.

We also want to remove the question that asks the user for a national ID number in this form as it is not required.

  • Change name field ordering in user creation and edit flows to [Surname] [Firstname]. Rename the labels to be "User's surname" and "User's firstname".
  • Remove the NID question from user creation / edit flow. Ensure possible NIDs are removed from user-mgnt.users collection. Write a migration to remove the field from existing users.

How citizen data appears in the team user list, work queues and record audit

Image

Image

  1. If we create a content management key called constants.humanName with a default value {firstName} {lastName}, then the client could read this content key and dynamically choose to represent names in work queues and record audit according to it. If the content key was like this: {lastName} {middleName} {firstName} then the names could be rendered appropriately
  • Create new copy item constants.humanName with a default value {firstName} {lastName} and start using it in the admin view's user listing. Keep in mind that this same constant is to be used for rendering record subject names so for instance a country might want to have this as {lastName} {middleName} {firstName}
  • Refactor generateName in packages/client/src/utils/data-formatting.ts so that it respects the name format defined in the team user list view

Other applications

  • Go through the app and test for instance {lastName} {middleName} {firstName} properly applies everywhere such as work-queues and record audit.

  • In release notes: Add a few examples of different ways to configure this e.g. middle name doesn't exist OR

@euanmillar euanmillar converted this from a draft issue Apr 19, 2024
@euanmillar euanmillar changed the title user creation form surname should come first User creation form surname should come first Apr 19, 2024
@euanmillar euanmillar added this to the v1.6.0 milestone Apr 22, 2024
@euanmillar
Copy link
Collaborator Author

Decision needs to be made if name configuration is decoupled from the rest of registration form configuration.

@euanmillar euanmillar modified the milestones: v1.6.0, 1.7.0 Apr 29, 2024
@rikukissa
Copy link
Member

rikukissa commented Jun 10, 2024

@euanmillar ticket updated. Can be unblocked and moved to Ready to build

@rikukissa rikukissa changed the title User creation form surname should come first Configurable human name formatting Jun 17, 2024
@rikukissa
Copy link
Member

Updated task description to include configurable name formatting elsewhere in the app as Burkina Faso needs this

@rikukissa rikukissa moved this from Backlog to Ready to build in OpenCRVS Core Jul 3, 2024
@euanmillar
Copy link
Collaborator Author

@rikukissa if we are doing this: "Ensure possible NIDs are removed from user-mgnt.users collection" wont we need a database migration? I wonder if it is worth the effort. It might be acceptable to just leave the national id prop in the database than maintain the migration file. Just an idea

@rikukissa
Copy link
Member

Good point, I'll update the task description. Long-term it's best if we aim to always have the database and data integrity in tip-top shape, so definitely worth writing a migration

@Siyasanga Siyasanga self-assigned this Sep 18, 2024
@Siyasanga Siyasanga moved this from Ready to build to In Development in OpenCRVS Core Sep 18, 2024
Siyasanga added a commit that referenced this issue Oct 1, 2024
we often receive requests from countries to have the surname first in this form, we have decided to satisfy that requirement by putting surname first for ALL countries.

#6830
Siyasanga added a commit that referenced this issue Oct 1, 2024
A request came for the clients to change the labels for "First name(s)" to "User's first name". Also change "Last name" to "User's surname" for clarity and less confussion.

#6830
Siyasanga added a commit to opencrvs/opencrvs-countryconfig that referenced this issue Oct 1, 2024
A request came for the clients to change the labels for "First name(s)" to "User's first name". Also change "Last name" to "User's surname" for clarity and less confussion.

opencrvs/opencrvs-core#6830
Siyasanga added a commit to opencrvs/opencrvs-countryconfig that referenced this issue Oct 1, 2024
A request came for the clients to change the labels for "First name(s)" to "User's first name". Also change "Last name" to "User's surname" for clarity and less confussion.

opencrvs/opencrvs-core#6830
Siyasanga added a commit that referenced this issue Oct 3, 2024
Remove the question that asks the user for a national ID number in this form as it is not required

#6830
Siyasanga added a commit to opencrvs/opencrvs-countryconfig that referenced this issue Oct 3, 2024
Remove the question that asks the user for a national ID number in the User details form as it is not required

opencrvs/opencrvs-core#6830
Siyasanga added a commit that referenced this issue Oct 4, 2024
Remove the question that asks the user for a national ID number in this form as it is not required

#6830
Siyasanga pushed a commit that referenced this issue Oct 8, 2024
We no longer need the suffixes for the FamilyName field since we not really using it anywhere

#6830
Siyasanga pushed a commit that referenced this issue Oct 8, 2024
A requirement from client to remove the NID field since most of the contries are not really using it.

#6830
Siyasanga pushed a commit to opencrvs/opencrvs-countryconfig that referenced this issue Oct 8, 2024
We no longer need the suffixes for the FamilyName field since we not really using it anywhere

opencrvs/opencrvs-core#6830
Siyasanga added a commit that referenced this issue Nov 14, 2024
Replace older logic to get the name which was based on an assumption that we support names in multiple languages

#6830
Siyasanga added a commit that referenced this issue Nov 14, 2024
We've found cleaner way to make the rendered name customizable for each country through client copy from country-config

#6830
Siyasanga added a commit that referenced this issue Nov 14, 2024
We need to update all the places where a citizen's name is being referenced to show it in the format that the country chooses

#6830
Siyasanga added a commit that referenced this issue Nov 14, 2024
To allow countries to have custom ordering for full names

#6830
Siyasanga added a commit that referenced this issue Nov 14, 2024
To ensure that we get the format from the country-config

#6830
Siyasanga added a commit that referenced this issue Nov 14, 2024
To make the name more usable we had to extract the name formatting logic into it's own function.

#6830
Siyasanga added a commit that referenced this issue Nov 14, 2024
Replace older logic to get the name which was based on an assumption that we support names in multiple languages

#6830
Siyasanga added a commit that referenced this issue Nov 14, 2024
We've found cleaner way to make the rendered name customizable for each country through client copy from country-config

#6830
Siyasanga added a commit that referenced this issue Nov 14, 2024
We need to update all the places where a citizen's name is being referenced to show it in the format that the country chooses

#6830
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 14, 2024
SInce we introduced the ability to allow countries to customise the order for a full name and the default being {surname} {middlename} {firstname} the tests need to conform to that

opencrvs/opencrvs-core#6830
@prinzab prinzab removed this from the v1.7.0 milestone Nov 14, 2024
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 14, 2024
There were some screens that were not using the new customised formatName() so the refactor to formatName broke thier e2e tests, the temporary solution is to add a new function formatNameWithFirstNameFirst() which uses the old logic until the screen are updated

opencrvs/opencrvs-core#6830
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 14, 2024
There were some screens that were not using the new customised formatName() so the refactor to formatName broke thier e2e tests, the temporary solution is to add a new function formatNameWithFirstNameFirst() which uses the old logic until the screen are updated

opencrvs/opencrvs-core#6830
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 14, 2024
There were some screens that were not using the new customised formatName() so the refactor to formatName broke thier e2e tests, the temporary solution is to add a new function formatNameWithFirstNameFirst() which uses the old logic until the screen are updated

opencrvs/opencrvs-core#6830
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 14, 2024
There were some screens that were not using the new customised formatName() so the refactor to formatName broke thier e2e tests, the temporary solution is to add a new function formatNameWithFirstNameFirst() which uses the old logic until the screen are updated

opencrvs/opencrvs-core#6830
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 14, 2024
There were some screens that were not using the new customised formatName() so the refactor to formatName broke thier e2e tests, the temporary solution is to add a new function formatNameWithFirstNameFirst() which uses the old logic until the screen are updated

opencrvs/opencrvs-core#6830
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 14, 2024
There were some screens that were not using the new customised formatName() so the refactor to formatName broke thier e2e tests, the temporary solution is to add a new function formatNameWithFirstNameFirst() which uses the old logic until the screen are updated

opencrvs/opencrvs-core#6830
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 14, 2024
There were some screens that were not using the new customised formatName() so the refactor to formatName broke thier e2e tests, the temporary solution is to add a new function formatNameWithFirstNameFirst() which uses the old logic until the screen are updated

opencrvs/opencrvs-core#6830
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 14, 2024
There were some screens that were not using the new customised formatName() so the refactor to formatName broke thier e2e tests, the temporary solution is to add a new function formatNameWithFirstNameFirst() which uses the old logic until the screen are updated

opencrvs/opencrvs-core#6830
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 14, 2024
There were some screens that were not using the new customised formatName() so the refactor to formatName broke thier e2e tests, the temporary solution is to add a new function formatNameWithFirstNameFirst() which uses the old logic until the screen are updated

opencrvs/opencrvs-core#6830
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 14, 2024
There were some screens that were not using the new customised formatName() so the refactor to formatName broke thier e2e tests, the temporary solution is to add a new function formatNameWithFirstNameFirst() which uses the old logic until the screen are updated

opencrvs/opencrvs-core#6830
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 14, 2024
There were some screens that were not using the new customised formatName() so the refactor to formatName broke thier e2e tests, the temporary solution is to add a new function formatNameWithFirstNameFirst() which uses the old logic until the screen are updated

opencrvs/opencrvs-core#6830
Siyasanga added a commit to opencrvs/opencrvs-farajaland that referenced this issue Nov 15, 2024
There were some screens that were not using the new customised formatName() so the refactor to formatName broke thier e2e tests, the temporary solution is to add a new function formatNameWithFirstNameFirst() which uses the old logic until the screen are updated

opencrvs/opencrvs-core#6830
@euanmillar euanmillar added this to the v1.7.0 milestone Nov 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment