SuffolkLITLab / docassemble-MotionToStayEviction

A Docassemble interview for the Massachusetts Appeals Court Motion to Stay Eviction
https://www.courtformsonline.org/appeals/#stayeviction
MIT License
0 stars 0 forks source link

Error when getting user's role in previous case? #86

Closed nonprofittechy closed 1 month ago

nonprofittechy commented 1 month ago
Error
TypeError: ‘NoneType’ object is not iterable In field index number 0

History

Ran initial code at 0.07055s

(from al_language.yml)

initial: True
code: |
  if enable_al_language:
    set_language(al_user_language)

Ran initial code at 0.07060s

(from al_saved_sessions.yml)

initial: True
code: |
  ########### Save title and progress to session list ##################
  if get_config("assembly line",{}).get("update session metadata", True):
    al_temp_metadata = get_interview_metadata(
      user_info().filename, user_info().session
    )
    al_temp_metadata["auto_title"] = str(al_sessions_interview_title)
    al_temp_metadata["progress"] = get_progress()
    set_current_session_metadata(al_temp_metadata)
    del(al_temp_metadata)

Ran initial code at 0.07945s

(from al_visual.yml)

initial: True
code: |
  menu_items = [
    item for item in al_menu_items if not item.get("hidden", False)
  ]

Needed definition of al_menu_items at 0.07957s

Tried to run block at 0.07962s

(from al_visual.yml)

reconsider: True
code: |
  al_menu_items = al_menu_items_custom_items + al_menu_items_default_items

Needed definition of al_menu_items_default_items at 0.07977s

Tried to run block at 0.07981s

(from al_visual.yml)

reconsider: True
variable name: al_menu_items_default_items
data from code:
  - url: 
      url_ask(['al_start_over_confirmation','al_start_over'])
    label: str(al_start_over_string)
    hidden: _internal.get('steps') < 2
  - url: |
      url_ask(['al_exit_logout_confirmation', 'al_exit_logout'])
    label: str(al_exit_logout_string)
    hidden: _internal.get('steps') < 2
  - url: |
      url_action('al_error_action_download_screen')
    label: str(al_download_progress_string)
    hidden: (not al_enable_incomplete_downloads) or (_internal.get('steps') < 2)
  - url: |
      url_ask(["al_sessions_snapshot_label", {"recompute": ["al_sessions_save_session_snapshot"]}, "al_sessions_save_status"])
    label: str(al_save_answer_set_string)
    hidden: (not get_config('assembly line',{}).get('enable answer sets')) or (_internal.get('steps') < 2)
  - url: |
      url_action('al_load_saved_session')
    label: str(al_load_answer_set_string)
    hidden: not get_config('assembly line',{}).get('enable answer sets')
  - url: |
      url_action('al_error_action_download_screen')
    label: str(al_download_answer_set_string)
    hidden: (not get_config('assembly line',{}).get('enable answer set imports')) or (_internal.get('steps') < 2)

Tried to run block at 0.08078s

(from al_visual.yml)

reconsider: True
code: |
  al_menu_items = al_menu_items_custom_items + al_menu_items_default_items

Ran initial code at 0.08086s

(from al_language.yml)

initial: True
code: |
  if enable_al_language:
    set_language(al_user_language)

Ran initial code at 0.08090s

(from al_saved_sessions.yml)

initial: True
code: |
  ########### Save title and progress to session list ##################
  if get_config("assembly line",{}).get("update session metadata", True):
    al_temp_metadata = get_interview_metadata(
      user_info().filename, user_info().session
    )
    al_temp_metadata["auto_title"] = str(al_sessions_interview_title)
    al_temp_metadata["progress"] = get_progress()
    set_current_session_metadata(al_temp_metadata)
    del(al_temp_metadata)

Ran initial code at 0.08840s

(from al_visual.yml)

initial: True
code: |
  menu_items = [
    item for item in al_menu_items if not item.get("hidden", False)
  ]

Ran initial code at 0.08843s

(from al_visual.yml)

initial: True
code: |
  if enable_al_nav_sections:
    nav.set_sections(get_visible_al_nav_items(al_nav_sections))

Tried to run mandatory code at 0.08948s

