Skip to content

Commit

Permalink
Fix Heroku deployment
Browse files Browse the repository at this point in the history
  • Loading branch information
anishathalye committed Jul 4, 2021
1 parent 2a1b05d commit 8393e17
Showing 1 changed file with 35 additions and 26 deletions.
61 changes: 35 additions & 26 deletions gavel/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,33 +53,42 @@ def _list(item):
return item
return [item]

# SQLAlchemy used to support URIs starting with 'postgres://', but it now
# requires that they start with 'postgresql://'. Heroku sets the environment
# variable 'DATABASE_URL' to 'postgres://...', so this breaks our app. This
# function fixes the DB URI.
def _postgres_uri(uri):
if uri.startswith('postgres://'):
return uri.replace('postgres://', 'postgresql://', 1)
return uri

c = Config(CONFIG_FILE)

# note: this should be kept in sync with 'config.template.yaml' and
# 'config.vagrant.yaml'
SERVER_NAME = c.get('server_name', 'SERVER_NAME', default=None)
PROXY = _bool(c.get('proxy', 'PROXY', default=False))
ADMIN_PASSWORD = c.get('admin_password', 'ADMIN_PASSWORD')
DB_URI = c.get('db_uri', ['DATABASE_URL', 'DB_URI'], default='postgresql://localhost/gavel')
BROKER_URI = c.get('broker_uri', ['REDIS_URL', 'BROKER_URI'], default='redis://localhost:6379/0')
SECRET_KEY = c.get('secret_key', 'SECRET_KEY')
MIN_VIEWS = int(c.get('min_views', 'MIN_VIEWS', default=2))
TIMEOUT = float(c.get('timeout', 'TIMEOUT', default=5.0)) # in minutes
WELCOME_MESSAGE = c.get('welcome_message', default=constants.DEFAULT_WELCOME_MESSAGE)
CLOSED_MESSAGE = c.get('closed_message', default=constants.DEFAULT_CLOSED_MESSAGE)
DISABLED_MESSAGE = c.get('disabled_message', default=constants.DEFAULT_DISABLED_MESSAGE)
LOGGED_OUT_MESSAGE = c.get('logged_out_message', default=constants.DEFAULT_LOGGED_OUT_MESSAGE)
WAIT_MESSAGE = c.get('wait_message', default=constants.DEFAULT_WAIT_MESSAGE)
DISABLE_EMAIL = _bool(c.get('disable_email', 'DISABLE_EMAIL', default=False))
EMAIL_HOST = c.get('email_host', 'EMAIL_HOST', default='smtp.gmail.com')
EMAIL_PORT = int(c.get('email_port', 'EMAIL_PORT', default=587))
EMAIL_FROM = c.get('email_from', 'EMAIL_FROM')
EMAIL_USER = c.get('email_user', 'EMAIL_USER')
EMAIL_PASSWORD = c.get('email_password', 'EMAIL_PASSWORD')
EMAIL_AUTH_MODE = c.get('email_auth_mode', 'EMAIL_AUTH_MODE', default='tls').lower()
EMAIL_CC = _list(c.get('email_cc', 'EMAIL_CC', default=[]))
EMAIL_SUBJECT = c.get('email_subject', default=constants.DEFAULT_EMAIL_SUBJECT)
EMAIL_BODY = c.get('email_body', default=constants.DEFAULT_EMAIL_BODY)
SEND_STATS = _bool(c.get('send_stats', 'SEND_STATS', default=True))
USE_SENDGRID = _bool(c.get('use_sendgrid', 'USE_SENDGRID', default=False))
SENDGRID_API_KEY = c.get('sendgrid_api_key','SENDGRID_API_KEY', default=None)
SERVER_NAME = c.get('server_name', 'SERVER_NAME', default=None)
PROXY = _bool(c.get('proxy', 'PROXY', default=False))
ADMIN_PASSWORD = c.get('admin_password', 'ADMIN_PASSWORD')
DB_URI = _postgres_uri(c.get('db_uri', ['DATABASE_URL', 'DB_URI'], default='postgresql://localhost/gavel'))
BROKER_URI = c.get('broker_uri', ['REDIS_URL', 'BROKER_URI'], default='redis://localhost:6379/0')
SECRET_KEY = c.get('secret_key', 'SECRET_KEY')
MIN_VIEWS = int(c.get('min_views', 'MIN_VIEWS', default=2))
TIMEOUT = float(c.get('timeout', 'TIMEOUT', default=5.0)) # in minutes
WELCOME_MESSAGE = c.get('welcome_message', default=constants.DEFAULT_WELCOME_MESSAGE)
CLOSED_MESSAGE = c.get('closed_message', default=constants.DEFAULT_CLOSED_MESSAGE)
DISABLED_MESSAGE = c.get('disabled_message', default=constants.DEFAULT_DISABLED_MESSAGE)
LOGGED_OUT_MESSAGE = c.get('logged_out_message', default=constants.DEFAULT_LOGGED_OUT_MESSAGE)
WAIT_MESSAGE = c.get('wait_message', default=constants.DEFAULT_WAIT_MESSAGE)
DISABLE_EMAIL = _bool(c.get('disable_email', 'DISABLE_EMAIL', default=False))
EMAIL_HOST = c.get('email_host', 'EMAIL_HOST', default='smtp.gmail.com')
EMAIL_PORT = int(c.get('email_port', 'EMAIL_PORT', default=587))
EMAIL_FROM = c.get('email_from', 'EMAIL_FROM')
EMAIL_USER = c.get('email_user', 'EMAIL_USER')
EMAIL_PASSWORD = c.get('email_password', 'EMAIL_PASSWORD')
EMAIL_AUTH_MODE = c.get('email_auth_mode', 'EMAIL_AUTH_MODE', default='tls').lower()
EMAIL_CC = _list(c.get('email_cc', 'EMAIL_CC', default=[]))
EMAIL_SUBJECT = c.get('email_subject', default=constants.DEFAULT_EMAIL_SUBJECT)
EMAIL_BODY = c.get('email_body', default=constants.DEFAULT_EMAIL_BODY)
SEND_STATS = _bool(c.get('send_stats', 'SEND_STATS', default=True))
USE_SENDGRID = _bool(c.get('use_sendgrid', 'USE_SENDGRID', default=False))
SENDGRID_API_KEY = c.get('sendgrid_api_key', 'SENDGRID_API_KEY', default=None)

0 comments on commit 8393e17

Please sign in to comment.