-
Notifications
You must be signed in to change notification settings - Fork 0
Use ChurchQuery instead of proprietary filters #85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this 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 represents a major architectural refactoring of Mailist, transitioning from a proprietary filter system with ChurchTools sync to using ChurchQuery for dynamic person filtering. The changes remove approximately half of the backend code and introduce a modernized UI with PrimeVue components.
Key Changes
- Replaced PersonFilters with ChurchQuery-based filtering for distribution lists
- Removed ChurchTools synchronization service and related entity caching
- Added new Vue UI components for filter editing (PersonFilterEditor, AdvancedFilterEditor)
- Migrated from custom authentication to JWT-based authentication
Reviewed changes
Copilot reviewed 76 out of 78 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| webapp/src/services/churchquery.ts | New service implementing ChurchQuery filter parsing and conversion (contains critical bugs with zod usage) |
| webapp/src/views/*.vue | Updated views with PrimeVue components and new filter editing UI |
| server/Mailist/Controllers/DistributionListController.cs | Rewritten to use ChurchQuery API instead of database queries |
| server/Mailist/EmailRelay/*.cs | Updated to use ChurchQuery for recipient resolution |
| server/Mailist/Migrations/*.cs | Database migration removing PersonFilter tables and adding RecipientsQuery column |
| server/Mailist/ChurchTools/* | Removed sync service and entity classes |
| docs/*.md | Updated documentation to reflect JWT authentication and removed OAuth references |
Files not reviewed (2)
- server/Mailist/Migrations/20251205161928_ChurchQuery.Designer.cs: Language not supported
- webapp/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This pull request is a rewrite of large parts of Mailist. It removes half of the backend code including ChurchTools sync and PersonFilters. Instead, ChurchQuery is now being used. But this pull request also includes an all-new UI to edit filters.