id: interview order
mandatory: True
code: |
  nav.set_section('review_case_info')
  appeals_basic_questions_intro_screen
  info_screen

  if can_check_efile:
    tyler_login

    if not is_initial_filing:
      appeals_case_search.do_what_choice
      appeals_case_search.case_was_found
      if appeals_case_search.court_id != "appeals:acp" and appeals_case_search.court_id != "appeals:acsj":
        should_search_for_appeals_court
      lower_court_case.docket_number = appeals_case_search.found_case.docket_number
      previous_case_id = appeals_case_search.found_case.tracking_id
      target_case = appeals_case_search
      add_appeals_existing_users

    efile_case_category
    efile_case_type

    if is_initial_filing:
      housing_case_search.can_file_non_indexed_case = True
      housing_case_search.do_what_choice
      if housing_case_search.court_id == "appeals:acp" or housing_case_search.court_id == "appeals:acsj":
        should_search_for_housing_court
      if housing_case_search.case_was_found:
        needs_all_info = False
        lower_court_case.docket_number = housing_case_search.found_case.docket_number
        target_case = housing_case_search
        add_new_existing_users
      else:
        needs_all_info = True
        housing_court
        lower_court_case.docket_number = housing_case_search.non_indexed_docket_number
  else:
    needs_all_info = True
    if not is_initial_filing:
      appeals_court_docket_number
    housing_court

  if housing_court in just_bmc_courts:
    warn_bmc_court
  if housing_court in just_district_courts:
    warn_district_court
  if not can_check_efile:
    lower_court_case.docket_number
  lower_court_case.judge

  if forty_eight_hour_notice:
    eviction_date
    eviction_time

  user_started_case
  users.gather(complete_attribute='complete')
  user_needs_interpreter
  other_parties.gather(complete_attribute='complete')

  nav.set_section('review_stay')
  lower_court_case.judgment_date
  lower_court_case.judgment_appealing
  date_housing_court_denied_motion_to_stay
  housing_court_denying_order_text

  # Copy plaintiff name into the "Other Parties" list
  defendant_name

  if is_initial_filing and can_check_efile and housing_case_search.case_was_found:
    lower_court_case.title = housing_case_search.found_case.title
  elif not is_initial_filing and can_check_efile and appeals_case_search.case_was_found:
    lower_court_case.title = appeals_case_search.found_case.title
  else:
    lower_court_case.title = f"{plaintiff_name} v. {defendant_name}"

  if is_initial_filing:
    docket_numbers[0] = "Case being filed"
    explain_need_affidavit

  if no_notice_of_appeal_filed:
    noa_variables
    noa_confirmation

  # WARNING: file size error is not currently translatable
  max_mb_per_file
  if exhibit_doc.exhibits.has_exhibits:
    exhibit_doc.exhibits.gather()
    review_exhibits
  procedural_history
  statement_of_facts
  procedural_history
  defendant_harm
  plaintiff_harm
  public_interest_harm_yesno
  legal_issues
  relief_sought
  likelihood_of_success
  argument_summary
  method_of_service
  parties_to_be_served
  service_date
  trial_court = housing_court
  if can_check_efile:
    motion_to_stay_bundle.completed
    if motion_to_stay_bundle.document_type_map[motion_to_stay_bundle.document_type]['name'] == "Impounded":
      add_judge_seal_order
    lead_contact = users[0]
    # TODO(brycew): hack until Tyler responds
    trial_court.court_id = trial_court.tyler_code if hasattr(trial_court, 'tyler_code') and trial_court.tyler_code else ''
  if is_initial_filing:
    nav.set_section('review_indigency')
    indigency_intro
    fees['Filing fee'].waive = True
    fees['Filing fee'].amount = 315.00
    ask_affidavit_questions
    if is_indigent:
      if can_check_efile:
        affidavitofindigency_attachment.completed
    else:
      doesnt_qualify_interstitial
  nav.set_section('review_efile_info')
  if can_check_efile:
    if no_payment_needed:
      # have gotten permission: can use waiver method for subsequent filings
      tyler_payment_id = default_jurisdiction_waiver
    else:
      tyler_payment_id
    all_required_screens_shown
    ready_to_efile
  if ready_to_efile:
    email_confirmation_subject = email_confirmation.subject
    email_confirmation_contents = email_confirmation.content
    acceptance_subject = acceptance_email.subject
    acceptance_contents = acceptance_email.content
    rejected_subject = rejection_email.subject
    rejected_contents = rejection_email.content
    neutral_subject = neutral_email.subject
    neutral_contents = neutral_email.content
  done_ocr
  users[0].pronouns
  preview_screen
  basic_questions_signature_flow
  users[0].signature
  download

Needed definition of housing_case_search.case_was_found at 0.08954s

Tried to run block at 0.08965s

(from efiling.yml)

comment: |
  For the housing case, we want to get the docket number first if they have it,
  don't need to ask for the court
code: |
  housing_case_search.do_what_choice
  housing_case_search.found_case
  if housing_case_search.found_case and housing_case_search.do_what_choice == 'docket_lookup':
    housing_case_search.display_case
  if housing_case_search.found_case is None and housing_case_search.can_file_non_indexed_case:
    housing_case_search.non_indexed_docket_number
  housing_case_search.case_was_found = housing_case_search.found_case is not None

Needed definition of housing_case_search.found_case at 0.08976s

Considered using block at 0.08984s

(from docassemble.EFSPIntegration:case_search.yml)

only sets:
  - x.found_case
generic object: EFCaseSearch
if: |
  x.do_what_choice == 'non_indexed_case'
code: |
  if x.can_file_non_indexed_case:
    x.non_indexed_docket_number
    x.found_case = None 
  else:
    x.no_non_indexed_cases
    x.found_case = None

Considered using block at 0.08987s

(from docassemble.EFSPIntegration:case_search.yml)

depends on:
  - x.docket_number_from_user
generic object: EFCaseSearch
if: |
  x.do_what_choice == 'docket_lookup'
