For patron attributes, libraries sometimes want a semi-controlled list of values with the ability to pick "Other" and enter a one-time non-authorized value. For example, a library uses a patron attribute to store the hometown of guest patrons to whom they've issued a card. In order to promote consistency of data, they've created an authorized value that lists all the most common hometown they encounter. But sometimes a patron shows up with a hometown the library hasn't allowed for. They may go back and add this new town to the authorized value later, but for now they just want to put it in the patron record. I suggest we add an option in patron attribute setup so that if one connects an attribute to an authorized value one can also check a box for "include an 'Other' option." If that box is checked in the attribute setup, when one is editing a patron the dropdown for the attribute will include the option "Other." If the user selects "Other," then a text box appears and the user can enter a free text value. That value gets saved in borrower_attributes.attribute but not added to the authorized value.
Currently, one could accomplish something similar by using 2 attributes, one tied to the authorized value and a second with a free text box and a note of "If your desired value isn't in the dropdown, type it here." This makes reporting and searching harder and also presents a difficulty for enforcing mandatory fields.