From 44de86f1ca98433c20df19fbc3a5a3992f3714ea Mon Sep 17 00:00:00 2001 From: Scot Hacker Date: Thu, 11 Apr 2019 23:42:11 -0700 Subject: [PATCH] Use hash/lookup in defaults.py --- todo/defaults.py | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/todo/defaults.py b/todo/defaults.py index 74dad19..1283e07 100644 --- a/todo/defaults.py +++ b/todo/defaults.py @@ -1,14 +1,26 @@ # If a documented django-todo option is NOT configured in settings, use these values. from django.conf import settings -TODO_ALLOW_FILE_ATTACHMENTS = ( - settings.TODO_ALLOW_FILE_ATTACHMENTS - if hasattr(settings, "TODO_ALLOW_FILE_ATTACHMENTS") - else True -) -TODO_LIMIT_FILE_ATTACHMENTS = ( - settings.TODO_LIMIT_FILE_ATTACHMENTS - if hasattr(settings, "TODO_LIMIT_FILE_ATTACHMENTS") - else [".jpg", ".gif", ".png", ".csv", ".pdf", ".zip"] -) +hash = { + "TODO_ALLOW_FILE_ATTACHMENTS": True, + "TODO_LIMIT_FILE_ATTACHMENTS": [".jpg", ".gif", ".png", ".csv", ".pdf", ".zip"], + "TODO_MAXIMUM_ATTACHMENT_SIZE": 5000000, + "TODO_STAFF_ONLY": True, + "TODO_DEFAULT_ASSIGNEE": None, + "TODO_PUBLIC_SUBMIT_REDIRECT": "/", + "TODO_COMMENT_CLASSES": [], +} + +# These intentionally have no defaults (user MUST set a value): +# TODO_DEFAULT_LIST_SLUG +# TODO_MAIL_BACKENDS +# TODO_MAIL_TRACKERS + + +def defaults(key: str): + """Try to get a setting from project settings. + If empty or doesn't exist, fall back to a value from defaults hash.""" + + _ret = getattr(settings, key, False) or hash.get(key) + return _ret