code: |
  x.docket_number_from_user
  x.docket_case_response
  if not x.docket_case_response.is_ok() or len(x.docket_case_response.data) == 0:
    x.warn_no_results
    x.found_case = None
  else:
    x.court_id
    x.found_case = DAObject(x.instanceName + '.found_case')
    parse_case_info(proxy_conn, x.found_case, x.docket_case_response.data[0], x.court_id, fetch=True, roles=x.party_type_map)
  # undefine('x.docket_number_from_user', 'x.docket_case_response')

Tried to run block at 0.08991s

(from docassemble.EFSPIntegration:case_search.yml)

only sets:
  - x.found_case
generic object: EFCaseSearch
if: |
  x.do_what_choice == 'party_search'
code: |
  x.somebody.name.first
  if not x.case_search_task_status.ready():
    x.case_search_waiting_screen
  else:
    x.cms_connection_issue
    x.found_cases
    if x.found_cases.gathered and x.found_cases:
      x.found_case = x.case_choice
    else:
      x.warn_no_results
      x.found_case = None
  # undefine('x.somebody', 'x.case_search_task_status',
  #     'x.case_choice', 'x.found_cases')

Tried to run block at 0.09236s

(from efiling.yml)

comment: |
  For the housing case, we want to get the docket number first if they have it,
  don't need to ask for the court
code: |
  housing_case_search.do_what_choice
  housing_case_search.found_case
  if housing_case_search.found_case and housing_case_search.do_what_choice == 'docket_lookup':
    housing_case_search.display_case
  if housing_case_search.found_case is None and housing_case_search.can_file_non_indexed_case:
    housing_case_search.non_indexed_docket_number
  housing_case_search.case_was_found = housing_case_search.found_case is not None

Ran initial code at 0.09247s

(from al_language.yml)

initial: True
code: |
  if enable_al_language:
    set_language(al_user_language)

Ran initial code at 0.09252s

(from al_saved_sessions.yml)

initial: True
code: |
  ########### Save title and progress to session list ##################
  if get_config("assembly line",{}).get("update session metadata", True):
    al_temp_metadata = get_interview_metadata(
      user_info().filename, user_info().session
    )
    al_temp_metadata["auto_title"] = str(al_sessions_interview_title)
    al_temp_metadata["progress"] = get_progress()
    set_current_session_metadata(al_temp_metadata)
    del(al_temp_metadata)

Ran initial code at 0.10068s

(from al_visual.yml)

initial: True
code: |
  menu_items = [
    item for item in al_menu_items if not item.get("hidden", False)
  ]

Ran initial code at 0.10071s

(from al_visual.yml)

initial: True
code: |
  if enable_al_nav_sections:
    nav.set_sections(get_visible_al_nav_items(al_nav_sections))

Tried to run mandatory code at 0.10171s

id: interview order
mandatory: True
code: |
  nav.set_section('review_case_info')
  appeals_basic_questions_intro_screen
  info_screen

  if can_check_efile:
    tyler_login

    if not is_initial_filing:
      appeals_case_search.do_what_choice
      appeals_case_search.case_was_found
      if appeals_case_search.court_id != "appeals:acp" and appeals_case_search.court_id != "appeals:acsj":
        should_search_for_appeals_court
      lower_court_case.docket_number = appeals_case_search.found_case.docket_number
      previous_case_id = appeals_case_search.found_case.tracking_id
      target_case = appeals_case_search
      add_appeals_existing_users

    efile_case_category
    efile_case_type

    if is_initial_filing:
      housing_case_search.can_file_non_indexed_case = True
      housing_case_search.do_what_choice
      if housing_case_search.court_id == "appeals:acp" or housing_case_search.court_id == "appeals:acsj":
        should_search_for_housing_court
      if housing_case_search.case_was_found:
        needs_all_info = False
        lower_court_case.docket_number = housing_case_search.found_case.docket_number
        target_case = housing_case_search
        add_new_existing_users
      else:
        needs_all_info = True
        housing_court
        lower_court_case.docket_number = housing_case_search.non_indexed_docket_number
  else:
    needs_all_info = True
    if not is_initial_filing:
      appeals_court_docket_number
    housing_court

  if housing_court in just_bmc_courts:
    warn_bmc_court
  if housing_court in just_district_courts:
    warn_district_court
  if not can_check_efile:
    lower_court_case.docket_number
  lower_court_case.judge

  if forty_eight_hour_notice:
    eviction_date
    eviction_time

  user_started_case
  users.gather(complete_attribute='complete')
  user_needs_interpreter
  other_parties.gather(complete_attribute='complete')

  nav.set_section('review_stay')
  lower_court_case.judgment_date
  lower_court_case.judgment_appealing
  date_housing_court_denied_motion_to_stay
  housing_court_denying_order_text

  # Copy plaintiff name into the "Other Parties" list
  defendant_name

  if is_initial_filing and can_check_efile and housing_case_search.case_was_found:
    lower_court_case.title = housing_case_search.found_case.title
  elif not is_initial_filing and can_check_efile and appeals_case_search.case_was_found:
    lower_court_case.title = appeals_case_search.found_case.title
  else:
    lower_court_case.title = f"{plaintiff_name} v. {defendant_name}"

  if is_initial_filing:
    docket_numbers[0] = "Case being filed"
    explain_need_affidavit

  if no_notice_of_appeal_filed:
    noa_variables
    noa_confirmation

  # WARNING: file size error is not currently translatable
  max_mb_per_file
  if exhibit_doc.exhibits.has_exhibits:
    exhibit_doc.exhibits.gather()
    review_exhibits
  procedural_history
  statement_of_facts
  procedural_history
  defendant_harm
  plaintiff_harm
  public_interest_harm_yesno
  legal_issues
  relief_sought
  likelihood_of_success
  argument_summary
  method_of_service
  parties_to_be_served
  service_date
  trial_court = housing_court
  if can_check_efile:
    motion_to_stay_bundle.completed
    if motion_to_stay_bundle.document_type_map[motion_to_stay_bundle.document_type]['name'] == "Impounded":
      add_judge_seal_order
    lead_contact = users[0]
    # TODO(brycew): hack until Tyler responds
    trial_court.court_id = trial_court.tyler_code if hasattr(trial_court, 'tyler_code') and trial_court.tyler_code else ''
  if is_initial_filing:
    nav.set_section('review_indigency')
    indigency_intro
    fees['Filing fee'].waive = True
    fees['Filing fee'].amount = 315.00
    ask_affidavit_questions
    if is_indigent:
      if can_check_efile:
        affidavitofindigency_attachment.completed
    else:
      doesnt_qualify_interstitial
  nav.set_section('review_efile_info')
  if can_check_efile:
    if no_payment_needed:
      # have gotten permission: can use waiver method for subsequent filings
      tyler_payment_id = default_jurisdiction_waiver
    else:
      tyler_payment_id
    all_required_screens_shown
    ready_to_efile
  if ready_to_efile:
    email_confirmation_subject = email_confirmation.subject
    email_confirmation_contents = email_confirmation.content
    acceptance_subject = acceptance_email.subject
    acceptance_contents = acceptance_email.content
    rejected_subject = rejection_email.subject
    rejected_contents = rejection_email.content
    neutral_subject = neutral_email.subject
    neutral_contents = neutral_email.content
  done_ocr
  users[0].pronouns
  preview_screen
  basic_questions_signature_flow
  users[0].signature
  download

Needed definition of lower_court_case at 0.10185s

Tried to run block at 0.10190s

objects:
  - lower_court_case: DAObject

Ran initial code at 0.10258s

(from al_language.yml)

initial: True
code: |
  if enable_al_language:
    set_language(al_user_language)

Ran initial code at 0.10262s

(from al_saved_sessions.yml)

initial: True
code: |
  ########### Save title and progress to session list ##################
  if get_config("assembly line",{}).get("update session metadata", True):
    al_temp_metadata = get_interview_metadata(
      user_info().filename, user_info().session
    )
    al_temp_metadata["auto_title"] = str(al_sessions_interview_title)
    al_temp_metadata["progress"] = get_progress()
    set_current_session_metadata(al_temp_metadata)
    del(al_temp_metadata)

Ran initial code at 0.11040s

(from al_visual.yml)

initial: True
code: |
  menu_items = [
    item for item in al_menu_items if not item.get("hidden", False)
  ]

Ran initial code at 0.11043s

(from al_visual.yml)

initial: True
code: |
  if enable_al_nav_sections:
    nav.set_sections(get_visible_al_nav_items(al_nav_sections))

Tried to run mandatory code at 0.11137s

id: interview order
mandatory: True
code: |
  nav.set_section('review_case_info')
  appeals_basic_questions_intro_screen
  info_screen

  if can_check_efile:
    tyler_login

    if not is_initial_filing:
      appeals_case_search.do_what_choice
      appeals_case_search.case_was_found
      if appeals_case_search.court_id != "appeals:acp" and appeals_case_search.court_id != "appeals:acsj":
        should_search_for_appeals_court
      lower_court_case.docket_number = appeals_case_search.found_case.docket_number
      previous_case_id = appeals_case_search.found_case.tracking_id
      target_case = appeals_case_search
      add_appeals_existing_users

    efile_case_category
    efile_case_type

    if is_initial_filing:
      housing_case_search.can_file_non_indexed_case = True
      housing_case_search.do_what_choice
      if housing_case_search.court_id == "appeals:acp" or housing_case_search.court_id == "appeals:acsj":
        should_search_for_housing_court
      if housing_case_search.case_was_found:
        needs_all_info = False
        lower_court_case.docket_number = housing_case_search.found_case.docket_number
        target_case = housing_case_search
        add_new_existing_users
      else:
        needs_all_info = True
        housing_court
        lower_court_case.docket_number = housing_case_search.non_indexed_docket_number
  else:
    needs_all_info = True
    if not is_initial_filing:
      appeals_court_docket_number
    housing_court

  if housing_court in just_bmc_courts:
    warn_bmc_court
  if housing_court in just_district_courts:
    warn_district_court
  if not can_check_efile:
    lower_court_case.docket_number
  lower_court_case.judge

  if forty_eight_hour_notice:
    eviction_date
    eviction_time

  user_started_case
  users.gather(complete_attribute='complete')
  user_needs_interpreter
  other_parties.gather(complete_attribute='complete')

  nav.set_section('review_stay')
  lower_court_case.judgment_date
  lower_court_case.judgment_appealing
  date_housing_court_denied_motion_to_stay
  housing_court_denying_order_text

  # Copy plaintiff name into the "Other Parties" list
  defendant_name

  if is_initial_filing and can_check_efile and housing_case_search.case_was_found:
    lower_court_case.title = housing_case_search.found_case.title
  elif not is_initial_filing and can_check_efile and appeals_case_search.case_was_found:
    lower_court_case.title = appeals_case_search.found_case.title
  else:
    lower_court_case.title = f"{plaintiff_name} v. {defendant_name}"

  if is_initial_filing:
    docket_numbers[0] = "Case being filed"
    explain_need_affidavit

  if no_notice_of_appeal_filed:
    noa_variables
    noa_confirmation

  # WARNING: file size error is not currently translatable
  max_mb_per_file
  if exhibit_doc.exhibits.has_exhibits:
    exhibit_doc.exhibits.gather()
    review_exhibits
  procedural_history
  statement_of_facts
  procedural_history
  defendant_harm
  plaintiff_harm
  public_interest_harm_yesno
  legal_issues
  relief_sought
  likelihood_of_success
  argument_summary
  method_of_service
  parties_to_be_served
  service_date
  trial_court = housing_court
  if can_check_efile:
    motion_to_stay_bundle.completed
    if motion_to_stay_bundle.document_type_map[motion_to_stay_bundle.document_type]['name'] == "Impounded":
      add_judge_seal_order
    lead_contact = users[0]
    # TODO(brycew): hack until Tyler responds
    trial_court.court_id = trial_court.tyler_code if hasattr(trial_court, 'tyler_code') and trial_court.tyler_code else ''
  if is_initial_filing:
    nav.set_section('review_indigency')
    indigency_intro
    fees['Filing fee'].waive = True
    fees['Filing fee'].amount = 315.00
    ask_affidavit_questions
    if is_indigent:
      if can_check_efile:
        affidavitofindigency_attachment.completed
    else:
      doesnt_qualify_interstitial
  nav.set_section('review_efile_info')
  if can_check_efile:
    if no_payment_needed:
      # have gotten permission: can use waiver method for subsequent filings
      tyler_payment_id = default_jurisdiction_waiver
    else:
      tyler_payment_id
    all_required_screens_shown
    ready_to_efile
  if ready_to_efile:
    email_confirmation_subject = email_confirmation.subject
    email_confirmation_contents = email_confirmation.content
    acceptance_subject = acceptance_email.subject
    acceptance_contents = acceptance_email.content
    rejected_subject = rejection_email.subject
    rejected_contents = rejection_email.content
    neutral_subject = neutral_email.subject
    neutral_contents = neutral_email.content
  done_ocr
  users[0].pronouns
  preview_screen
  basic_questions_signature_flow
  users[0].signature
  download

Needed definition of add_new_existing_users at 0.11149s

Tried to run block at 0.11155s

only sets: add_new_existing_users
code: |
  add_existing_users
  for user in users.complete_elements():
    user.is_new = True
    if hasattr(user, 'tyler_id'):
      delattr(user, 'tyler_id')
    if hasattr(user, 'party_type'):
      delattr(user, 'party_type')
  users.there_is_another = False
  users.revisit = True
  for other_party in other_parties.complete_elements():
    other_party.is_new = True
    del other_party.tyler_id
    del other_party.party_type
  other_parties.there_is_another = False
  other_parties.revisit = True
  add_new_existing_users = True

Needed definition of add_existing_users at 0.11170s

Tried to run block at 0.11174s

(from docassemble.EFSPIntegration:case_search.yml)

need:
  - users
  - to_add_participants
  - is_user_party
  - is_other_party
  - other_parties
  - target_case.found_case
only sets: add_existing_users
code: |
  weird_roles = []
  other_parties.clear()
  for partip in to_add_participants:
    partip.is_new = False
    if is_user_party(partip):
      users.append(partip.copy_deep(f'users[{len(users.elements)}]'))
      if hasattr(users[-1].address, 'address'):
        users[-1].address.geocode()
    elif is_other_party(partip):
      other_parties.append(partip.copy_deep(f'other_parties[{len(other_parties.elements)}]'))
      if hasattr(other_parties[-1].address, 'address'):
        other_parties[-1].address.geocode()
    else:
      weird_roles.append(partip)
      log(f'partip: {partip} has weird role: {partip.party_type}')
  # If there are any roles that can't be placed, be we also couldn't find an opposing party,
  # the weird roles are more than likely the opposing party
  if weird_roles:
    if len(other_parties.elements) == 0:
      for weird_party in weird_roles:
        other_parties.append(weird_party.copy_deep(f'other_parties[{len(other_parties.elements)}]'))
  add_existing_users = True

Needed definition of users at 0.11183s

Tried to run block at 0.11189s

objects:
  - users: ALPeopleList.using(there_are_any=True)

Tried to run block at 0.11212s

(from docassemble.EFSPIntegration:case_search.yml)

need:
  - users
  - to_add_participants
  - is_user_party
  - is_other_party
  - other_parties
  - target_case.found_case
only sets: add_existing_users
code: |
  weird_roles = []
  other_parties.clear()
  for partip in to_add_participants:
    partip.is_new = False
    if is_user_party(partip):
      users.append(partip.copy_deep(f'users[{len(users.elements)}]'))
      if hasattr(users[-1].address, 'address'):
        users[-1].address.geocode()
    elif is_other_party(partip):
      other_parties.append(partip.copy_deep(f'other_parties[{len(other_parties.elements)}]'))
      if hasattr(other_parties[-1].address, 'address'):
        other_parties[-1].address.geocode()
    else:
      weird_roles.append(partip)
      log(f'partip: {partip} has weird role: {partip.party_type}')
  # If there are any roles that can't be placed, be we also couldn't find an opposing party,
  # the weird roles are more than likely the opposing party
  if weird_roles:
    if len(other_parties.elements) == 0:
      for weird_party in weird_roles:
        other_parties.append(weird_party.copy_deep(f'other_parties[{len(other_parties.elements)}]'))
  add_existing_users = True

Needed definition of to_add_participants at 0.11222s

Tried to run block at 0.11227s

(from efiling.yml)

need:
  - users
  - is_plaintiff_party
  - is_defendant_party
  - target_case.found_case
  - target_case.self_in_case
only sets: to_add_participants
code: |
  users.clear()
  if target_case.self_in_case not in ['is_self', 'is_filing']:
    not_in_case_kickout
  else:
    target_case.self_partip_choice.is_new = False
    target_case.self_partip_choice.is_form_filler = target_case.self_in_case == 'is_self'
    # Change where DA thinks this obj came from, so it says "you", and not "NAME"
    users.append(target_case.self_partip_choice.copy_deep('users[0]'))
    if hasattr(users[-1].address, 'address'):
      users[-1].address.geocode()
    if is_plaintiff_party(users[0]):
      user_ask_role = 'plaintiff'
    elif is_defendant_party(users[0]):
      user_ask_role = 'defendant'
    to_add_participants = [p for p in target_case.found_case.participants if p.instanceName != target_case.self_partip_choice.instanceName and not is_unused_party(p)]

Needed definition of is_plaintiff_party at 0.11236s

Tried to run block at 0.11240s

(from docassemble.EFSPIntegration:case_search.yml)

need:
  - is_defendant_filters
  - is_plaintiff_filters
  - is_unused_filters
  - make_filters
code: |
  def is_defendant_party(p):
    return any([pred([p.party_type, p.party_type_name]) for pred in make_filters(is_defendant_filters)])

  def is_plaintiff_party(p):
    return any([pred([p.party_type, p.party_type_name]) for pred in make_filters(is_plaintiff_filters)])

  def is_unused_party(p):
    return any([pred([p.party_type, p.party_type_name]) for pred in make_filters(is_unused_filters)])

Needed definition of is_defendant_filters at 0.11249s

Considered using block at 0.11253s

(from efiling.yml)

## Some of the existing cases have party types like "Defendant/Petitioner".
## We need to stop matching "respondent", etc. to get it right.
if: not is_initial_filing
code: |
  # TODO(brycew): harder, because it's affected by user_started_case
  is_defendant_filters = [
    CodeType('5788'),
    CodeType('598'),
    'Defendant/Appellee',
    'Defendant/Appellant',
    'Defendant/Petitioner',
    'Defendant/Respondent',
    'defendant',
  ]

Tried to run block at 0.11254s

(from efiling.yml)

if: is_initial_filing
code: |
  is_defendant_filters = [
    CodeType('1331'),
    'defendant',
  ]

  is_plaintiff_filters = [
    CodeType('1332'),
    'plaintiff',
  ]

Tried to run block at 0.11263s

(from docassemble.EFSPIntegration:case_search.yml)

need:
  - is_defendant_filters
  - is_plaintiff_filters
  - is_unused_filters
  - make_filters
code: |
  def is_defendant_party(p):
    return any([pred([p.party_type, p.party_type_name]) for pred in make_filters(is_defendant_filters)])

  def is_plaintiff_party(p):
    return any([pred([p.party_type, p.party_type_name]) for pred in make_filters(is_plaintiff_filters)])

  def is_unused_party(p):
    return any([pred([p.party_type, p.party_type_name]) for pred in make_filters(is_unused_filters)])

Needed definition of is_unused_filters at 0.11272s

Tried to run block at 0.11276s

(from docassemble.EFSPIntegration:case_search.yml)

code: |
  is_unused_filters = []

Tried to run block at 0.11284s

(from docassemble.EFSPIntegration:case_search.yml)

need:
  - is_defendant_filters
  - is_plaintiff_filters
  - is_unused_filters
  - make_filters
