Skip to content

Merge Staging into Main#188

Merged
rsmoke merged 26 commits intomainfrom
staging
Feb 2, 2026
Merged

Merge Staging into Main#188
rsmoke merged 26 commits intomainfrom
staging

Conversation

@rsmoke
Copy link
Copy Markdown
Member

@rsmoke rsmoke commented Feb 2, 2026

Pull Request

Description

Related Issues

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules
  • I have checked my code and corrected any misspellings

dependabot Bot and others added 24 commits January 22, 2026 02:54
Bumps [puma](https://github.com/puma/puma) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/puma/puma/releases)
- [Changelog](https://github.com/puma/puma/blob/main/History.md)
- [Commits](puma/puma@v7.1.0...v7.2.0)

---
updated-dependencies:
- dependency-name: puma
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [turbo-rails](https://github.com/hotwired/turbo-rails) from 2.0.21 to 2.0.22.
- [Release notes](https://github.com/hotwired/turbo-rails/releases)
- [Commits](hotwired/turbo-rails@v2.0.21...v2.0.22)

---
updated-dependencies:
- dependency-name: turbo-rails
  dependency-version: 2.0.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
….0.22

Bump turbo-rails from 2.0.21 to 2.0.22
- Changed deployment instructions to specify using Hatchbox on DigitalOcean.
- Noted that Docker/Kamal configuration is present but currently unused.
- Updated the email delivery method for new student enrollments to use `deliver_now` in development/test environments and `deliver_later` in production.
- This change ensures that welcome emails are immediately viewable in development/test while maintaining asynchronous delivery in production for better performance.
- Updated .gitignore to include logs from cursor debug sessions, ensuring these files are not tracked by Git.
- This change helps maintain a cleaner repository by excluding unnecessary log files from version control.
- Updated the application layout to include a flexbox structure for better responsiveness.
- Adjusted padding and margin for various components in the student views to enhance spacing and visual hierarchy.
- Standardized button sizes and text styles across different sections for a cohesive look.
- Ensured footer positioning is consistent with the overall layout design.
- Reduced bottom margins and padding in various student-related views to enhance visual hierarchy and spacing.
- Adjusted the layout in program management, navigation, appointments, and dashboard sections for a more cohesive appearance.
- Added a new `.btn-responsive` class in the Tailwind CSS file to standardize button sizes and styles for better responsiveness on mobile devices.
- Updated button classes in multiple views, including admin page contents, reports, appointments, and departments, to utilize the new responsive button styles.
- Ensured consistent button appearance and behavior across the application, enhancing the overall user experience.
- Updated the VIP retrieval logic in the Student Dashboard Controller to use the new `ordered_by_ranking` scope for better ranking-based display.
- Added the `ordered_by_ranking` scope in the VIP model to sort VIPs by ranking and name, enhancing the organization of displayed VIPs on the dashboard.
- Added sorting capabilities to the VIPs index view, allowing users to sort by ranking, name, title, profile URL, and display status on the student dashboard.
- Introduced helper method `sortable_header` to generate sortable table headers with appropriate indicators for current sort direction.
- Updated the controller to handle sorting logic and maintain the selected sort column and direction across requests.
- Introduced a new instance variable `@existing_page_contents` in the `new` action to gather existing page content paths, area names, and their corresponding edit URLs.
- This enhancement allows for easier management and navigation of existing page contents within the admin interface.
- Introduced a new Stimulus controller `page_content_form_controller.js` to manage dynamic updates of area options based on selected page paths in the admin page content form.
- Enhanced the `PageContent` model with constants for known page paths and areas, along with methods to retrieve area options for JavaScript.
- Updated the admin page content form view to utilize the new controller and display existing content indicators, improving user experience in managing page content.
- Introduced a new `has_many :vips` association in the `CalendarEvent` model through `calendar_event_faculties`, allowing for better management of VIP participants.
- Updated the corresponding RSpec tests to validate the new association and added tests for `vip_ids` to facilitate form handling for participating faculty.
- Enhanced the test suite to ensure proper functionality of VIP-related features in calendar events.
- Introduced a new Stimulus controller `program_datetime_controller.js` to manage date and time selection for calendar events, ensuring users can only select program-held dates.
- Updated the `edit` and `new` views for `calendar_events` to utilize the new controller, replacing datetime fields with a dropdown for date selection and an input for time, enhancing user experience and data integrity.
- Implemented synchronization of selected date and time into a hidden field for form submission, improving the handling of datetime values in the application.
- Implemented a new export feature for students, allowing super admins to download student data as a CSV file, including fields such as Email, Last Name, First Name, UMID, and Enrolled date.
- Updated the students index view to include a "Download CSV" button for easy access to the export functionality.
- Enhanced the sorting capabilities for the students list, allowing users to sort by various columns, improving data management and usability.
- Added corresponding tests to ensure the export functionality works as intended and handles both authenticated and unauthenticated access appropriately.
- Refined the student export functionality to include additional fields for better data representation in the CSV file.
- Improved the user interface of the students index view by adding tooltips and enhancing the "Download CSV" button for better accessibility.
- Updated sorting options to allow for more intuitive data management, ensuring users can easily navigate through student records.
Bumps [turbo-rails](https://github.com/hotwired/turbo-rails) from 2.0.22 to 2.0.23.
- [Release notes](https://github.com/hotwired/turbo-rails/releases)
- [Commits](hotwired/turbo-rails@v2.0.22...v2.0.23)

---
updated-dependencies:
- dependency-name: turbo-rails
  dependency-version: 2.0.23
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [brakeman](https://github.com/presidentbeef/brakeman) from 7.1.2 to 8.0.1.
- [Release notes](https://github.com/presidentbeef/brakeman/releases)
- [Changelog](https://github.com/presidentbeef/brakeman/blob/main/CHANGES.md)
- [Commits](presidentbeef/brakeman@v7.1.2...v8.0.1)

---
updated-dependencies:
- dependency-name: brakeman
  dependency-version: 8.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
….0.23

Bump turbo-rails from 2.0.22 to 2.0.23
@rsmoke rsmoke requested a review from Copilot February 2, 2026 14:42
Copy link
Copy Markdown

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 merges staging into main, consolidating numerous UI/UX improvements, feature additions, and bug fixes. Key enhancements include mobile-responsive button styling, sortable student and VIP lists with CSV export, improved page content management, and better email handling in development.

Changes:

  • Added mobile-responsive button styling (.btn-responsive class) and applied it across all views
  • Implemented sortable columns for students and VIPs with CSV export functionality
  • Enhanced page content management with dropdown selectors and existing content detection
  • Improved calendar event date/time inputs with program-specific date constraints

Reviewed changes

Copilot reviewed 84 out of 86 changed files in this pull request and generated no comments.

Show a summary per file
File Description
app/assets/tailwind/application.css Added .btn-responsive CSS class for mobile-optimized button padding/sizing
app/views/**/*.html.erb (50+ files) Replaced hardcoded button padding with btn-responsive class
app/controllers/students_controller.rb Added sorting and CSV export functionality
app/controllers/vips_controller.rb Added column sorting support
app/services/csv_export_service.rb Added export_program_students method
app/helpers/students_helper.rb Added sort_link helper for sortable column headers
app/helpers/vips_helper.rb Added sortable_header helper
config/routes.rb Added students export route
app/views/shared/_page_instructions.html.erb New partial for super-admin editable page instructions
app/models/page_content.rb Added known page paths and area options for content management
app/controllers/admin/page_contents_controller.rb Added existing content detection for new page content form
app/javascript/controllers/page_content_form_controller.js New Stimulus controller for dynamic area selection
app/javascript/controllers/program_datetime_controller.js New controller for program-restricted date/time inputs
app/views/calendar_events/new.html.erb Added program date-restricted datetime inputs
app/views/calendar_events/edit.html.erb Added program date-restricted datetime inputs with existing date preservation
app/models/calendar_event.rb Added has_many :vips association
app/models/vip.rb Added ordered_by_ranking scope
app/services/bulk_student_upload_service.rb Changed welcome email delivery to deliver_now in non-production
app/views/layouts/application.html.erb Added flexbox layout for sticky footer
app/views/shared/_footer.html.erb Changed from fixed to flex-based footer positioning
app/controllers/application_controller.rb Disabled browser version checking in development
README.md Updated deployment information

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Adjusted whitespace in comments and array definitions in `page_content.rb` for improved readability.
- Standardized spacing in RSpec tests for `calendar_event_spec.rb` to enhance clarity.
- Modified index definition in migration file `create_solid_cache_entries.rb` to ensure consistent spacing in array syntax.
- Improved the sorting mechanism in the `sorted_students` method by validating the sort direction and column against predefined constants.
- Defaulted to sorting by email address if an invalid column is provided, enhancing robustness and user experience.
@rsmoke rsmoke merged commit 394cc15 into main Feb 2, 2026
10 checks passed
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