ida-arbeitszeit / arbeitszeitapp

A webapp for labour-time calculation.
https://arbeitszeitapp.readthedocs.io
GNU Affero General Public License v3.0
36 stars 4 forks source link

Implement plugin system for EmailService. #1014

Closed seppeljordan closed 5 months ago

seppeljordan commented 5 months ago

This commit introduces a plugin system for the EmailService in the arbeitszeitapp. The new system empowers administrators to customize email delivery methods according to their requirements. Notably, this enhancement allows for independent testing of email functionality, facilitating the eventual removal of the dependency on flask_mail from our codebase.

Plan-ID: d21d8863-1179-4b7c-9d17-1701a7f78e76 (2x)

sloschert commented 5 months ago

Thanks for working on this. A few questions:

seppeljordan commented 5 months ago

Thanks for working on this. A few questions:

* Out of curiosity: What has still to be done before we can remove flask_mail?

There are already 2 draft PRs that remove flask_mail altogether.

* There is a section in our Readme, called "E-mail Configuration". Can this get deleted, because we have the development guide, or is it still necessary in your opinion?

The relevant section in the README would still be accurate after merging this PR. It will be deleted as soon as it is not relevant anymore. I think that one of the followup PRs would delete it.

* I noticed that in the "development_guide.rst", there is no description on how to implement an "email plugin". It only says "This option must be a python module path to the email plugin to be used." On purpose?

No. Not on purpose. Someone could write some documentation if they wanted.