code: |
  def is_defendant_party(p):
    return any([pred([p.party_type, p.party_type_name]) for pred in make_filters(is_defendant_filters)])

  def is_plaintiff_party(p):
    return any([pred([p.party_type, p.party_type_name]) for pred in make_filters(is_plaintiff_filters)])

  def is_unused_party(p):
    return any([pred([p.party_type, p.party_type_name]) for pred in make_filters(is_unused_filters)])

Tried to run block at 0.11292s

(from efiling.yml)

need:
  - users
  - is_plaintiff_party
  - is_defendant_party
  - target_case.found_case
  - target_case.self_in_case
only sets: to_add_participants
code: |
  users.clear()
  if target_case.self_in_case not in ['is_self', 'is_filing']:
    not_in_case_kickout
  else:
    target_case.self_partip_choice.is_new = False
    target_case.self_partip_choice.is_form_filler = target_case.self_in_case == 'is_self'
    # Change where DA thinks this obj came from, so it says "you", and not "NAME"
    users.append(target_case.self_partip_choice.copy_deep('users[0]'))
    if hasattr(users[-1].address, 'address'):
      users[-1].address.geocode()
    if is_plaintiff_party(users[0]):
      user_ask_role = 'plaintiff'
    elif is_defendant_party(users[0]):
      user_ask_role = 'defendant'
    to_add_participants = [p for p in target_case.found_case.participants if p.instanceName != target_case.self_partip_choice.instanceName and not is_unused_party(p)]

Needed definition of housing_case_search.self_in_case at 0.11297s

Considered using block at 0.11304s

(from docassemble.EFSPIntegration:case_search.yml)

generic object: EFCaseSearch
if: len(x.maybe_user_partips) == 0
code: |
  x.self_in_case = 'no'

Needed definition of housing_case_search.maybe_user_partips at 0.11312s

Tried to run block at 0.11318s

(from docassemble.EFSPIntegration:case_search.yml)

generic object: EFCaseSearch
code: |
  x.maybe_user_partips = [p for p in x.found_case.participants if is_person_party(p) and not is_unused_party(p)]

Needed definition of is_person_party at 0.11335s

Tried to run block at 0.11339s

(from docassemble.EFSPIntegration:case_search.yml)

code: |
  def is_person_party(p):
    return p.person_type != 'business'

Tried to run block at 0.11348s

(from docassemble.EFSPIntegration:case_search.yml)

generic object: EFCaseSearch
code: |
  x.maybe_user_partips = [p for p in x.found_case.participants if is_person_party(p) and not is_unused_party(p)]

Considered using block at 0.11361s

(from docassemble.EFSPIntegration:case_search.yml)

generic object: EFCaseSearch
if: len(x.maybe_user_partips) == 0
code: |
  x.self_in_case = 'no'

Tried to ask question at 0.11370s

(from docassemble.EFSPIntegration:case_search.yml)

id: found-these-participants
generic object: EFCaseSearch
if: len(x.maybe_user_partips) > 1
question: |
  We found these participants in the existing case
subquestion: |
  % for partip in x.maybe_user_partips:
  * ${ partip }
  % endfor

  Are you any of the above participants?
fields:
  - no label: x.self_in_case
    datatype: radio
    code: |
      x.self_in_case_choices
  - I am: x.self_partip_choice
    datatype: object_radio
    choices: |
      x.maybe_user_partips
    js show if: |
      val("x.self_in_case") == "is_self"
  - I am filing for: x.self_partip_choice
    datatype: object_radio
    choices: |
      x.maybe_user_partips
    js show if: |
      val("x.self_in_case") == "is_filing"

Needed definition of housing_case_search.self_in_case_choices at 0.12078s

Tried to run block at 0.12086s

(from docassemble.EFSPIntegration:case_search.yml)

generic object: EFCaseSearch
code: |
  if len(x.maybe_user_partips) == 1:
    person_word = word(x.maybe_user_partips[0].name.familiar())
  else:
    person_word = word('one of them')

  if logged_in_user_is_admin:
    x.self_in_case_choices = [
      ['is_filing', word(f'I am filing for { person_word }')]
    ]
  else:
    x.self_in_case_choices = [
      ['is_self', word('Yes')],
      ['is_filing', word(f'No, but I am filing for { person_word }')]
    ]

  x.self_in_case_choices.extend([
    ['no', word('No')],
    ['idk', word("I do not know")]
  ])

Needed definition of logged_in_user_is_admin at 0.12105s

Considered using block at 0.12109s

(from login_qs.yml)

depends on:
  - tyler_login
  - tyler_login_resp
if: can_check_efile and full_court_info.get("efmType", "ecf") == "ecf"
code: |
  logged_in_user_is_admin, logged_in_user_is_global_admin = get_tyler_roles(proxy_conn, {"TYLER-ID": tyler_user_id})

Needed definition of full_court_info at 0.12118s

Tried to run block at 0.12121s

(from login_qs.yml)

only sets: full_court_info
code: |
  full_court_info = get_full_court_info(proxy_conn, court_id)

Tried to run block at 0.15817s

(from login_qs.yml)

depends on:
  - tyler_login
  - tyler_login_resp
