diff --git a/docassemble/ALWeaver/__init__.py b/docassemble/ALWeaver/__init__.py
index ff987d28..2474f682 100644
--- a/docassemble/ALWeaver/__init__.py
+++ b/docassemble/ALWeaver/__init__.py
@@ -1 +1 @@
-__version__ = '1.10.1'
+__version__ = '1.10.2'
diff --git a/docassemble/ALWeaver/data/questions/assembly_line.yml b/docassemble/ALWeaver/data/questions/assembly_line.yml
index 9ce9c8f9..2402fddb 100644
--- a/docassemble/ALWeaver/data/questions/assembly_line.yml
+++ b/docassemble/ALWeaver/data/questions/assembly_line.yml
@@ -1347,6 +1347,110 @@ fields:
datatype: draggable_tbl_json_string
required: False
---
+########################### Code for sections ##########################
+---
+objects:
+ - interview.sections: DAList.using(object_type=DAObject, auto_gather=False)
+ - default_sections: DADict
+---
+code: |
+ interview.sections.clear()
+ for item in default_sections[interview.form_type].items():
+ new_item = interview.sections.appendObject()
+ new_item.key = item[0]
+ new_item.value = item[1]
+ interview.sections.gathered = True
+---
+table: interview.sections.table
+rows: interview.sections
+columns:
+ - Name: |
+ next(iter(row_item.values()))
+ - Keyword: |
+ next(iter(row_item.keys()))
+---
+id: add sections
+question: |
+ Left navigation
+subquestion: |
+ Left navigation is optional, although it can help orient
+ users even in shorter interviews.
+fields:
+ - Use left navigation?: interview.enable_navigation
+ datatype: yesnoradio
+ - note: |
+
Left navigation sections
+
+ ${ interview.sections.table }
+
+ ${ interview.sections.add_action() }
+ show if: interview.enable_navigation
+---
+variable name: default_sections['starts_case']
+data:
+ - getting_started: Getting started
+ - screener: Can you ${ interview.intro_prompt.lower() }?
+ - about_you: Information about you
+ - about_op: Information about the other party
+ - claims: Your claims
+ - review: Review your answers
+ - signature: Signature
+ - download: Download and next steps
+---
+variable name: default_sections['existing_case']
+data:
+ - getting_started: Getting started
+ - screener: Can you ${ interview.intro_prompt.lower() }?
+ - about_you: Information about you
+ - about_op: Information about the other party
+ - claims: Your defenses and counterclaims
+ - review: Review your answers
+ - signature: Signature
+ - download: Download and next steps
+---
+variable name: default_sections['appeal']
+data:
+ - getting_started: Getting started
+ - screener: Can you ${ interview.intro_prompt.lower() }?
+ - about_you: Information about you
+ - about_op: Information about the other party
+ - appeal: Your appeal
+ - review: Review your answers
+ - signature: Signature
+ - download: Download and next steps
+---
+variable name: default_sections['letter']
+data:
+ - getting_started: Getting started
+ - about_you: Information about you
+ - about_op: Information about the other party
+ - claims: Your letter
+ - review: Review your answers
+ - signature: Signature
+ - download: Download and next steps
+---
+variable name: default_sections['other_form']
+data:
+ - getting_started: Getting started
+ - screener: Can you ${ interview.intro_prompt.lower() }?
+ - about_you: Information about you
+ - about_op: Information about the other party
+ - claims: About your ${ interview.intro_prompt }
+ - review: Review your answers
+ - signature: Signature
+ - download: Download and next steps
+---
+variable name: default_sections['other']
+data:
+ - getting_started: Getting started
+ - screener: Can you ${ interview.intro_prompt.lower() }?
+ - about_you: Information about you
+ - about_op: Information about the other party
+ - claims: About your ${ interview.intro_prompt }
+ - review: Review your answers
+ - signature: Signature
+ - download: Download and next steps
+---
continue button field: show_screen_order
question: |
Review your screen order
diff --git a/setup.py b/setup.py
index 42c8ed33..262d3aa0 100644
--- a/setup.py
+++ b/setup.py
@@ -43,7 +43,7 @@ def find_package_data(where='.', package='', exclude=standard_exclude, exclude_d
return out
setup(name='docassemble.ALWeaver',
- version='1.10.1',
+ version='1.10.2',
description=(''),
long_description='# Assembly Line Weaver: Suffolk LIT Lab Document Assembly Line\r\n\r\n\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 an **automation and rapid prototyping tool** to support authoring robust, \r\nconsistent, and attractive Docassemble interviews that help complete court forms. Upload a labeled\r\nPDF or DOCX file, and the Assembly Line Weaver will produce a runnable, clean code, draft of a\r\nDocassemble interview that you can continue to edit and refine.\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-AssemblyLine\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## History\r\n* 2021-11-03\r\n * Add support for *plural* names for people in PDF files\r\n\r\n* 2021-10-15\r\n * Handle overflow in addendum\r\n * Multiple choice radio/checkbox fields\r\n * DOCX validation\r\n* 2021-09-09\r\n * Improved internationalization\r\n * Simplified PDF checker\r\n* 2021-04-14 Multiple fixes:\r\n * Migrated to more flexible Mako template structure for generated \r\n interview blocks\r\n * Package can be installed (for test purposes) after being\r\n generated\r\n * Various refactors and code cleanup\r\n * Simplified and improved generated code and order of blocks\r\n * Added version number/date stamp to generated code\r\n\r\n* 2021-03-09 Extensive improvements:\r\n * Improvements to review screens\r\n * Question/field editing and reordering\r\n * Improvements to YAML structure\r\n * Generate interstitial screens\r\n * Refactoring and bug fixes\r\n* 2021-02-09 Combine yes/no variables; more flexible handling of people variables and assistance with gathering varying numbers w/ less code\r\n* 2021-01-29 Bug fixes; migration to AssemblyLine complete\r\n* 2021-01-25 Bug fixes, start migration to [AssemblyLine](https://github.com/SuffolkLITLab/docassemble-AssemblyLine) dependency and away from MAVirtualCourt\r\n\r\n## Authors\r\n\r\nQuinten Steenhuis, qsteenhuis@suffolk.edu \r\nMichelle \r\nBryce Willey \r\nLily \r\nDavid Colarusso \r\nNharika Singh \r\n\r\n## Installation requirements\r\n\r\n* Create a Docassemble API key and add it your configuration like this:\r\n```\r\ninstall packages api key: 123458abcdefghijlklmno99A\r\n```\r\n',
long_description_content_type='text/markdown',
@@ -53,7 +53,7 @@ def find_package_data(where='.', package='', exclude=standard_exclude, exclude_d
url='https://docassemble.org',
packages=find_packages(),
namespace_packages=['docassemble'],
- install_requires=['PyYAML>=5.1.2', 'beautifulsoup4>=4.11.1', 'docassemble.ALToolbox>=0.4.2', 'docassemble.AssemblyLine>=2.11.3', 'docx2python>=1.27.1', 'formfyxer>=0.0.9', 'more-itertools>=8.6.0', 'numpy>=1.0.4', 'pikepdf>=5.1.1', 'scikit-learn>=0.0', 'spacy>=3.2.0', 'formfyxer'],
+ install_requires=['PyYAML>=5.1.2', 'beautifulsoup4>=4.11.1', 'docassemble.ALToolbox>=0.4.2', 'docassemble.AssemblyLine>=2.11.3', 'docx2python>=1.27.1', 'more-itertools>=8.6.0', 'numpy>=1.0.4', 'pikepdf>=5.1.1', 'scikit-learn>=0.0', 'spacy>=3.2.0', 'formfyxer>=0.3.0a1'],
zip_safe=False,
package_data=find_package_data(where='docassemble/ALWeaver/', package='docassemble.ALWeaver'),
)