Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds an optional Notes field to Effort Records, wiring it through the database schema, EF entity/model mapping, backend services/DTOs, tests, and the Vue UI (including refactors to shared components/composables).
Changes:
- Add
Notes varchar(500) NULLtoeffort.Records(schema docs, DB create script, and post-deployment task) and map it via EF (EffortRecord+EffortDbContext). - Plumb
Notesthrough backend request/response DTOs and services (create/update, audit logging, instructor record queries) with trimming behavior. - Update Vue UI/types to support viewing/editing notes, plus page refactors into shared components and a shared record-management composable.
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| web/Areas/Effort/docs/Effort_Database_Schema.sql | Documents new Records.Notes column in schema reference. |
| web/Areas/Effort/Scripts/CreateEffortDatabase.cs | Ensures freshly created DB includes Records.Notes. |
| web/Areas/Effort/Scripts/EffortPostDeployment.cs | Adds Task 15 to add Records.Notes to existing DBs. |
| web/Areas/Effort/Scripts/RunPostDeployment.bat | Updates task list/description to include Notes task. |
| web/Areas/Effort/Models/Entities/EffortRecord.cs | Adds Notes to EF entity. |
| web/Areas/Effort/EffortDbContext.cs | Maps Notes column with max length 500. |
| web/Areas/Effort/Models/DTOs/Responses/InstructorEffortRecordDto.cs | Adds Notes to API response DTO. |
| web/Areas/Effort/Models/DTOs/Requests/CreateEffortRecordRequest.cs | Adds Notes to create request (length-limited). |
| web/Areas/Effort/Models/DTOs/Requests/UpdateEffortRecordRequest.cs | Adds Notes to update request (length-limited). |
| web/Areas/Effort/Services/EffortRecordService.cs | Persists trimmed notes on create/update; includes notes in DTO mapping/audit payloads. |
| web/Areas/Effort/Services/InstructorService.cs | Includes notes when projecting instructor effort records. |
| test/Effort/EffortRecordServiceTests.cs | Adds/updates tests covering notes round-trip and trimming. |
| VueApp/src/Effort/types/instructor-types.ts | Updates TS types to include notes in DTOs/requests. |
| VueApp/src/Effort/validation.ts | Adds notes validation rules for UI inputs. |
| VueApp/src/Effort/components/EffortRecordAddDialog.vue | Adds notes input + sends notes in create request. |
| VueApp/src/Effort/components/EffortRecordEditDialog.vue | Adds notes input + sends notes in update request. |
| VueApp/src/Effort/components/EffortRecordsDisplay.vue | Displays notes in card-based record display. |
| VueApp/src/Effort/components/EffortRecordsTable.vue | Displays notes as a sub-row in table view + paired-row hover styling. |
| VueApp/src/Effort/pages/MyEffort.vue | Refactors page to shared components/composable; uses unified date format; uses self-mode course import. |
| VueApp/src/Effort/pages/InstructorDetail.vue | Refactors page to shared components/composable; uses unified date format. |
| VueApp/src/Effort/composables/use-effort-record-management.ts | New shared composable for dialog state + create/update/delete handlers + date formatting helper. |
| VueApp/src/Effort/components/ZeroEffortBanner.vue | New shared banner component for zero-effort warnings. |
| VueApp/src/Effort/components/EffortActionButtons.vue | New shared action buttons component (Import/Add). |
| VueApp/src/Effort/components/CrossListedCoursesSection.vue | New shared cross-listed/sectioned courses component. |
| VueApp/src/Effort/components/CourseImportDialog.vue | Adds mode prop to support self vs staff behavior; consolidates prior self-only dialog logic. |
| VueApp/src/Effort/components/CourseImportForSelfDialog.vue | Removed in favor of CourseImportDialog with mode="self". |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 38 out of 38 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@bsedwards Ready for review. In addition to adding the new Notes field, I made all form fields consistent in how they show errors and how they are displayed. |
bsedwards
left a comment
There was a problem hiding this comment.
Can you remove the notes field when entering effort for courses other than the special resident course? I think it will just cause confusion.
The note will appear only for the generic R-Course effort records entry form. I left the code to display a note, if one exists, for an effort record in case we want to add support later. |
- Extract shared composable for dialog state, CRUD, and reload - Add EffortActionButtons, ZeroEffortBanner, CrossListedCoursesSection - Unify CourseImportDialog with mode prop, delete self-service copy - Fix button order on MyEffort (Import first, Add second) - Eliminate post-mutation loading flash on MyEffort
- Add Notes column (varchar 500) with migration and post-deployment - Support notes in create/update APIs with whitespace normalization - Display notes as sub-rows in table and inline in card views - Add reactive truncation warning and unit tests
- Replace manual error state with Quasar QForm rules across all effort dialogs; shared effort-forms.css for compact error chips - Rename "No Department" to "Unknown Department" throughout UI - Default missing department to "UNK" with inline warning chip
…t dialog text - Show notes field only for CRN=RESID via new isGenericRCourse classification flag threaded through DTOs and all mapping paths - Remove inaccurate DVM/VET exclusion text from course import dialog
fc72cbd to
3605da6
Compare
No description provided.