Skip to content

Conversation

@daniel-lerch
Copy link
Owner

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.

@daniel-lerch daniel-lerch requested a review from Copilot December 5, 2025 16:39
@daniel-lerch daniel-lerch self-assigned this Dec 5, 2025
@daniel-lerch daniel-lerch added enhancement New feature or request breaking change Changes that are not backwards compatible labels Dec 5, 2025
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 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.

@daniel-lerch daniel-lerch merged commit 198b44c into master Dec 6, 2025
3 checks passed
@daniel-lerch daniel-lerch deleted the churchquery branch December 6, 2025 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking change Changes that are not backwards compatible enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants