Development of an internal social media platform with personalised dashboards for students
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

settings.py 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import warnings
  2. from django.conf import settings
  3. from django.core.cache.backends.base import InvalidCacheBackendError
  4. from .compat import import_attribute, get_cache
  5. def get_backend(alias='default'):
  6. return get_available_backends()[alias]
  7. def get_available_backends():
  8. """ Returns a dictionary of defined backend classes. For example:
  9. {
  10. 'default': 'django.core.mail.backends.smtp.EmailBackend',
  11. 'locmem': 'django.core.mail.backends.locmem.EmailBackend',
  12. }
  13. """
  14. backends = get_config().get('BACKENDS', {})
  15. if backends:
  16. return backends
  17. # Try to get backend settings from old style
  18. # POST_OFFICE = {
  19. # 'EMAIL_BACKEND': 'mybackend'
  20. # }
  21. backend = get_config().get('EMAIL_BACKEND')
  22. if backend:
  23. warnings.warn('Please use the new POST_OFFICE["BACKENDS"] settings',
  24. DeprecationWarning)
  25. backends['default'] = backend
  26. return backends
  27. # Fall back to Django's EMAIL_BACKEND definition
  28. backends['default'] = getattr(
  29. settings, 'EMAIL_BACKEND',
  30. 'django.core.mail.backends.smtp.EmailBackend')
  31. # If EMAIL_BACKEND is set to use PostOfficeBackend
  32. # and POST_OFFICE_BACKEND is not set, fall back to SMTP
  33. if 'post_office.EmailBackend' in backends['default']:
  34. backends['default'] = 'django.core.mail.backends.smtp.EmailBackend'
  35. return backends
  36. def get_cache_backend():
  37. if hasattr(settings, 'CACHES'):
  38. if "post_office" in settings.CACHES:
  39. return get_cache("post_office")
  40. else:
  41. # Sometimes this raises InvalidCacheBackendError, which is ok too
  42. try:
  43. return get_cache("default")
  44. except InvalidCacheBackendError:
  45. pass
  46. return None
  47. def get_config():
  48. """
  49. Returns Post Office's configuration in dictionary format. e.g:
  50. POST_OFFICE = {
  51. 'BATCH_SIZE': 1000
  52. }
  53. """
  54. return getattr(settings, 'POST_OFFICE', {})
  55. def get_batch_size():
  56. return get_config().get('BATCH_SIZE', 100)
  57. def get_threads_per_process():
  58. return get_config().get('THREADS_PER_PROCESS', 5)
  59. def get_default_priority():
  60. return get_config().get('DEFAULT_PRIORITY', 'medium')
  61. def get_log_level():
  62. return get_config().get('LOG_LEVEL', 2)
  63. def get_sending_order():
  64. return get_config().get('SENDING_ORDER', ['-priority'])
  65. CONTEXT_FIELD_CLASS = get_config().get('CONTEXT_FIELD_CLASS',
  66. 'jsonfield.JSONField')
  67. context_field_class = import_attribute(CONTEXT_FIELD_CLASS)