Skip to content

Comments

VPR-67 Effort Records notes#110

Merged
rlorenzo merged 4 commits intomainfrom
VPR-67-r-course-notes
Feb 20, 2026
Merged

VPR-67 Effort Records notes#110
rlorenzo merged 4 commits intomainfrom
VPR-67-r-course-notes

Conversation

@rlorenzo
Copy link
Contributor

@rlorenzo rlorenzo commented Feb 6, 2026

No description provided.

Copilot AI review requested due to automatic review settings February 6, 2026 17:31
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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) NULL to effort.Records (schema docs, DB create script, and post-deployment task) and map it via EF (EffortRecord + EffortDbContext).
  • Plumb Notes through 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.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@rlorenzo rlorenzo requested a review from bsedwards February 10, 2026 23:04
@rlorenzo
Copy link
Contributor Author

@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.

Copy link
Collaborator

@bsedwards bsedwards left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you remove the notes field when entering effort for courses other than the special resident course? I think it will just cause confusion.

@rlorenzo
Copy link
Contributor Author

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.

bsedwards
bsedwards previously approved these changes Feb 20, 2026
- 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
@rlorenzo rlorenzo force-pushed the VPR-67-r-course-notes branch from fc72cbd to 3605da6 Compare February 20, 2026 18:33
@rlorenzo rlorenzo merged commit 3780e6b into main Feb 20, 2026
2 checks passed
@rlorenzo rlorenzo deleted the VPR-67-r-course-notes branch February 20, 2026 18:34
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.

2 participants