common.py 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. # Django settings for pbp_com project.
  2. import os
  3. import sys
  4. import logging
  5. import warnings
  6. warnings.simplefilter("ignore")
  7. ## Directories
  8. CONF_ROOT = os.path.dirname(os.path.realpath(os.path.dirname(__file__)))
  9. PROJECT_ROOT = os.path.dirname(CONF_ROOT)
  10. SITE_ROOT = os.path.dirname(PROJECT_ROOT)
  11. MEDIA_ROOT = os.path.join(PROJECT_ROOT, "media/")
  12. STATIC_ROOT = PROJECT_ROOT + "/static_collected/"
  13. STATIC_URL = "/static/"
  14. STATICFILES_DIRS = (os.path.join(PROJECT_ROOT, "static/"),)
  15. VIRTUALENV = "/var/lib/virtualenvs/pbp/lib/python2.5/site-packages"
  16. sys.path.append(SITE_ROOT)
  17. DEBUG = True
  18. TEMPLATE_DEBUG = DEBUG
  19. # Django settings for pbp project.
  20. ADMINS = ("Jeremiah Savage", "jeremiahs@pbp.me")
  21. STOREFRONT_HELP_TO = ["subscriptions@pbp.me", "web@pbp.me"]
  22. # change of address email
  23. NOTIFICATIONS_EMAIL = ["subscriptions@pbp.me", "web@pbp.me"]
  24. LANGUAGE_CODE = "en-us"
  25. MANAGERS = ADMINS
  26. USE_I18N = True
  27. APPEND_SLASH = False
  28. SMART_APPEND_SLASH = True
  29. SEND_BROKEN_LINK_EMAILS = False
  30. IGNORABLE_404_STARTS = (
  31. "/vault/loginout.html",
  32. "/calendar/submitanevent.html",
  33. "robots.txt",
  34. )
  35. TIME_ZONE = "America/New_York"
  36. LANGUAGE_CODE = "en-us"
  37. # Our site ID numbers, set to constants for easy reference
  38. PBP = 2
  39. IA = 3
  40. CP = 4
  41. WP = 5
  42. # We're going to try setting this in the manage.py script.
  43. SITE_ID = PBP # pbp.com
  44. # import logging
  45. # LOG_DATE_FORMAT = '%d %b %Y %H:%M:%S'
  46. # LOG_FORMATTER = logging.Formatter('%(asctime)s %(name)-7s: %(levelname)-8s %(message)s',
  47. # datefmt=LOG_DATE_FORMAT)
  48. # CONSOLE_HANDLER = logging.StreamHandler() # defaults to stderr
  49. # CONSOLE_HANDLER.setFormatter(LOG_FORMATTER)
  50. # CONSOLE_HANDLER.setLevel(logging.DEBUG)
  51. LOGGING = {
  52. "version": 1,
  53. "disable_existing_loggers": True,
  54. "formatters": {
  55. "verbose": {
  56. "format": "%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s"
  57. },
  58. "simple": {"format": "%(levelname)s %(message)s"},
  59. },
  60. "handlers": {
  61. "null": {"level": "DEBUG", "class": "django.utils.log.NullHandler",},
  62. "console": {
  63. "level": "DEBUG",
  64. "class": "logging.StreamHandler",
  65. "formatter": "verbose",
  66. },
  67. "log_file": {
  68. "level": "DEBUG",
  69. "class": "logging.handlers.RotatingFileHandler",
  70. "formatter": "verbose",
  71. "filename": "/var/log/uwsgi/pbp_com.log",
  72. "maxBytes": 1024 * 1024 * 25, # 25 MB
  73. "backupCount": 5,
  74. },
  75. "mail_admins": {
  76. "level": "ERROR",
  77. "class": "django.utils.log.AdminEmailHandler",
  78. },
  79. },
  80. "loggers": {
  81. "django": {
  82. "handlers": ["console", "log_file", "mail_admins"],
  83. "level": "INFO",
  84. "propagate": True,
  85. },
  86. "django.request": {
  87. "handlers": ["console", "log_file", "mail_admins"],
  88. "level": "ERROR",
  89. "propagate": False,
  90. },
  91. "django.db.backends": {
  92. "handlers": ["console", "log_file", "mail_admins"],
  93. "level": "INFO",
  94. "propagate": False,
  95. },
  96. # Catch All Logger -- Captures any other logging
  97. "": {
  98. "handlers": ["console", "log_file", "mail_admins"],
  99. "level": "DEBUG",
  100. "propagate": True,
  101. },
  102. },
  103. }
  104. AUTH_PROFILE_MODULE = "profiles.UserProfile"
  105. LOGIN_REDIRECT_URL = "/store/"
  106. # List of finder classes that know how to find static files in
  107. # various locations.
  108. STATICFILES_FINDERS = (
  109. "django.contrib.staticfiles.finders.FileSystemFinder",
  110. "django.contrib.staticfiles.finders.AppDirectoriesFinder",
  111. )
  112. SECRET_KEY = "l(4_rf+z#5oj7ik0j$ax9+zl)3yfkh8-ige$=!eoq=hydfbm7k"
  113. TEMPLATE_CONTEXT_PROCESSORS = (
  114. "django.contrib.auth.context_processors.auth",
  115. "django.core.context_processors.debug",
  116. "django.core.context_processors.i18n",
  117. "django.core.context_processors.media",
  118. "django.core.context_processors.tz",
  119. "django.contrib.messages.context_processors.messages",
  120. "pbp_core.context_processors.pbp_store",
  121. "adzone.context_processors.get_source_ip",
  122. )
  123. MIDDLEWARE_CLASSES = (
  124. "django.middleware.cache.UpdateCacheMiddleware",
  125. "django.middleware.common.CommonMiddleware",
  126. "django.contrib.sessions.middleware.SessionMiddleware",
  127. "django.contrib.auth.middleware.AuthenticationMiddleware",
  128. "django.middleware.csrf.CsrfViewMiddleware",
  129. "django.middleware.locale.LocaleMiddleware",
  130. "ipfilter.middleware.FilterIPs",
  131. "pbp_com.middleware.SmartAppendSlashMiddleware",
  132. "pbp_com.middleware.SetRemoteAddrMiddleware",
  133. "django.contrib.flatpages.middleware.FlatpageFallbackMiddleware",
  134. "django.contrib.messages.middleware.MessageMiddleware",
  135. "django.middleware.cache.FetchFromCacheMiddleware",
  136. )
  137. CACHE_MIDDLEWARE_ALIAS = "default"
  138. CACHE_MIDDLEWARE_SECONDS = 8600
  139. CACHE_MIDDLEWARE_KEY_PREFIX = "pbp_"
  140. AUTHENTICATION_BACKENDS = ("django.contrib.auth.backends.ModelBackend",)
  141. ROOT_URLCONF = "urls.pbp"
  142. # Django Merchant settings
  143. MERCHANT_TEST_MODE = True
  144. MERCHANT_SETTINGS = None # needs to set explicitly
  145. # if SITE_ID == PBP:
  146. HAYSTACK_SITECONF = "pbp_com.search_sites"
  147. HAYSTACK_SEARCH_ENGINE = "whoosh"
  148. HAYSTACK_WHOOSH_PATH = os.path.join(PROJECT_ROOT, "search-index")
  149. CLASSIFIED_LENGTH = 200
  150. INSTALLED_APPS = (
  151. "django.contrib.auth",
  152. "django.contrib.contenttypes",
  153. "django.contrib.sessions",
  154. "django.contrib.sites",
  155. "django.contrib.staticfiles",
  156. "django.contrib.admin",
  157. "django.contrib.markup",
  158. "django.contrib.humanize",
  159. "django.contrib.comments",
  160. "django.contrib.admindocs",
  161. "django.contrib.sitemaps",
  162. "django.contrib.flatpages",
  163. "django_extensions",
  164. "registration",
  165. "profiles",
  166. "debug_toolbar",
  167. "typogrify",
  168. "taggit",
  169. "markitup",
  170. "django_inlines",
  171. "convert",
  172. "ipfilter",
  173. "documents",
  174. "newsroom",
  175. "darkroom",
  176. "adzone",
  177. "directory",
  178. "marketplace",
  179. "remember",
  180. "classifieds",
  181. "historical",
  182. "almanac",
  183. "visitors",
  184. "haystack",
  185. )
  186. PASSWORD_HASHERS = (
  187. "django.contrib.auth.hashers.PBKDF2PasswordHasher",
  188. "django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher",
  189. "django.contrib.auth.hashers.BCryptPasswordHasher",
  190. "django.contrib.auth.hashers.SHA1PasswordHasher",
  191. "django.contrib.auth.hashers.MD5PasswordHasher",
  192. "django.contrib.auth.hashers.CryptPasswordHasher",
  193. )