Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. ❌ Your project check has failed because the head coverage (7%) is below the target coverage (70%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## develop #1812 +/- ##
=======================================
- Coverage 7% 7% -0%
=======================================
Files 38 38
Lines 1886 1888 +2
=======================================
Hits 125 125
- Misses 1761 1763 +2 🚀 New features to boost your workflow:
|
pedroafmonteiro
left a comment
There was a problem hiding this comment.
Thanks for this! Consider some important changes:
…ction logic from the Sheet model.
…edicated fetcher and Riverpod provider.
There was a problem hiding this comment.
Pull request overview
This PR expands the professor info modal to show additional details (email, rooms) and adds an in-app professor schedule page, improving parity with student info/schedule flows.
Changes:
- Added
ProfessorExtraInfofetching/scraping to display professor email and rooms in the modal (with shimmer/placeholder states). - Introduced a dedicated professor schedule page + route (
horario_docente) and navigation from the modal. - Extended the
Professormodel withinstitutionalEmailandroomsand attempted merging across occurrences.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/uni_app/lib/view/professor/professor_schedule_page.dart | Adds professor schedule page + provider to fetch lectures for a professor. |
| packages/uni_app/lib/view/course_unit_info/widgets/shimmer_info_row.dart | New shimmer row widget used while professor extra info loads. |
| packages/uni_app/lib/view/course_unit_info/widgets/modal_professor_info.dart | Displays email/room rows and navigates to in-app professor schedule route. |
| packages/uni_app/lib/utils/navigation_items.dart | Registers horario_docente navigation route constant. |
| packages/uni_app/lib/model/providers/riverpod/professor_info_provider.dart | Adds Riverpod provider to fetch/scrape professor extra info. |
| packages/uni_app/lib/model/entities/course_units/sheet.dart | Extends Professor entity with email/rooms fields and adjusts fromJson. |
| packages/uni_app/lib/main.dart | Registers the professor schedule route and argument casting. |
| packages/uni_app/lib/controller/parsers/parser_course_unit_info.dart | Uses new Professor.fromJson signature and merges class occurrences. |
| packages/uni_app/lib/controller/fetchers/professor_info_fetcher.dart | Implements SIGARRA profile scraping for email and rooms. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
pedroafmonteiro
left a comment
There was a problem hiding this comment.
Thanks for the changes. Consider this suggestions:
Pull request was converted to draft
pedroafmonteiro
left a comment
There was a problem hiding this comment.
Just a few more changes! Thanks :)
… AsyncNotifier.family complexity
Simplifies the code by using Dart 3.10+ record syntax (professor, lectiveYear?) instead of a custom params class. Records automatically handle equality and hashing.
Use the same .toSet().toList() deduplication approach as lectureProvider to reduce code duplication. This relies on Lecture's equality implementation.
Replace hardcoded Colors.grey[300]/[100] with Theme.of(context).disabledColor to properly support both light and dark themes. Aligns with other shimmer widgets in the codebase.
- Use onSecondary color instead of primary for better contrast against secondary background in both light and dark modes - Apply consistently to email, schedule, and shimmer icons - Fixes low visibility of trailing caret icons in dark mode
Closes #1794
What changed
Professor model (
sheet.dart,parser_course_unit_info.dart)institutionalEmailandroomsfields toProfessorProfessor.fromJsonnow extracts email and room data directly from the API responseProfessor info modal (
modal_professor_info.dart)@obfuscation (assembled via JavaScriptonclickhandlers)—if unavailable after fetchIn-app professor schedule (
schedule_page.dart,navigation_items.dart,main.dart)professorLecturesProvider(autoDispose family) to fetch a professor's scheduleSchedulePagenow accepts an optionalprofessorCodeto display a professor's schedule using the same layout as the student schedule (shimmer, empty state, week view)ProfessorSchedulePageViewas a secondary page with a back button and professor name as titlehorario_docenteroute inNavigationItemandmain.dartHow to test
—Review checklist
View Changes
email,room,schedulekeys)Performance
_buildProfessorSchedule/_buildStudentScheduleinschedule_page.dartare private helper methods returning widgets — consider extracting to dedicated widget classes)