Make module installable on stock Odoo 18 (verified via test DB install)

Caught and fixed by running an actual install on a throwaway DB:

- Strip 29 # comment lines from ir.model.access.csv (Odoo CSV loader treats
  them as malformed rows → IndexError); 79 data rows preserved
- Remove obsolete ir.cron.numbercall field (removed in Odoo 17+) from 4 cron
  records in fl_deadline_rules.xml
- Rename <tree>→<list> across 26 sites; inside x2many inline views Odoo 18 no
  longer recognizes <tree>, which made it fall back to the outer model and
  reject inner fields ("Field 'partner_id' does not exist in model 'fl.case'")
- Add store=True to non-stored computed fields referenced by search filters,
  which Odoo 18 now rejects as unsearchable:
  - fl.case: overdue_deadline_count, next_deadline_label
  - fl.deposition: notice_valid

Module loads cleanly: 31 fl.* models registered, no errors.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-30 03:28:55 +00:00
parent 983964c6d2
commit c1b5947b7c
19 changed files with 55 additions and 88 deletions

View File

@@ -1,109 +1,80 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
# ── fl.case.stage ─────────────────────────────────────────────────────────────
access_fl_case_stage_admin,fl.case.stage admin,model_fl_case_stage,group_admin,1,1,1,1
access_fl_case_stage_paralegal,fl.case.stage paralegal,model_fl_case_stage,group_paralegal,1,0,0,0
access_fl_case_stage_petitioner,fl.case.stage petitioner,model_fl_case_stage,group_portal_petitioner,1,0,0,0
# ── fl.case ──────────────────────────────────────────────────────────────────
access_fl_case_admin,fl.case admin,model_fl_case,group_admin,1,1,1,1
access_fl_case_paralegal,fl.case paralegal,model_fl_case,group_paralegal,1,1,1,0
access_fl_case_petitioner,fl.case petitioner portal,model_fl_case,group_portal_petitioner,1,1,0,0
access_fl_case_respondent,fl.case respondent portal,model_fl_case,group_portal_respondent,1,0,0,0
# ── fl.party ─────────────────────────────────────────────────────────────────
access_fl_party_admin,fl.party admin,model_fl_party,group_admin,1,1,1,1
access_fl_party_paralegal,fl.party paralegal,model_fl_party,group_paralegal,1,1,1,0
access_fl_party_petitioner,fl.party petitioner portal,model_fl_party,group_portal_petitioner,1,1,0,0
access_fl_party_respondent,fl.party respondent portal,model_fl_party,group_portal_respondent,1,1,0,0
# ── fl.income.source ─────────────────────────────────────────────────────────
access_fl_income_source_admin,fl.income.source admin,model_fl_income_source,group_admin,1,1,1,1
access_fl_income_source_paralegal,fl.income.source paralegal,model_fl_income_source,group_paralegal,1,1,1,0
access_fl_income_source_petitioner,fl.income.source petitioner,model_fl_income_source,group_portal_petitioner,1,1,0,0
# ── fl.child ─────────────────────────────────────────────────────────────────
access_fl_child_admin,fl.child admin,model_fl_child,group_admin,1,1,1,1
access_fl_child_paralegal,fl.child paralegal,model_fl_child,group_paralegal,1,1,1,0
access_fl_child_petitioner,fl.child petitioner portal,model_fl_child,group_portal_petitioner,1,1,0,0
access_fl_child_respondent,fl.child respondent portal,model_fl_child,group_portal_respondent,1,0,0,0
# ── fl.support.calculation ───────────────────────────────────────────────────
access_fl_support_calc_admin,fl.support.calculation admin,model_fl_support_calculation,group_admin,1,1,1,1
access_fl_support_calc_paralegal,fl.support.calculation paralegal,model_fl_support_calculation,group_paralegal,1,1,1,0
access_fl_support_calc_petitioner,fl.support.calculation petitioner,model_fl_support_calculation,group_portal_petitioner,1,1,1,0
access_fl_support_calc_respondent,fl.support.calculation respondent,model_fl_support_calculation,group_portal_respondent,1,0,0,0
# ── fl.support.schedule.entry ────────────────────────────────────────────────
access_fl_support_schedule_admin,fl.support.schedule.entry admin,model_fl_support_schedule_entry,group_admin,1,1,1,1
access_fl_support_schedule_paralegal,fl.support.schedule.entry paralegal,model_fl_support_schedule_entry,group_paralegal,1,0,0,0
access_fl_support_schedule_petitioner,fl.support.schedule.entry petitioner,model_fl_support_schedule_entry,group_portal_petitioner,1,0,0,0
# ── fl.statute ───────────────────────────────────────────────────────────────
access_fl_statute_admin,fl.statute admin,model_fl_statute,group_admin,1,1,1,1
access_fl_statute_paralegal,fl.statute paralegal,model_fl_statute,group_paralegal,1,0,0,0
access_fl_statute_petitioner,fl.statute petitioner,model_fl_statute,group_portal_petitioner,1,0,0,0
# ── fl.issue.tag ─────────────────────────────────────────────────────────────
access_fl_issue_tag_admin,fl.issue.tag admin,model_fl_issue_tag,group_admin,1,1,1,1
access_fl_issue_tag_paralegal,fl.issue.tag paralegal,model_fl_issue_tag,group_paralegal,1,0,0,0
access_fl_issue_tag_petitioner,fl.issue.tag petitioner,model_fl_issue_tag,group_portal_petitioner,1,0,0,0
# ── fl.deadline ──────────────────────────────────────────────────────────────
access_fl_deadline_admin,fl.deadline admin,model_fl_deadline,group_admin,1,1,1,1
access_fl_deadline_paralegal,fl.deadline paralegal,model_fl_deadline,group_paralegal,1,1,1,0
access_fl_deadline_petitioner,fl.deadline petitioner,model_fl_deadline,group_portal_petitioner,1,0,0,0
# ── fl.hearing ───────────────────────────────────────────────────────────────
access_fl_hearing_admin,fl.hearing admin,model_fl_hearing,group_admin,1,1,1,1
access_fl_hearing_paralegal,fl.hearing paralegal,model_fl_hearing,group_paralegal,1,1,1,0
access_fl_hearing_petitioner,fl.hearing petitioner,model_fl_hearing,group_portal_petitioner,1,0,0,0
# ── fl.deposition ────────────────────────────────────────────────────────────
access_fl_deposition_admin,fl.deposition admin,model_fl_deposition,group_admin,1,1,1,1
access_fl_deposition_paralegal,fl.deposition paralegal,model_fl_deposition,group_paralegal,1,1,1,0
access_fl_deposition_petitioner,fl.deposition petitioner,model_fl_deposition,group_portal_petitioner,1,0,0,0
# ── fl.discovery ─────────────────────────────────────────────────────────────
access_fl_discovery_admin,fl.discovery admin,model_fl_discovery,group_admin,1,1,1,1
access_fl_discovery_paralegal,fl.discovery paralegal,model_fl_discovery,group_paralegal,1,1,1,0
access_fl_discovery_petitioner,fl.discovery petitioner,model_fl_discovery,group_portal_petitioner,1,0,0,0
# ── fl.document ──────────────────────────────────────────────────────────────
access_fl_document_admin,fl.document admin,model_fl_document,group_admin,1,1,1,1
access_fl_document_paralegal,fl.document paralegal,model_fl_document,group_paralegal,1,1,1,0
access_fl_document_petitioner,fl.document petitioner,model_fl_document,group_portal_petitioner,1,0,0,0
# ── fl.caselaw ───────────────────────────────────────────────────────────────
access_fl_caselaw_admin,fl.caselaw admin,model_fl_caselaw,group_admin,1,1,1,1
access_fl_caselaw_paralegal,fl.caselaw paralegal,model_fl_caselaw,group_paralegal,1,1,0,0
access_fl_caselaw_petitioner,fl.caselaw petitioner,model_fl_caselaw,group_portal_petitioner,1,0,0,0
# ── fl.analysis ──────────────────────────────────────────────────────────────
access_fl_analysis_admin,fl.analysis admin,model_fl_analysis,group_admin,1,1,1,1
access_fl_analysis_paralegal,fl.analysis paralegal,model_fl_analysis,group_paralegal,1,0,0,0
access_fl_analysis_petitioner,fl.analysis petitioner,model_fl_analysis,group_portal_petitioner,1,0,0,0
# ── fl.argument ──────────────────────────────────────────────────────────────
access_fl_argument_admin,fl.argument admin,model_fl_argument,group_admin,1,1,1,1
access_fl_argument_paralegal,fl.argument paralegal,model_fl_argument,group_paralegal,1,1,0,0
# ── fl.fee.waiver ────────────────────────────────────────────────────────────
access_fl_fee_waiver_admin,fl.fee.waiver admin,model_fl_fee_waiver,group_admin,1,1,1,1
access_fl_fee_waiver_paralegal,fl.fee.waiver paralegal,model_fl_fee_waiver,group_paralegal,1,1,1,0
access_fl_fee_waiver_petitioner,fl.fee.waiver petitioner,model_fl_fee_waiver,group_portal_petitioner,1,1,1,0
# ── fl.income.withholding ─────────────────────────────────────────────────────
access_fl_income_withholding_admin,fl.income.withholding admin,model_fl_income_withholding,group_admin,1,1,1,1
access_fl_income_withholding_paralegal,fl.income.withholding paralegal,model_fl_income_withholding,group_paralegal,1,1,1,0
access_fl_income_withholding_petitioner,fl.income.withholding petitioner,model_fl_income_withholding,group_portal_petitioner,1,0,0,0
# ── fl.conflict.check ────────────────────────────────────────────────────────
access_fl_conflict_check_admin,fl.conflict.check admin,model_fl_conflict_check,group_admin,1,1,1,1
access_fl_conflict_check_paralegal,fl.conflict.check paralegal,model_fl_conflict_check,group_paralegal,1,1,1,0
# ── fl.timesheet ─────────────────────────────────────────────────────────────
access_fl_timesheet_admin,fl.timesheet admin,model_fl_timesheet,group_admin,1,1,1,1
access_fl_timesheet_paralegal,fl.timesheet paralegal,model_fl_timesheet,group_paralegal,1,1,1,0
# ── account.analytic.line (timesheet wraps it — ensure non-admins can post) ───
access_account_analytic_line_fl_admin,account.analytic.line fl admin,analytic.model_account_analytic_line,group_admin,1,1,1,1
access_account_analytic_line_fl_paralegal,account.analytic.line fl paralegal,analytic.model_account_analytic_line,group_paralegal,1,1,1,0
# ── fl.efiling.submission ────────────────────────────────────────────────────
access_fl_efiling_submission_admin,fl.efiling.submission admin,model_fl_efiling_submission,group_admin,1,1,1,1
access_fl_efiling_submission_paralegal,fl.efiling.submission paralegal,model_fl_efiling_submission,group_paralegal,1,1,1,0
# ── fl.efiling.wizard ────────────────────────────────────────────────────────
access_fl_efiling_wizard_admin,fl.efiling.wizard admin,model_fl_efiling_wizard,group_admin,1,1,1,1
access_fl_efiling_wizard_paralegal,fl.efiling.wizard paralegal,model_fl_efiling_wizard,group_paralegal,1,1,1,1
# ── fl.intake.wizard ─────────────────────────────────────────────────────────
access_fl_intake_wizard_admin,fl.intake.wizard admin,model_fl_intake_wizard,group_admin,1,1,1,1
access_fl_intake_wizard_paralegal,fl.intake.wizard paralegal,model_fl_intake_wizard,group_paralegal,1,1,1,1
# ── fl.analysis.wizard ───────────────────────────────────────────────────────
access_fl_analysis_wizard_admin,fl.analysis.wizard admin,model_fl_analysis_wizard,group_admin,1,1,1,1
# ── fl.generate.packet.wizard ────────────────────────────────────────────────
access_fl_generate_packet_wizard_admin,fl.generate.packet.wizard admin,model_fl_generate_packet_wizard,group_admin,1,1,1,1
access_fl_generate_packet_wizard_paralegal,fl.generate.packet.wizard paralegal,model_fl_generate_packet_wizard,group_paralegal,1,1,1,1
# ── fl.discovery.suggest.wizard ──────────────────────────────────────────────
access_fl_discovery_suggest_wizard_admin,fl.discovery.suggest.wizard admin,model_fl_discovery_suggest_wizard,group_admin,1,1,1,1
access_fl_discovery_suggest_wizard_paralegal,fl.discovery.suggest.wizard paralegal,model_fl_discovery_suggest_wizard,group_paralegal,1,1,1,1
# ── fl.discovery.suggest.line ────────────────────────────────────────────────
access_fl_discovery_suggest_line_admin,fl.discovery.suggest.line admin,model_fl_discovery_suggest_line,group_admin,1,1,1,1
access_fl_discovery_suggest_line_paralegal,fl.discovery.suggest.line paralegal,model_fl_discovery_suggest_line,group_paralegal,1,1,1,1
1 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
# ── fl.case.stage ─────────────────────────────────────────────────────────────
2 access_fl_case_stage_admin,fl.case.stage admin,model_fl_case_stage,group_admin,1,1,1,1 access_fl_case_stage_admin fl.case.stage admin model_fl_case_stage group_admin 1 1 1 1
3 access_fl_case_stage_paralegal,fl.case.stage paralegal,model_fl_case_stage,group_paralegal,1,0,0,0 access_fl_case_stage_paralegal fl.case.stage paralegal model_fl_case_stage group_paralegal 1 0 0 0
4 access_fl_case_stage_petitioner,fl.case.stage petitioner,model_fl_case_stage,group_portal_petitioner,1,0,0,0 access_fl_case_stage_petitioner fl.case.stage petitioner model_fl_case_stage group_portal_petitioner 1 0 0 0
# ── fl.case ──────────────────────────────────────────────────────────────────
5 access_fl_case_admin,fl.case admin,model_fl_case,group_admin,1,1,1,1 access_fl_case_admin fl.case admin model_fl_case group_admin 1 1 1 1
6 access_fl_case_paralegal,fl.case paralegal,model_fl_case,group_paralegal,1,1,1,0 access_fl_case_paralegal fl.case paralegal model_fl_case group_paralegal 1 1 1 0
7 access_fl_case_petitioner,fl.case petitioner portal,model_fl_case,group_portal_petitioner,1,1,0,0 access_fl_case_petitioner fl.case petitioner portal model_fl_case group_portal_petitioner 1 1 0 0
8 access_fl_case_respondent,fl.case respondent portal,model_fl_case,group_portal_respondent,1,0,0,0 access_fl_case_respondent fl.case respondent portal model_fl_case group_portal_respondent 1 0 0 0
# ── fl.party ─────────────────────────────────────────────────────────────────
9 access_fl_party_admin,fl.party admin,model_fl_party,group_admin,1,1,1,1 access_fl_party_admin fl.party admin model_fl_party group_admin 1 1 1 1
10 access_fl_party_paralegal,fl.party paralegal,model_fl_party,group_paralegal,1,1,1,0 access_fl_party_paralegal fl.party paralegal model_fl_party group_paralegal 1 1 1 0
11 access_fl_party_petitioner,fl.party petitioner portal,model_fl_party,group_portal_petitioner,1,1,0,0 access_fl_party_petitioner fl.party petitioner portal model_fl_party group_portal_petitioner 1 1 0 0
12 access_fl_party_respondent,fl.party respondent portal,model_fl_party,group_portal_respondent,1,1,0,0 access_fl_party_respondent fl.party respondent portal model_fl_party group_portal_respondent 1 1 0 0
# ── fl.income.source ─────────────────────────────────────────────────────────
13 access_fl_income_source_admin,fl.income.source admin,model_fl_income_source,group_admin,1,1,1,1 access_fl_income_source_admin fl.income.source admin model_fl_income_source group_admin 1 1 1 1
14 access_fl_income_source_paralegal,fl.income.source paralegal,model_fl_income_source,group_paralegal,1,1,1,0 access_fl_income_source_paralegal fl.income.source paralegal model_fl_income_source group_paralegal 1 1 1 0
15 access_fl_income_source_petitioner,fl.income.source petitioner,model_fl_income_source,group_portal_petitioner,1,1,0,0 access_fl_income_source_petitioner fl.income.source petitioner model_fl_income_source group_portal_petitioner 1 1 0 0
# ── fl.child ─────────────────────────────────────────────────────────────────
16 access_fl_child_admin,fl.child admin,model_fl_child,group_admin,1,1,1,1 access_fl_child_admin fl.child admin model_fl_child group_admin 1 1 1 1
17 access_fl_child_paralegal,fl.child paralegal,model_fl_child,group_paralegal,1,1,1,0 access_fl_child_paralegal fl.child paralegal model_fl_child group_paralegal 1 1 1 0
18 access_fl_child_petitioner,fl.child petitioner portal,model_fl_child,group_portal_petitioner,1,1,0,0 access_fl_child_petitioner fl.child petitioner portal model_fl_child group_portal_petitioner 1 1 0 0
19 access_fl_child_respondent,fl.child respondent portal,model_fl_child,group_portal_respondent,1,0,0,0 access_fl_child_respondent fl.child respondent portal model_fl_child group_portal_respondent 1 0 0 0
# ── fl.support.calculation ───────────────────────────────────────────────────
20 access_fl_support_calc_admin,fl.support.calculation admin,model_fl_support_calculation,group_admin,1,1,1,1 access_fl_support_calc_admin fl.support.calculation admin model_fl_support_calculation group_admin 1 1 1 1
21 access_fl_support_calc_paralegal,fl.support.calculation paralegal,model_fl_support_calculation,group_paralegal,1,1,1,0 access_fl_support_calc_paralegal fl.support.calculation paralegal model_fl_support_calculation group_paralegal 1 1 1 0
22 access_fl_support_calc_petitioner,fl.support.calculation petitioner,model_fl_support_calculation,group_portal_petitioner,1,1,1,0 access_fl_support_calc_petitioner fl.support.calculation petitioner model_fl_support_calculation group_portal_petitioner 1 1 1 0
23 access_fl_support_calc_respondent,fl.support.calculation respondent,model_fl_support_calculation,group_portal_respondent,1,0,0,0 access_fl_support_calc_respondent fl.support.calculation respondent model_fl_support_calculation group_portal_respondent 1 0 0 0
# ── fl.support.schedule.entry ────────────────────────────────────────────────
24 access_fl_support_schedule_admin,fl.support.schedule.entry admin,model_fl_support_schedule_entry,group_admin,1,1,1,1 access_fl_support_schedule_admin fl.support.schedule.entry admin model_fl_support_schedule_entry group_admin 1 1 1 1
25 access_fl_support_schedule_paralegal,fl.support.schedule.entry paralegal,model_fl_support_schedule_entry,group_paralegal,1,0,0,0 access_fl_support_schedule_paralegal fl.support.schedule.entry paralegal model_fl_support_schedule_entry group_paralegal 1 0 0 0
26 access_fl_support_schedule_petitioner,fl.support.schedule.entry petitioner,model_fl_support_schedule_entry,group_portal_petitioner,1,0,0,0 access_fl_support_schedule_petitioner fl.support.schedule.entry petitioner model_fl_support_schedule_entry group_portal_petitioner 1 0 0 0
# ── fl.statute ───────────────────────────────────────────────────────────────
27 access_fl_statute_admin,fl.statute admin,model_fl_statute,group_admin,1,1,1,1 access_fl_statute_admin fl.statute admin model_fl_statute group_admin 1 1 1 1
28 access_fl_statute_paralegal,fl.statute paralegal,model_fl_statute,group_paralegal,1,0,0,0 access_fl_statute_paralegal fl.statute paralegal model_fl_statute group_paralegal 1 0 0 0
29 access_fl_statute_petitioner,fl.statute petitioner,model_fl_statute,group_portal_petitioner,1,0,0,0 access_fl_statute_petitioner fl.statute petitioner model_fl_statute group_portal_petitioner 1 0 0 0
# ── fl.issue.tag ─────────────────────────────────────────────────────────────
30 access_fl_issue_tag_admin,fl.issue.tag admin,model_fl_issue_tag,group_admin,1,1,1,1 access_fl_issue_tag_admin fl.issue.tag admin model_fl_issue_tag group_admin 1 1 1 1
31 access_fl_issue_tag_paralegal,fl.issue.tag paralegal,model_fl_issue_tag,group_paralegal,1,0,0,0 access_fl_issue_tag_paralegal fl.issue.tag paralegal model_fl_issue_tag group_paralegal 1 0 0 0
32 access_fl_issue_tag_petitioner,fl.issue.tag petitioner,model_fl_issue_tag,group_portal_petitioner,1,0,0,0 access_fl_issue_tag_petitioner fl.issue.tag petitioner model_fl_issue_tag group_portal_petitioner 1 0 0 0
# ── fl.deadline ──────────────────────────────────────────────────────────────
33 access_fl_deadline_admin,fl.deadline admin,model_fl_deadline,group_admin,1,1,1,1 access_fl_deadline_admin fl.deadline admin model_fl_deadline group_admin 1 1 1 1
34 access_fl_deadline_paralegal,fl.deadline paralegal,model_fl_deadline,group_paralegal,1,1,1,0 access_fl_deadline_paralegal fl.deadline paralegal model_fl_deadline group_paralegal 1 1 1 0
35 access_fl_deadline_petitioner,fl.deadline petitioner,model_fl_deadline,group_portal_petitioner,1,0,0,0 access_fl_deadline_petitioner fl.deadline petitioner model_fl_deadline group_portal_petitioner 1 0 0 0
# ── fl.hearing ───────────────────────────────────────────────────────────────
36 access_fl_hearing_admin,fl.hearing admin,model_fl_hearing,group_admin,1,1,1,1 access_fl_hearing_admin fl.hearing admin model_fl_hearing group_admin 1 1 1 1
37 access_fl_hearing_paralegal,fl.hearing paralegal,model_fl_hearing,group_paralegal,1,1,1,0 access_fl_hearing_paralegal fl.hearing paralegal model_fl_hearing group_paralegal 1 1 1 0
38 access_fl_hearing_petitioner,fl.hearing petitioner,model_fl_hearing,group_portal_petitioner,1,0,0,0 access_fl_hearing_petitioner fl.hearing petitioner model_fl_hearing group_portal_petitioner 1 0 0 0
# ── fl.deposition ────────────────────────────────────────────────────────────
39 access_fl_deposition_admin,fl.deposition admin,model_fl_deposition,group_admin,1,1,1,1 access_fl_deposition_admin fl.deposition admin model_fl_deposition group_admin 1 1 1 1
40 access_fl_deposition_paralegal,fl.deposition paralegal,model_fl_deposition,group_paralegal,1,1,1,0 access_fl_deposition_paralegal fl.deposition paralegal model_fl_deposition group_paralegal 1 1 1 0
41 access_fl_deposition_petitioner,fl.deposition petitioner,model_fl_deposition,group_portal_petitioner,1,0,0,0 access_fl_deposition_petitioner fl.deposition petitioner model_fl_deposition group_portal_petitioner 1 0 0 0
# ── fl.discovery ─────────────────────────────────────────────────────────────
42 access_fl_discovery_admin,fl.discovery admin,model_fl_discovery,group_admin,1,1,1,1 access_fl_discovery_admin fl.discovery admin model_fl_discovery group_admin 1 1 1 1
43 access_fl_discovery_paralegal,fl.discovery paralegal,model_fl_discovery,group_paralegal,1,1,1,0 access_fl_discovery_paralegal fl.discovery paralegal model_fl_discovery group_paralegal 1 1 1 0
44 access_fl_discovery_petitioner,fl.discovery petitioner,model_fl_discovery,group_portal_petitioner,1,0,0,0 access_fl_discovery_petitioner fl.discovery petitioner model_fl_discovery group_portal_petitioner 1 0 0 0
# ── fl.document ──────────────────────────────────────────────────────────────
45 access_fl_document_admin,fl.document admin,model_fl_document,group_admin,1,1,1,1 access_fl_document_admin fl.document admin model_fl_document group_admin 1 1 1 1
46 access_fl_document_paralegal,fl.document paralegal,model_fl_document,group_paralegal,1,1,1,0 access_fl_document_paralegal fl.document paralegal model_fl_document group_paralegal 1 1 1 0
47 access_fl_document_petitioner,fl.document petitioner,model_fl_document,group_portal_petitioner,1,0,0,0 access_fl_document_petitioner fl.document petitioner model_fl_document group_portal_petitioner 1 0 0 0
# ── fl.caselaw ───────────────────────────────────────────────────────────────
48 access_fl_caselaw_admin,fl.caselaw admin,model_fl_caselaw,group_admin,1,1,1,1 access_fl_caselaw_admin fl.caselaw admin model_fl_caselaw group_admin 1 1 1 1
49 access_fl_caselaw_paralegal,fl.caselaw paralegal,model_fl_caselaw,group_paralegal,1,1,0,0 access_fl_caselaw_paralegal fl.caselaw paralegal model_fl_caselaw group_paralegal 1 1 0 0
50 access_fl_caselaw_petitioner,fl.caselaw petitioner,model_fl_caselaw,group_portal_petitioner,1,0,0,0 access_fl_caselaw_petitioner fl.caselaw petitioner model_fl_caselaw group_portal_petitioner 1 0 0 0
# ── fl.analysis ──────────────────────────────────────────────────────────────
51 access_fl_analysis_admin,fl.analysis admin,model_fl_analysis,group_admin,1,1,1,1 access_fl_analysis_admin fl.analysis admin model_fl_analysis group_admin 1 1 1 1
52 access_fl_analysis_paralegal,fl.analysis paralegal,model_fl_analysis,group_paralegal,1,0,0,0 access_fl_analysis_paralegal fl.analysis paralegal model_fl_analysis group_paralegal 1 0 0 0
53 access_fl_analysis_petitioner,fl.analysis petitioner,model_fl_analysis,group_portal_petitioner,1,0,0,0 access_fl_analysis_petitioner fl.analysis petitioner model_fl_analysis group_portal_petitioner 1 0 0 0
# ── fl.argument ──────────────────────────────────────────────────────────────
54 access_fl_argument_admin,fl.argument admin,model_fl_argument,group_admin,1,1,1,1 access_fl_argument_admin fl.argument admin model_fl_argument group_admin 1 1 1 1
55 access_fl_argument_paralegal,fl.argument paralegal,model_fl_argument,group_paralegal,1,1,0,0 access_fl_argument_paralegal fl.argument paralegal model_fl_argument group_paralegal 1 1 0 0
# ── fl.fee.waiver ────────────────────────────────────────────────────────────
56 access_fl_fee_waiver_admin,fl.fee.waiver admin,model_fl_fee_waiver,group_admin,1,1,1,1 access_fl_fee_waiver_admin fl.fee.waiver admin model_fl_fee_waiver group_admin 1 1 1 1
57 access_fl_fee_waiver_paralegal,fl.fee.waiver paralegal,model_fl_fee_waiver,group_paralegal,1,1,1,0 access_fl_fee_waiver_paralegal fl.fee.waiver paralegal model_fl_fee_waiver group_paralegal 1 1 1 0
58 access_fl_fee_waiver_petitioner,fl.fee.waiver petitioner,model_fl_fee_waiver,group_portal_petitioner,1,1,1,0 access_fl_fee_waiver_petitioner fl.fee.waiver petitioner model_fl_fee_waiver group_portal_petitioner 1 1 1 0
# ── fl.income.withholding ─────────────────────────────────────────────────────
59 access_fl_income_withholding_admin,fl.income.withholding admin,model_fl_income_withholding,group_admin,1,1,1,1 access_fl_income_withholding_admin fl.income.withholding admin model_fl_income_withholding group_admin 1 1 1 1
60 access_fl_income_withholding_paralegal,fl.income.withholding paralegal,model_fl_income_withholding,group_paralegal,1,1,1,0 access_fl_income_withholding_paralegal fl.income.withholding paralegal model_fl_income_withholding group_paralegal 1 1 1 0
61 access_fl_income_withholding_petitioner,fl.income.withholding petitioner,model_fl_income_withholding,group_portal_petitioner,1,0,0,0 access_fl_income_withholding_petitioner fl.income.withholding petitioner model_fl_income_withholding group_portal_petitioner 1 0 0 0
# ── fl.conflict.check ────────────────────────────────────────────────────────
62 access_fl_conflict_check_admin,fl.conflict.check admin,model_fl_conflict_check,group_admin,1,1,1,1 access_fl_conflict_check_admin fl.conflict.check admin model_fl_conflict_check group_admin 1 1 1 1
63 access_fl_conflict_check_paralegal,fl.conflict.check paralegal,model_fl_conflict_check,group_paralegal,1,1,1,0 access_fl_conflict_check_paralegal fl.conflict.check paralegal model_fl_conflict_check group_paralegal 1 1 1 0
# ── fl.timesheet ─────────────────────────────────────────────────────────────
64 access_fl_timesheet_admin,fl.timesheet admin,model_fl_timesheet,group_admin,1,1,1,1 access_fl_timesheet_admin fl.timesheet admin model_fl_timesheet group_admin 1 1 1 1
65 access_fl_timesheet_paralegal,fl.timesheet paralegal,model_fl_timesheet,group_paralegal,1,1,1,0 access_fl_timesheet_paralegal fl.timesheet paralegal model_fl_timesheet group_paralegal 1 1 1 0
# ── account.analytic.line (timesheet wraps it — ensure non-admins can post) ───
66 access_account_analytic_line_fl_admin,account.analytic.line fl admin,analytic.model_account_analytic_line,group_admin,1,1,1,1 access_account_analytic_line_fl_admin account.analytic.line fl admin analytic.model_account_analytic_line group_admin 1 1 1 1
67 access_account_analytic_line_fl_paralegal,account.analytic.line fl paralegal,analytic.model_account_analytic_line,group_paralegal,1,1,1,0 access_account_analytic_line_fl_paralegal account.analytic.line fl paralegal analytic.model_account_analytic_line group_paralegal 1 1 1 0
# ── fl.efiling.submission ────────────────────────────────────────────────────
68 access_fl_efiling_submission_admin,fl.efiling.submission admin,model_fl_efiling_submission,group_admin,1,1,1,1 access_fl_efiling_submission_admin fl.efiling.submission admin model_fl_efiling_submission group_admin 1 1 1 1
69 access_fl_efiling_submission_paralegal,fl.efiling.submission paralegal,model_fl_efiling_submission,group_paralegal,1,1,1,0 access_fl_efiling_submission_paralegal fl.efiling.submission paralegal model_fl_efiling_submission group_paralegal 1 1 1 0
# ── fl.efiling.wizard ────────────────────────────────────────────────────────
70 access_fl_efiling_wizard_admin,fl.efiling.wizard admin,model_fl_efiling_wizard,group_admin,1,1,1,1 access_fl_efiling_wizard_admin fl.efiling.wizard admin model_fl_efiling_wizard group_admin 1 1 1 1
71 access_fl_efiling_wizard_paralegal,fl.efiling.wizard paralegal,model_fl_efiling_wizard,group_paralegal,1,1,1,1 access_fl_efiling_wizard_paralegal fl.efiling.wizard paralegal model_fl_efiling_wizard group_paralegal 1 1 1 1
# ── fl.intake.wizard ─────────────────────────────────────────────────────────
72 access_fl_intake_wizard_admin,fl.intake.wizard admin,model_fl_intake_wizard,group_admin,1,1,1,1 access_fl_intake_wizard_admin fl.intake.wizard admin model_fl_intake_wizard group_admin 1 1 1 1
73 access_fl_intake_wizard_paralegal,fl.intake.wizard paralegal,model_fl_intake_wizard,group_paralegal,1,1,1,1 access_fl_intake_wizard_paralegal fl.intake.wizard paralegal model_fl_intake_wizard group_paralegal 1 1 1 1
# ── fl.analysis.wizard ───────────────────────────────────────────────────────
74 access_fl_analysis_wizard_admin,fl.analysis.wizard admin,model_fl_analysis_wizard,group_admin,1,1,1,1 access_fl_analysis_wizard_admin fl.analysis.wizard admin model_fl_analysis_wizard group_admin 1 1 1 1
# ── fl.generate.packet.wizard ────────────────────────────────────────────────
75 access_fl_generate_packet_wizard_admin,fl.generate.packet.wizard admin,model_fl_generate_packet_wizard,group_admin,1,1,1,1 access_fl_generate_packet_wizard_admin fl.generate.packet.wizard admin model_fl_generate_packet_wizard group_admin 1 1 1 1
76 access_fl_generate_packet_wizard_paralegal,fl.generate.packet.wizard paralegal,model_fl_generate_packet_wizard,group_paralegal,1,1,1,1 access_fl_generate_packet_wizard_paralegal fl.generate.packet.wizard paralegal model_fl_generate_packet_wizard group_paralegal 1 1 1 1
# ── fl.discovery.suggest.wizard ──────────────────────────────────────────────
77 access_fl_discovery_suggest_wizard_admin,fl.discovery.suggest.wizard admin,model_fl_discovery_suggest_wizard,group_admin,1,1,1,1 access_fl_discovery_suggest_wizard_admin fl.discovery.suggest.wizard admin model_fl_discovery_suggest_wizard group_admin 1 1 1 1
78 access_fl_discovery_suggest_wizard_paralegal,fl.discovery.suggest.wizard paralegal,model_fl_discovery_suggest_wizard,group_paralegal,1,1,1,1 access_fl_discovery_suggest_wizard_paralegal fl.discovery.suggest.wizard paralegal model_fl_discovery_suggest_wizard group_paralegal 1 1 1 1
# ── fl.discovery.suggest.line ────────────────────────────────────────────────
79 access_fl_discovery_suggest_line_admin,fl.discovery.suggest.line admin,model_fl_discovery_suggest_line,group_admin,1,1,1,1 access_fl_discovery_suggest_line_admin fl.discovery.suggest.line admin model_fl_discovery_suggest_line group_admin 1 1 1 1
80 access_fl_discovery_suggest_line_paralegal,fl.discovery.suggest.line paralegal,model_fl_discovery_suggest_line,group_paralegal,1,1,1,1 access_fl_discovery_suggest_line_paralegal fl.discovery.suggest.line paralegal model_fl_discovery_suggest_line group_paralegal 1 1 1 1