if: can_check_efile and full_court_info.get("efmType", "ecf") == "ecf"
code: |
  logged_in_user_is_admin, logged_in_user_is_global_admin = get_tyler_roles(proxy_conn, {"TYLER-ID": tyler_user_id})

Needed definition of tyler_user_id at 0.15836s

Tried to run block at 0.15841s

(from login_qs.yml)

only sets:
  - tyler_user_id
code: |
  if da_store.defined(tyler_user_id_key):
    tyler_user_id = da_store.get(tyler_user_id_key)
  else:
    # not there: will need to login to get the same info
    tyler_user_id = tyler_login_resp.data

Needed definition of tyler_user_id_key at 0.15854s

Tried to run block at 0.15858s

(from login_qs.yml)

code: |
  tyler_user_id_key = f"EFSP-TYLER-ID-{jurisdiction_id.lower()}"

Tried to run block at 0.15867s

(from login_qs.yml)

only sets:
  - tyler_user_id
code: |
  if da_store.defined(tyler_user_id_key):
    tyler_user_id = da_store.get(tyler_user_id_key)
  else:
    # not there: will need to login to get the same info
    tyler_user_id = tyler_login_resp.data

Tried to run block at 0.16388s

(from login_qs.yml)

depends on:
  - tyler_login
  - tyler_login_resp
if: can_check_efile and full_court_info.get("efmType", "ecf") == "ecf"
code: |
  logged_in_user_is_admin, logged_in_user_is_global_admin = get_tyler_roles(proxy_conn, {"TYLER-ID": tyler_user_id})

Log
Traceback (most recent call last):
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 8745, in assemble
    exec_with_trap(question, user_dict)
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 10180, in exec_with_trap
    exec(the_question.compute, the_dict)
  File "", line 30, in 
NameError: name 'add_new_existing_users' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 9539, in askfor
    exec_with_trap(question, user_dict)
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 10180, in exec_with_trap
    exec(the_question.compute, the_dict)
  File "", line 1, in 
NameError: name 'add_existing_users' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 9524, in askfor
    question.exec_setup(is_generic, the_x, iterators, user_dict)
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 4950, in exec_setup
    eval(need_code, the_user_dict)
  File "", line 1, in 
NameError: name 'to_add_participants' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 9524, in askfor
    question.exec_setup(is_generic, the_x, iterators, user_dict)
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 4950, in exec_setup
    eval(need_code, the_user_dict)
  File "", line 1, in 
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/util.py", line 949, in __getattr__
    raise docassemble.base.functions.this_thread.misc['pending_error']
docassemble.base.error.DAAttributeError: name 'housing_case_search.self_in_case' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 9574, in askfor
    return question.ask(user_dict, old_user_dict, the_x, iterators, missing_var, origMissingVariable)
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 6271, in ask
    selectcompute[field.number] = process_selections(eval(to_compute, user_dict))
  File "", line 1, in 
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/util.py", line 949, in __getattr__
    raise docassemble.base.functions.this_thread.misc['pending_error']
docassemble.base.error.DAAttributeError: name 'housing_case_search.self_in_case_choices' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 9539, in askfor
    exec_with_trap(question, user_dict)
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 10180, in exec_with_trap
    exec(the_question.compute, the_dict)
  File "", line 6, in 
NameError: name 'logged_in_user_is_admin' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/flask/app.py", line 867, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/flask/app.py", line 852, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/webapp/server.py", line 8329, in index
    interview.assemble(user_dict, interview_status, old_user_dict, force_question=special_question)
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 9042, in assemble
    raise the_error
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 8829, in assemble
    question_result = self.askfor(missingVariable, user_dict, old_user_dict, interview_status, seeking=interview_status.seeking, follow_mc=follow_mc, seeking_question=seeking_question)
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 9669, in askfor
    question_result = self.askfor(newMissingVariable, user_dict, old_user_dict, interview_status, variable_stack=variable_stack, questions_tried=questions_tried, seeking=seeking, follow_mc=follow_mc, recursion_depth=recursion_depth, seeking_question=seeking_question)
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 9669, in askfor
    question_result = self.askfor(newMissingVariable, user_dict, old_user_dict, interview_status, variable_stack=variable_stack, questions_tried=questions_tried, seeking=seeking, follow_mc=follow_mc, recursion_depth=recursion_depth, seeking_question=seeking_question)
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 9669, in askfor
    question_result = self.askfor(newMissingVariable, user_dict, old_user_dict, interview_status, variable_stack=variable_stack, questions_tried=questions_tried, seeking=seeking, follow_mc=follow_mc, recursion_depth=recursion_depth, seeking_question=seeking_question)
  [Previous line repeated 2 more times]
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 9539, in askfor
    exec_with_trap(question, user_dict)
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/base/parse.py", line 10180, in exec_with_trap
    exec(the_question.compute, the_dict)
  File "", line 1, in 
  File "/usr/share/docassemble/local3.10/lib/python3.10/site-packages/docassemble/EFSPIntegration/conversions.py", line 959, in get_tyler_roles
    filter(is_admin, user_details.data.get("role"))
TypeError: 'NoneType' object is not iterable
nonprofittechy commented 1 month ago

False alarm--caused by running out of disk space on the test server