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

feat: Redesign option list items so keys are GUIDs rather than strings #1559

Open
rmunn opened this issue Oct 26, 2022 · 1 comment
Open
Assignees
Labels
engineering Tasks which do not directly relate to a user-facing feature or fix

Comments

@rmunn
Copy link
Collaborator

rmunn commented Oct 26, 2022

Is your feature request related to a problem? Please describe.
After thinking about the issues with option lists and Send/Receive (#976, #977, #1295, #1552), I've come to the conclusion that our option lists in Language Forge need an architecture change. We currently have name and abbreviation as strings, and also the key as a string as well (and it's usually something that matches the abbreviation, like "v" for a verb). Instead of a string, the key needs to be a GUID.

This would greatly simplify the Send/Receive code that deals with option lists, which are keyed by GUID in FieldWorks. Right now the code is having to take the key "v" in Language Forge, treat it as if it were an abbreviation, and guess which writing system to look up that abbreviation for in the FieldWorks data to find the GUID for that option list item. And if the FieldWorks user changed the default grammatical lists because his language uses vb as the abbreviation for "verb", or if the abbreviation for verb is instead of v... then that lookup fails, and the Send/Receive code falls back on *** (plus an integer value to ensure uniqueness) as the final "I can't figure it out, so just use something unique" fallback. But that value then leaks back into the user interface. and people see *** or ***1 or ***2 in their dropdown lists, which is very very poor UX.

Switching the option list keys to be GUIDs instead of strings will, I believe, allow us to finally put that *** bug to rest.

@megahirt
Copy link
Collaborator

yes, I agree we should go this direction. Thanks for the issue and background info!

@alex-larkin alex-larkin added the engineering Tasks which do not directly relate to a user-facing feature or fix label Apr 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
engineering Tasks which do not directly relate to a user-facing feature or fix
Projects
Development

No branches or pull requests

4 participants