From 2824cde5e9ababb58d0d13669abdeb8729e6703a Mon Sep 17 00:00:00 2001 From: Ilya Tleukenov Date: Fri, 31 Jan 2020 13:31:04 +0700 Subject: [PATCH] add DJANGO_MAILBOX_MESSAGE_UPLOAD_TO to settings, change utils.get_attachment_save_path to utils.get_save_path, change eml upload_to in model --- django_mailbox/models.py | 4 ++-- django_mailbox/utils.py | 12 +++++++++--- docs/topics/appendix/settings.rst | 6 ++++++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/django_mailbox/models.py b/django_mailbox/models.py index 4e5b111..379b779 100644 --- a/django_mailbox/models.py +++ b/django_mailbox/models.py @@ -512,7 +512,7 @@ class Message(models.Model): eml = models.FileField( _('Raw message contents'), null=True, - upload_to="messages", + upload_to=utils.get_save_path(setting='message_upload_to'), help_text=_('Original full content of message') ) objects = models.Manager() @@ -752,7 +752,7 @@ class MessageAttachment(models.Model): document = models.FileField( _('Document'), - upload_to=utils.get_attachment_save_path, + upload_to=utils.get_save_path(setting='attachment_upload_to'), ) def delete(self, *args, **kwargs): diff --git a/django_mailbox/utils.py b/django_mailbox/utils.py index 6603612..82a52d2 100644 --- a/django_mailbox/utils.py +++ b/django_mailbox/utils.py @@ -66,7 +66,13 @@ def get_settings(): settings, 'DJANGO_MAILBOX_default_charset', 'iso8859-1', + ), + 'message_upload_to': getattr( + settings, + 'DJANGO_MAILBOX_MESSAGE_UPLOAD_TO', + 'messages/' ) + } @@ -138,14 +144,14 @@ def get_body_from_message(message, maintype, subtype): return body -def get_attachment_save_path(instance, filename): +def get_save_path(instance, filename, setting): settings = get_settings() - path = settings['attachment_upload_to'] + path = settings[setting] if '%' in path: path = datetime.datetime.utcnow().strftime(path) return os.path.join( path, filename, - ) + ) \ No newline at end of file diff --git a/docs/topics/appendix/settings.rst b/docs/topics/appendix/settings.rst index 4146482..c6950e8 100644 --- a/docs/topics/appendix/settings.rst +++ b/docs/topics/appendix/settings.rst @@ -80,3 +80,9 @@ Settings * Default: ``False`` * Type: ``boolean`` * Controls whether or not we store original messages in ``eml`` field + +* ``DJANGO_MAILBOX_MESSAGE_UPLOAD_TO`` + + * Default: ``messages/`` + * Type: ``string`` + * Original message will be saved to this location.