mitgliederverwaltung/docs/documentation-sync-todos.md
2026-01-20 14:31:13 +01:00

4.5 KiB

Documentation Sync - Code Adjustments Todo List

Created: 2026-01-13
Purpose: List of all code adjustments identified based on documentation synchronization

Code Adjustments (Priority: Low)

1. Domain Public API Documentation Incomplete

Problem: The @moduledoc in domain modules does not list all public functions.

Affected Files:

  • lib/membership/membership.ex - Missing functions in Public API:
    • list_required_custom_fields/0
    • update_member_field_visibility/2
    • update_single_member_field_visibility/3
  • lib/accounts/accounts.ex - Very short Public API documentation, could be more detailed
  • lib/membership_fees/membership_fees.ex - Public API is complete, but could more clearly document that LiveViews use direct Ash calls

Priority: Low (Documentation, no functionality affected)

Recommendation: Update Public API sections in all domain modules to list all public functions.

2. Outdated Comments in MemberLive.Form

Problem: @moduledoc in lib/mv_web/live/member_live/form.ex still mentions "Payment Data: Mockup section (not editable)", but Membership Fees are now fully implemented.

Affected File:

  • lib/mv_web/live/member_live/form.ex (Line 16)

Priority: Low (Documentation, no functionality affected)

Recommendation: Update @moduledoc to reflect the current status.

3. Mv.Accounts Domain Public API Missing Completely

Problem: The @moduledoc in lib/accounts/accounts.ex does not mention any Public API functions, although several are defined.

Affected File:

  • lib/accounts/accounts.ex - Missing Public API documentation for:
    • create_user/1
    • list_users/0
    • update_user/2
    • destroy_user/1
    • create_register_with_rauthy/1
    • read_sign_in_with_rauthy/1

Priority: Low (Documentation, no functionality affected)

Recommendation: Add Public API section to @moduledoc, similar to other domain modules.

4. Mv.Authorization Domain Public API Missing get_role/1

Problem: The @moduledoc in lib/mv/authorization/authorization.ex does not list get_role/1 in the Public API, although it is defined.

Affected File:

  • lib/mv/authorization/authorization.ex - Missing function in Public API:
    • get_role/1 (is defined, but not mentioned in Public API)

Priority: Low (Documentation, no functionality affected)

Recommendation: Add get_role/1 to the Public API list.

5. Remove Deprecated Implementations

Problem: lib/mv_web/live/custom_field_value_live/show.ex MvWeb.ContributionTypeLive.Index and MvWeb.ContributionPeriodLive.Show are deprecated, they should be removed.

6. Missing Tests for Some LiveViews

Problem: Some LiveViews do not have corresponding test files.

Affected LiveViews:

  • MvWeb.UserLive.Show - No test present
  • MvWeb.RoleLive.Show - No test present

Priority: Medium (Test coverage could be improved)

Recommendation: Add tests for the three Show LiveViews to ensure complete test coverage.

7. Mv.Accounts.Token @moduledoc Too Short

Problem: The @moduledoc in lib/accounts/token.ex is very short and not informative.

Affected File:

  • lib/accounts/token.ex - Currently only: "AshAuthentication specific ressource"

Priority: Low (Documentation, no functionality affected)

Recommendation: Expand @moduledoc to explain that this is an AshAuthentication Token Resource and is used for session management.

8. PageController Missing @moduledoc

Problem: The @moduledoc in lib/mv_web/controllers/page_controller.ex is completely missing.

Affected File:

  • lib/mv_web/controllers/page_controller.ex - No @moduledoc present

Priority: Low (Documentation, no functionality affected)

Recommendation: Add @moduledoc to explain that this controller renders the homepage.

Note: Other controller modules (Router, Endpoint, Telemetry) also do not have @moduledoc, but this is common and acceptable for standard Phoenix modules.

Analysis Summary

Found Inconsistencies

1. Domain Public API Documentation Incomplete (see Code Adjustments #1) 2. Outdated Comments in MemberLive.Form (see Code Adjustments #2) 3. Mv.Accounts Domain Public API Missing Completely (see Code Adjustments #3) 4. Mv.Authorization Domain Public API Missing get_role/1 (see Code Adjustments #4) 5. CustomFieldValueLive.Show is Deprecated (see Code Adjustments #5) 6. Missing Tests for Some LiveViews (see Code Adjustments #6) 7. Mv.Accounts.Token @moduledoc Too Short (see Code Adjustments #7) 8. PageController Missing @moduledoc (see Code Adjustments #8)