diff --git a/docassemble/ALToolbox/data/questions/nice_county_name_demo.yml b/docassemble/ALToolbox/data/questions/nice_county_name_demo.yml new file mode 100644 index 00000000..d0bd189b --- /dev/null +++ b/docassemble/ALToolbox/data/questions/nice_county_name_demo.yml @@ -0,0 +1,29 @@ +metadata: + Title: Nice county name demo +--- +modules: + - .misc +--- +objects: + - address: Address +--- +mandatory: True +code: | + address.county + print_county +--- +question: | + Address +subquestion: | + `nice_county_name`: If the county name contains the word "County", which Google Address Autocomplete does by default, remove it. +fields: + - Address: address.address + address autocomplete: True + - County: address.county +--- +event: print_county +question: | + County +subquestion: | + ${ nice_county_name( address ) } +--- \ No newline at end of file diff --git a/docassemble/ALToolbox/misc.py b/docassemble/ALToolbox/misc.py index 7e9ed4e6..ed4c2412 100644 --- a/docassemble/ALToolbox/misc.py +++ b/docassemble/ALToolbox/misc.py @@ -1,5 +1,11 @@ import docassemble.base.functions -from docassemble.base.util import defined, value, showifdef, space_to_underscore +from docassemble.base.util import ( + defined, + value, + showifdef, + space_to_underscore, + Address, +) import re __all__ = [ @@ -15,6 +21,7 @@ "sum_if_defined", "add_records", "output_checkbox", + "nice_county_name", ] @@ -201,3 +208,16 @@ def output_checkbox( return checked_value else: return unchecked_value + + +def nice_county_name(address: Address) -> str: + """ + If the county name contains the word "County", which Google Address + Autocomplete does by default, remove it. + """ + if not hasattr(address, "county"): + return "" + if address.county.endswith(" County"): + return address.county[: -len(" County")] + else: + return address.county