8000 [Feature] CARES liaison report export · Issue #284 · jra3/mulm · GitHub
[go: up one dir, main page]

Skip to content

[Feature] CARES liaison report export #284

Open

Description

@jra3

Current delivery plan — 2026-10-15

Delivery plan: #558; launch verification: #564.

Deliver the existing preview + CSV + photo ZIP requirements over independent CARES registrations, article activity and fry shares.

  • Use the shared confirmation/lapse rules from [Feature] Annual renewal system #283; do not recreate status logic in the export.
  • Specify period semantics before implementation: an active-registration snapshot/as-of date versus activities occurring in the selected date range. Long-standing active registrations must not disappear merely because their registration date precedes the activity window. Reconcile the current-quarter versus last-quarter defaults in the older text.
  • Confirm the required fields and reporting period with the liaison; the old text alternates between quarterly and three-times-yearly reports. Do not encode either cadence as an unverified rule.
  • Preview and downloads must describe the same selection; identify registrations, Species, articles and internal/external fry shares consistently. Handle missing photos visibly and create unambiguous filenames.
  • Restrict exports and contact details to the existing authorized admin role, safely encode CSV cells, and keep memory/storage use bounded for photo archives.
  • Verify date boundaries, lapsed/reactivated registrations, old active registrations, article/share inclusion, privacy, CSV escaping and missing/duplicate-name photos. Validate a representative CSV/ZIP and staging preview with chikin-farm.

Blocked by: #283 and #281 for the complete reporting slice. Reporting semantics/required fields must be recorded before marking ready.

Earlier requirements and design

Overview

Generate reports for CARES program submissions to be sent by the club liaison.

Parent: #276

Phase 3 - Reporting

Requirements

  • FR5.1: Export all active registrations with member info, species, and dates
  • FR5.2: Export fry sharing events (especially external/Red seal events)
  • FR5.3: Export article submissions
  • FR5.4: Include photos for species verification
  • FR5.5: Filterable by date range (for quarterly submissions)
  • FR5.6: Export formats: CSV for data, ZIP for photos

CARES Submission Requirements

Club liaison must submit to CARES administration 3x/year:

  • Complete listing of participants and species
  • Photo IDs for species verification
  • Activity records (fry sharing, articles)

Admin UI

  • Date range picker (default: last quarter)
  • Preview table of data
  • Export buttons: CSV, ZIP (with photos)
  • Summary statistics

Export Format

CSV columns:

  • Member name, email
  • Species scientific name, common name
  • Registration date, last confirmed date
  • Fry shares (count internal, count external)
  • Articles (count)

Acceptance Criteria

  • Admin can generate registration report for date range
  • Report includes all required CARES fields
  • Photos can be exported in batch (ZIP)
  • CSV export works correctly
  • Preview shows data before export

Activity

  1. added
    enhancementNew feature or request
    admin-toolsAdmin interface and management tools
    on Jan 21, 2026
  2. jra3 commented on Jan 21, 2026

    @jra3
    OwnerAuthor

    Admin UI Design

    Admin Page Location

    New section in Admin menu: "CARES Reports"

    Menu item appears after existing admin options.

    Page Layout

    ┌─────────────────────────────────────────────────────────┐
    │ CARES Liaison Report                                    │
    ├─────────────────────────────────────────────────────────┤
    │ Date Range: [Jan 1, 2025 ▼] to [Mar 31, 2025 ▼]        │
    │                                                         │
    │ ┌─────────────────────────────────────────────────────┐ │
    │ │ Summary                                             │ │
    │ │ Active Registrations: 47                            │ │
    │ │ Unique Members: 12                                  │ │
    │ │ Fry Shares (Internal): 23  (External): 8            │ │
    │ │ Articles Submitted: 5                               │ │
    │ └─────────────────────────────────────────────────────┘ │
    │                                                         │
    │ [Export CSV] [Export Photos (ZIP)]                      │
    ├─────────────────────────────────────────────────────────┤
    │ Preview                                                 │
    │ ┌─────────────────────────────────────────────────────┐ │
    │ │ Member    │ Species       │ Registered │ Seals     │ │
    │ │───────────│───────────────│────────────│───────────│ │
    │ │ John D.   │ A. cacatuoides│ 2024-03-15 │ 🟡🔵     │ │
    │ │ Jane S.   │ P. taeniatus  │ 2024-06-01 │ 🟡🟢🔴   │ │
    │ │ ...       │ ...           │ ...        │ ...       │ │
    │ └─────────────────────────────────────────────────────┘ │
    │ Showing 10 of 47  [< Prev] [Next >]                     │
    └─────────────────────────────────────────────────────────┘
    

    Date Range Picker

    • Two dropdown selects for start/end dates
    • Presets: "Last Quarter", "Year to Date", "Last Year"
    • Default: Current quarter

    Export Flow

    CSV Export:

    • Immediate download (small dataset, no background job needed)
    • Filename: cares-report-{start}-{end}.csv
    • Columns: Member Name, Email, Species Scientific, Species Common, Registration Date, Last Confirmed, Gold, Green, Blue, Red, Longevity Years

    Photo Export (ZIP):

    • For larger exports (>50 photos), show progress indicator
    • Filename: cares-photos-{start}-{end}.zip
    • ZIP structure:
      cares-photos-2025-Q1/
        member-lastname-firstname/
          species-scientific-name.jpg
      

    Preview Table Columns

    1. Member (display name)
    2. Species (scientific name)
    3. Registered (date)
    4. Seals (emoji badges)
    5. Actions: [View Member] link
  3. added a commit that references this issue on Feb 22, 2026
  4. added
    priority:mediumMedium priority - important but not urgent
    needs-triageMaintainer needs to evaluate this issue
    on Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    admin-toolsAdmin interface and management toolsenhancementNew feature or requestneeds-triageMaintainer needs to evaluate this issuepriority:mediumMedium priority - important but not urgent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0