docassemble.AssemblyLine 3.4.0__tar.gz → 3.4.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. {docassemble_assemblyline-3.4.0/docassemble.AssemblyLine.egg-info → docassemble_assemblyline-3.4.1}/PKG-INFO +1 -1
  2. docassemble_assemblyline-3.4.1/docassemble/AssemblyLine/__init__.py +1 -0
  3. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/al_general.py +74 -6
  4. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/sessions.py +2 -2
  5. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/test_al_general.py +8 -0
  6. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1/docassemble.AssemblyLine.egg-info}/PKG-INFO +1 -1
  7. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/setup.py +1 -1
  8. docassemble_assemblyline-3.4.0/docassemble/AssemblyLine/__init__.py +0 -1
  9. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/LICENSE +0 -0
  10. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/MANIFEST.in +0 -0
  11. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/README.md +0 -0
  12. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/al_courts.py +0 -0
  13. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/al_document.py +0 -0
  14. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/custom_jinja_filters.py +0 -0
  15. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/al_code.yml +0 -0
  16. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/al_document.yml +0 -0
  17. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/al_language.yml +0 -0
  18. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/al_package.yml +0 -0
  19. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/al_package_unstyled.yml +0 -0
  20. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/al_question_test.yml +0 -0
  21. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/al_reminders.yml +0 -0
  22. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/al_saved_sessions.yml +0 -0
  23. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/al_saved_sessions_store.yml +0 -0
  24. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/al_settings.yml +0 -0
  25. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/al_terms_of_use.yml +0 -0
  26. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/al_visual.yml +0 -0
  27. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/assembly_line.yml +0 -0
  28. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/assembly_line_unstyled.yml +0 -0
  29. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/demo_search_sessions.yml +0 -0
  30. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/feedback.yml +0 -0
  31. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/interview_list.yml +0 -0
  32. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/ql_baseline.yml +0 -0
  33. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/ql_catchall.yml +0 -0
  34. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/ql_namechange.yml +0 -0
  35. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/reserved_words.yml +0 -0
  36. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/test_al_table_document.yml +0 -0
  37. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/test_aladdendum.yml +0 -0
  38. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/test_alcourts.yml +0 -0
  39. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/test_aldocument.yml +0 -0
  40. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/test_aldocument_background_assembly.yml +0 -0
  41. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/test_alexhibit.yml +0 -0
  42. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/test_alexhibit_maxsize.yml +0 -0
  43. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/test_bundle_parity.yml +0 -0
  44. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/test_familiar_disambiguation.yml +0 -0
  45. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/test_question_library.yml +0 -0
  46. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/questions/test_signature.yml +0 -0
  47. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/sources/README.md +0 -0
  48. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/sources/es-words.yml +0 -0
  49. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/sources/languages.yml +0 -0
  50. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/sources/test_aldocument.feature +0 -0
  51. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/sources/test_alexhibit_docx_1.docx +0 -0
  52. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/sources/test_alexhibit_jpg_1.jpg +0 -0
  53. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/sources/test_alexhibit_pdf_1.pdf +0 -0
  54. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/sources/test_alexhibit_png_1.png +0 -0
  55. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/sources/test_question_library.feature +0 -0
  56. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/sources/translation_es.xlsx +0 -0
  57. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/sources/translation_ht.xlsx +0 -0
  58. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/sources/translation_pt.xlsx +0 -0
  59. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/static/README.md +0 -0
  60. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/static/al_audio.css +0 -0
  61. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/static/al_audio.js +0 -0
  62. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/static/aldocument.css +0 -0
  63. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/static/aldocument.js +0 -0
  64. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/static/interview_list.css +0 -0
  65. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/static/limit_upload_size.js +0 -0
  66. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/static/lt1-pullout-10-getting-organized.pdf +0 -0
  67. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/static/ma_logo.png +0 -0
  68. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/static/placeholder.png +0 -0
  69. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/static/seal.jpg +0 -0
  70. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/static/styles.css +0 -0
  71. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/templates/README.md +0 -0
  72. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/templates/al_basic_addendum.docx +0 -0
  73. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/templates/exhibit_cover_sheet.docx +0 -0
  74. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/templates/exhibit_table_of_contents.docx +0 -0
  75. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/templates/general_cover_sheet.docx +0 -0
  76. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/templates/sample_word_template.docx +0 -0
  77. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/templates/test_aldocument_docx_1.docx +0 -0
  78. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/data/templates/test_aldocument_pdf_1.pdf +0 -0
  79. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/language.py +0 -0
  80. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/project_maintenance.py +0 -0
  81. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/py.typed +0 -0
  82. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/requirements.txt +0 -0
  83. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/sign.py +0 -0
  84. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/test_al_document.py +0 -0
  85. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/AssemblyLine/test_language.py +0 -0
  86. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble/__init__.py +0 -0
  87. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble.AssemblyLine.egg-info/SOURCES.txt +0 -0
  88. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble.AssemblyLine.egg-info/dependency_links.txt +0 -0
  89. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble.AssemblyLine.egg-info/not-zip-safe +0 -0
  90. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble.AssemblyLine.egg-info/requires.txt +0 -0
  91. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/docassemble.AssemblyLine.egg-info/top_level.txt +0 -0
  92. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/pyproject.toml +0 -0
  93. {docassemble_assemblyline-3.4.0 → docassemble_assemblyline-3.4.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docassemble.AssemblyLine
3
- Version: 3.4.0
3
+ Version: 3.4.1
4
4
  Home-page: https://courtformsonline.org
5
5
  Author: Suffolk Legal Innovation and Technology Lab
6
6
  Author-email: qsteenhuis@suffolk.edu
@@ -0,0 +1 @@
1
+ __version__ = '3.4.1'
@@ -819,7 +819,14 @@ class ALPeopleList(DAList):
819
819
  str: Formatted string of full names.
820
820
  """
821
821
  return comma_and_list(
822
- [person.name.full(middle="full") for person in self],
822
+ [
823
+ (
824
+ person.name_full()
825
+ if isinstance(person, ALIndividual)
826
+ else person.name.full(middle="full")
827
+ )
828
+ for person in self
829
+ ],
823
830
  comma_string=comma_string,
824
831
  and_string=and_string,
825
832
  )
@@ -1604,8 +1611,9 @@ class ALIndividual(Individual):
1604
1611
  else:
1605
1612
  if isinstance(self.address, ALAddress):
1606
1613
  return (
1607
- "[FLUSHLEFT] "
1608
- + self.name.full()
1614
+ "[FLUSHLEFT] " + self.name_full()
1615
+ if isinstance(self, ALIndividual)
1616
+ else self.name.full(middle="full")
1609
1617
  + " [NEWLINE] "
1610
1618
  + self.address.block(
1611
1619
  language=language,
@@ -1617,8 +1625,9 @@ class ALIndividual(Individual):
1617
1625
  )
1618
1626
  else:
1619
1627
  return (
1620
- "[FLUSHLEFT] "
1621
- + self.name.full()
1628
+ "[FLUSHLEFT] " + self.name_full()
1629
+ if isinstance(self, ALIndividual)
1630
+ else self.name.full(middle="full")
1622
1631
  + " [NEWLINE] "
1623
1632
  + self.address.block(
1624
1633
  language=language,
@@ -2003,9 +2012,18 @@ class ALIndividual(Individual):
2003
2012
  def name_full(self) -> str:
2004
2013
  """Returns the individual's full name.
2005
2014
 
2015
+ If the person has the attribute person_type and it is defined
2016
+ as either `business` or `organization`, it will only return
2017
+ the first name, even if middle, last, or suffix are defined.
2018
+
2006
2019
  Returns:
2007
- str: The individual's full name.
2020
+ str: The individual or business's full name.
2008
2021
  """
2022
+ if hasattr(self, "person_type") and self.person_type in [
2023
+ "business",
2024
+ "organization",
2025
+ ]:
2026
+ return self.name.first
2009
2027
  return self.name.full(middle="full")
2010
2028
 
2011
2029
  def name_initials(self) -> str:
@@ -2014,9 +2032,18 @@ class ALIndividual(Individual):
2014
2032
  Equivalent to `name.full(middle="initial")`, which is also the default.
2015
2033
  Defined only to make it possible to be explicit about the name form.
2016
2034
 
2035
+ If the person has the attribute person_type and it is defined
2036
+ as either `business` or `organization`, it will only return
2037
+ the "initials" of the first name, even if middle, last, or suffix are defined.
2038
+
2017
2039
  Returns:
2018
2040
  str: The individual's name with the middle name as an initial.
2019
2041
  """
2042
+ if hasattr(self, "person_type") and self.person_type in [
2043
+ "business",
2044
+ "organization",
2045
+ ]:
2046
+ return self.name.first
2020
2047
  return self.name.full(middle="initial")
2021
2048
 
2022
2049
  def name_short(self) -> str:
@@ -2025,9 +2052,18 @@ class ALIndividual(Individual):
2025
2052
 
2026
2053
  Equivalent to self.name.firstlast()
2027
2054
 
2055
+ If the person has the attribute person_type and it is defined
2056
+ as either `business` or `organization`, it will only return
2057
+ the first name, even if middle, last, or suffix are defined.
2058
+
2028
2059
  Returns:
2029
2060
  str: The individual'
2030
2061
  """
2062
+ if hasattr(self, "person_type") and self.person_type in [
2063
+ "business",
2064
+ "organization",
2065
+ ]:
2066
+ return self.name.first
2031
2067
  return self.name.firstlast()
2032
2068
 
2033
2069
  def familiar(
@@ -2051,6 +2087,10 @@ class ALIndividual(Individual):
2051
2087
  * the default value, e.g., "the minor", if provided
2052
2088
  * the full name
2053
2089
 
2090
+ If the person has the attribute `person_type` and it is defined
2091
+ as either `business` or `organization`, it will only return
2092
+ the first name, even if middle, last, or suffix are defined.
2093
+
2054
2094
  Args:
2055
2095
  unique_names (Optional[List[Any]]): A list of unique names to compare against. Defaults to None.
2056
2096
  default (Optional[str]): The default name to return if no unique name is found. Defaults to None.
@@ -2063,6 +2103,12 @@ class ALIndividual(Individual):
2063
2103
  Who do you want to take care of ${ children.familiar(unique_names=parents + petitioners, default="the minor") }
2064
2104
  ```
2065
2105
  """
2106
+ if hasattr(self, "person_type") and self.person_type in [
2107
+ "business",
2108
+ "organization",
2109
+ ]:
2110
+ return self.name.first
2111
+
2066
2112
  if unique_names is None:
2067
2113
  unique_names = []
2068
2114
 
@@ -2113,6 +2159,28 @@ class ALIndividual(Individual):
2113
2159
  return default
2114
2160
  return self.name_full() # We tried but couldn't disambiguate
2115
2161
 
2162
+ def __str__(self) -> str:
2163
+ """
2164
+ Returns a string representation of the individual, which is their full name with the
2165
+ middle name shortened to one letter.
2166
+
2167
+ If the individual has the attribute `person_type` and it is defined
2168
+ as either `business` or `organization`, it will only return
2169
+ the first name, even if middle, last, or suffix are defined.
2170
+
2171
+ Returns:
2172
+ str: The individual's name.
2173
+ """
2174
+ if hasattr(self, "person_type") and self.person_type in [
2175
+ "business",
2176
+ "organization",
2177
+ ]:
2178
+ return self.name.first
2179
+
2180
+ return (
2181
+ super().__str__()
2182
+ ) # This will call the parent's __str__ method, which returns the full name with middle initial
2183
+
2116
2184
 
2117
2185
  # (DANav isn't in public DA API, but currently in functions.py)
2118
2186
  def section_links(nav) -> List[str]: # type: ignore
@@ -1614,7 +1614,7 @@ def get_filenames_having_sessions(
1614
1614
  conn = variables_snapshot_connection()
1615
1615
  if user_id is None:
1616
1616
  if user_logged_in():
1617
- user_id = current_context().id
1617
+ user_id = user_info().id
1618
1618
  else:
1619
1619
  log("Asked to get interview list for user that is not logged in")
1620
1620
  return []
@@ -1623,7 +1623,7 @@ def get_filenames_having_sessions(
1623
1623
  if user_has_privilege(global_search_allowed_roles):
1624
1624
  user_id = None
1625
1625
  elif user_logged_in():
1626
- user_id = current_context().id
1626
+ user_id = user_info().id
1627
1627
  log(
1628
1628
  f"User {user_info().email} does not have permission to list interview sessions belonging to other users"
1629
1629
  )
@@ -436,6 +436,14 @@ class TestALIndividual(unittest.TestCase):
436
436
  self.assertEqual(self.individual.name_initials(), "John J. Jingleheimer")
437
437
  self.assertEqual(self.individual.name_short(), "John Jingleheimer")
438
438
 
439
+ self.individual.person_type = "business"
440
+ self.individual.name.first = "Johnny's Sandwiches"
441
+
442
+ self.assertEqual(self.individual.name_full(), "Johnny's Sandwiches")
443
+ self.assertEqual(self.individual.name_initials(), "Johnny's Sandwiches")
444
+ self.assertEqual(self.individual.name_short(), "Johnny's Sandwiches")
445
+ self.assertEqual(str(self.individual), "Johnny's Sandwiches")
446
+
439
447
 
440
448
  class test_get_visible_al_nav_items(unittest.TestCase):
441
449
  def test_case_1(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docassemble.AssemblyLine
3
- Version: 3.4.0
3
+ Version: 3.4.1
4
4
  Home-page: https://courtformsonline.org
5
5
  Author: Suffolk Legal Innovation and Technology Lab
6
6
  Author-email: qsteenhuis@suffolk.edu
@@ -44,7 +44,7 @@ def find_package_data(where='.', package='', exclude=standard_exclude, exclude_d
44
44
  return out
45
45
 
46
46
  setup(name='docassemble.AssemblyLine',
47
- version='3.4.0',
47
+ version='3.4.1',
48
48
  description=(''),
49
49
  long_description='# Suffolk LIT Lab Document Assembly Line\r\n\r\n[![PyPI version](https://badge.fury.io/py/docassemble-AssemblyLine.svg)](https://badge.fury.io/py/docassemble-AssemblyLine)\r\n\r\n<img src="https://user-images.githubusercontent.com/7645641/142245862-c2eb02ab-3090-4e97-9653-bb700bf4c54d.png" alt="drawing" width="300" alt="work together" style="align: center;"/>\r\n\r\nThe Assembly Line Project is a collection of volunteers, students, and institutions who joined together\r\nduring the COVID-19 pandemic to help increase access to the court system. Our vision is mobile-friendly,\r\neasy to use **guided** online forms that help empower litigants to access the court remotely.\r\n\r\nOur signature project is [CourtFormsOnline.org](https://courtformsonline.org).\r\n\r\nWe designed a step-by-step, assembly line style process for automating court forms on top of Docassemble\r\nand built several tools along the way that **you** can use in your home jurisdiction.\r\n\r\nThis package contains **runtime code** and **pre-written questions** to support authoring robust, \r\nconsistent, and attractive Docassemble interviews that help complete court forms.\r\n\r\nRead more on our [documentation page](https://suffolklitlab.org/docassemble-AssemblyLine-documentation/).\r\n\r\n\r\n# Related repositories\r\n\r\n* https://github.com/SuffolkLitLab/docassemble-ALWeaver\r\n* https://github.com/SuffolkLitLab/docassemble-ALMassachusetts\r\n* https://github.com/SuffolkLitLab/docassemble-MassAccess\r\n* https://github.com/SuffolkLitLab/docassemble-ALThemeTemplate\r\n* https://github.com/SuffolkLitLab/EfileProxyServer\r\n\r\n# Documentation\r\n\r\nhttps://suffolklitlab.org/docassemble-AssemblyLine-documentation/\r\n\r\n# Installation\r\n\r\n## Menu-driven installation\r\n\r\nThe recommended installation method is with the [guided installation script](https://suffolklitlab.org/docassemble-AssemblyLine-documentation/docs/installation).\r\n\r\n## Manual installation\r\n\r\nNormally you do not need to manually install the Assembly Line. Use the [installation script](https://suffolklitlab.org/docassemble-AssemblyLine-documentation/docs/installation)\r\nif you can. The instructions below are for your optional reference.\r\n\r\nThis package depends on the following configuration changes on your Docassemble server:\r\n\r\n* Ensure that [font-awesome](https://docassemble.org/docs/config.html#default%20icons) is enabled (this may be on by default:\r\n```yaml\r\ndefault icons: font awesome\r\n```\r\n* Add a [Google API key](https://docassemble.org/docs/config.html#google) that has access to:\r\n * Google Places API\r\n * Google Geocoding API\r\n* Add a [VoiceRSS API key](https://docassemble.org/docs/config.html#voicerss)\r\n* Add a [Twilio API key](https://docassemble.org/docs/config.html#twilio) for SMS support\r\n* Add an email account: [Mailgun](https://docassemble.org/docs/config.html#mailgun%20api) or [SendGrid](https://docassemble.org/docs/config.html#sendgrid%20api) recommended for email support\r\n* To show package update time and to enable the feedback form, add a GitHub Private Access token to your config.yml file, like this:\r\n```yaml\r\n# Needs access to create new issues on repositories\r\ngithub issues:\r\n username: "suffolklitlab-issues"\r\n token: "12345"\r\n# Does not need any special access to public repositories \r\ngithub readonly:\r\n username: "suffolklitlab-issues"\r\n password: "45678"\r\n type: "basic"\r\n```\r\n* If you are also using the [Assembly Line Weaver](https://github.com/SuffolkLITLab/docassemble-assemblylinewizard), you may want to set up a [Docassemble API key](https://docassemble.org/docs/api.html#manage_api) in your config.yml file to allow you to install packages automatically, like this:\r\n```yaml\r\ninstall packages api key: 12345\r\n```\r\n\r\n# Migration\r\n\r\nSee [discussion here](https://github.com/SuffolkLITLab/docassemble-AssemblyLine/issues/69)\r\n\r\n\r\n# ALDocument class\r\n\r\n## Purpose\r\n\r\nThe ALDocument class is a small utility library that makes it simpler to use the following features in an interview:\r\n\r\n* Conditional assembly of multiple, optional documents that are triggered in different ways in your interview\r\n* An addendum for PDF files that makes it simple to deal with overflow text\r\n* A customizable download screen that lists the documents in a neat table\r\n* A customizable "send" button that allows the user to email the final forms to a location of their choice\r\n\r\nHere is a small snippet that you can copy and modify that shows how to use the most important features of the ALDocument class.\r\n\r\n```\r\n---\r\nobjects:\r\n - CRA_Motion_to_Dismiss_attachment: ALDocument.using(filename="CRA_Motion_to_Dismiss", title="Motion to Dismiss CRA", enabled=True, has_addendum=True, default_overflow_message="[See addendum]") \r\n---\r\nobjects:\r\n - al_user_bundle: ALDocumentBundle.using(elements=[CRA_Motion_to_Dismiss_attachment], title="Forms to download and deliver to court", filename="motion_to_dismiss_CRA.pdf")\r\n - al_court_bundle: ALDocumentBundle.using(elements=[CRA_Motion_to_Dismiss_attachment], title="Forms to download and deliver to court", filename="motion_to_dismiss_CRA.pdf")\r\n---\r\ngeneric object: ALDocument\r\nattachment:\r\n variable name: x.addendum\r\n docx template file: docx_addendum.docx\r\n---\r\ncode: |\r\n CRA_Motion_to_Dismiss_attachment.overflow_fields[\'reasons_for_request\'].overflow_trigger = 640\r\n CRA_Motion_to_Dismiss_attachment.overflow_fields[\'reasons_for_request\'].label = "Reasons for request"\r\n CRA_Motion_to_Dismiss_attachment.overflow_fields.gathered = True\r\n \r\n---\r\nattachment:\r\n variable name: CRA_Motion_to_Dismiss_attachment[i]\r\n name: CRA Motion to Dismiss\r\n filename: CRA_Motion_to_Dismiss\r\n skip undefined: True\r\n pdf template file: CRA_Motion_to_Dismiss.pdf\r\n fields: \r\n - "court_county": ${ trial_court.address.county }\r\n - "docket_number": ${ docket_number }\r\n - "user_signature": ${ users[0].signature_if_final(i) }\r\n - "signature_date": ${ signature_date }\r\n```\r\n\r\nIt is very common to have a *contingent* document in ALDocument. If your document is contingent, remove the `enabled=True` from the object declaration, and use\r\nsome other method to "turn on" the attachment.\r\n\r\nE.g.,\r\n\r\n```\r\ncode: |\r\n CRA_Motion_to_Dismiss_attachment.enabled = condition1 and condition2\r\n```\r\n\r\n# Changelog\r\n\r\nSee [CHANGELOG.MD](https://github.com/SuffolkLITLab/docassemble-AssemblyLine/blob/main/CHANGELOG.md)\r\n',
50
50
  long_description_content_type='text/markdown',
@@ -1 +0,0 @@
1
- __version__ = '3.4.0'