Skip to content

Add Notes page with Google Sheet/zip import-export - #164

Merged
artisanphil merged 3 commits into
mainfrom
notes
Sep 17, 2026
Merged

artisanphil merged 3 commits into
mainfrom
notes

Conversation

@artisanphil

@artisanphil artisanphil commented Sep 14, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Adds a new "Notes" step to the language pack wizard, positioned between Games and Export. Users can add free-text notes, view them listed in the order added with a sequential number and created/updated timestamps, edit them inline, and delete them (with confirmation). Notes also round-trip through the existing Google Sheet import/export flow and are included in the zip export.

image

Changes

Notes page (CRUD)

  • notes table migration (languagepackid, text, timestamps)
  • Note model + LanguagePack::notes() relation
  • NotesController (extends BaseItemController) — list (paginated), add, inline bulk edit, and delete
  • notes.blade.php view, following the existing Resources/Games page conventions, including a delete-confirmation step before removal
  • Routes for GET/POST/PATCH/DELETE on languagepack/notes/{languagePack}
  • Wizard step added to langpacksteps.blade.php, wired into ExportController's completedSteps, and games.blade.php's "Next" link now points to Notes

Google Sheet & zip export/import

  • ExportSheetService::notesSheet() writes real data (#, Note, CreatedAt, UpdatedAt) to the "notes" tab instead of a static placeholder
  • ImportSheetService::saveNotes() imports the notes tab back into the notes table, defaulting created_at/updated_at to the current datetime when sheet values are empty
  • GenerateZipExportService::generateNotesFile() writes aa_notes.txt (tab-delimited, same format as other aa_*.txt files) into the zip export

Tests

  • NotesControllerTest — list ordering, add, edit, delete, cancel delete, and the checkbox → confirmation flow
  • ExportServiceTest — aa_notes.txt content and timestamp defaults
  • ImportSheetServiceTest — imported notes keep provided timestamps and default missing ones

Testing

All new and existing tests pass:

php artisan test --filter="NotesControllerTest|ExportServiceTest|ImportSheetServiceTest"

@artisanphil
artisanphil merged commit 2147799 into main Sep 17, 2026
@artisanphil
artisanphil deleted the notes branch September 17, 2026 07:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant