ToDo List¶
ToDo¶
Feature ideas¶
extensive database statistics
mechanism to remove all correspondents without emails
download for main logfiles
progressbar for actions
notes field for models
tagging system with taggit
autotagging
show pwd button
refine fetchererrors into errors for auth, connection, etc.
add gmail client support
create mailaccount from file import
manually adding mailboxes
To refactor¶
safeimap and pop classes
rework test:
tests more implementation agnostic
use more of the unittest api
streamline serializer and form tests
emailcorrespondent creation for better integration of mailinglist
split up long functions that are marked as too complex by ruff
make all filepaths pathlib.Paths, enable ruff PTH
use enums for typing and to reduce properties on mailbox
To test¶
storagebackend for colliding file/dir
test failing single message fetch (imap, pop, jmap)
add test email with references
js stuff
To implement¶
migration to django6.0
squashmigrations
further optimize queryset lookups
general share api endpoint
Work in progress¶
tests
documentation
type annotations
To fix¶
filteroptions for existing db entries leak other user data
ci:
djlint has no files to lint
Inline TODOs¶
Todo
Validation and parsing of queryparams can probably be done more concisely with a serializer.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/api/v1/views/EmailViewSet.py:docstring of api.v1.views.EmailViewSet.EmailViewSet.download_batch, line 3.)
Todo
Validation and parsing of queryparams can probably be done more concisely with a serializer.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/api/v1/views/MailboxViewSet.py:docstring of api.v1.views.MailboxViewSet.MailboxViewSet.download_batch, line 3.)
Todo
Validation and parsing of queryparams can probably be done more concisely with a serializer.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/api/v1/views/EmailViewSet.py:docstring of api.v1.views.EmailViewSet.EmailViewSet.download_batch, line 3.)
Todo
Validation and parsing of queryparams can probably be done more concisely with a serializer.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/api/v1/views/MailboxViewSet.py:docstring of api.v1.views.MailboxViewSet.MailboxViewSet.download_batch, line 3.)
Todo
Rewrite this into a generator.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/core/utils/fetchers/ExchangeFetcher.py:docstring of core.utils.fetchers.ExchangeFetcher.ExchangeFetcher.fetch_emails, line 3.)
Todo
Rewrite this into a generator.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/core/utils/fetchers/ExchangeFetcher.py:docstring of core.utils.fetchers.ExchangeFetcher.ExchangeFetcher.fetch_mailboxes, line 3.)
Todo
Rewrite this into a generator.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/core/utils/fetchers/IMAP4Fetcher.py:docstring of core.utils.fetchers.IMAP4Fetcher.IMAP4Fetcher.fetch_mailboxes, line 3.)
Todo
Rewrite this into a generator.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/core/utils/fetchers/ExchangeFetcher.py:docstring of core.utils.fetchers.ExchangeFetcher.ExchangeFetcher.fetch_emails, line 3.)
Todo
Rewrite this into a generator.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/core/utils/fetchers/ExchangeFetcher.py:docstring of core.utils.fetchers.ExchangeFetcher.ExchangeFetcher.fetch_mailboxes, line 3.)
Todo
Rewrite this into a generator.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/core/utils/fetchers/IMAP4Fetcher.py:docstring of core.utils.fetchers.IMAP4Fetcher.IMAP4Fetcher.fetch_mailboxes, line 3.)
Todo
Safely! extract error message from response for logging and exception.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/core/utils/fetchers/SafeIMAPMixin.py:docstring of core.utils.fetchers.SafeIMAPMixin.SafeIMAPMixin.check_response, line 5.)
Todo
Find a better way to disable the exception and getting rid of the typing mess.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/core/utils/fetchers/SafeIMAPMixin.py:docstring of core.utils.fetchers.SafeIMAPMixin.SafeIMAPMixin.safe, line 9.)
Todo
Safely! extract error message from response for logging and exception.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/core/utils/fetchers/SafePOPMixin.py:docstring of core.utils.fetchers.SafePOPMixin.SafePOPMixin.check_response, line 5.)
Todo
Find a better way to disable the exception and getting rid of the typing mess.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/eonvelope/checkouts/latest/src/core/utils/fetchers/SafePOPMixin.py:docstring of core.utils.fetchers.SafePOPMixin.SafePOPMixin.safe, line 9.)