Skip to content

Commit

Permalink
Merge 3c5a743 into 0780d84
Browse files Browse the repository at this point in the history
  • Loading branch information
georgreen committed Jul 21, 2017
2 parents 0780d84 + 3c5a743 commit c4db399
Show file tree
Hide file tree
Showing 3 changed files with 126 additions and 97 deletions.
84 changes: 54 additions & 30 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,30 +1,54 @@
#
# Requirements for wger for production
#

Django>=1.9,<1.10
django-recaptcha
reportlab
django_mobile
django-formtools>=1.0,<1.1
bleach
python-mimeparse
pillow
easy-thumbnails
django_compressor
icalendar
django-bootstrap-breadcrumbs
sphinx
django-sortedm2m
django-bower
invoke
requests

# REST API
djangorestframework>=3.2,<3.3
django-filter
django-tastypie
django-cors-headers

# Python3 compatibility
six
alabaster==0.7.10
autoflake==0.7
autopep8==1.3.2
Babel==2.4.0
bleach==2.0.0
certifi==2017.4.17
chardet==3.0.4
dj-database-url==0.4.2
Django==1.9.13
django-appconf==1.0.2
django-bootstrap-breadcrumbs==0.8.2
django-bower==5.2.0
django-compressor==2.1.1
django-cors-headers==2.1.0
django-filter==1.0.4
django-formtools==1.0
django-mobile==0.7.0
django-recaptcha==1.3.0
django-sortedm2m==1.4.0
django-tastypie==0.13.3
djangorestframework==3.2.5
docutils==0.13.1
easy-thumbnails==2.4.1
gunicorn==19.7.1
html5lib==0.999999999
icalendar==3.11.4
idna==2.5
imagesize==0.7.1
invoke==0.19.0
isort==4.2.15
jedi==0.10.2
Jinja2==2.9.6
MarkupSafe==1.0
olefile==0.44
Pillow==4.1.1
pycodestyle==2.3.1
pyflakes==1.5.0
Pygments==2.2.0
python-dateutil==2.6.0
python-mimeparse==1.6.0
pytz==2017.2
rcssmin==1.0.6
reportlab==3.4.0
requests==2.18.1
rjsmin==1.0.12
six==1.10.0
snowballstemmer==1.2.1
Sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
tabulate==0.7.7
urllib3==1.21.1
webencodings==0.5.1
whitenoise==3.3.0
yapf==0.16.2
7 changes: 7 additions & 0 deletions wger/core/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -682,3 +682,10 @@ def is_weight(self):
class ApiUser(models.Model):
user = models.OneToOneField(User)
created_by = models.ForeignKey(User, related_name="created_by")

def __str__(self):
'''
String representation for ApiUser
'''
return "User: {}, created by: {}".format(self.user.__str__(),
self.created_by)
132 changes: 65 additions & 67 deletions wger/settings_global.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@
import os
import re
import sys


import dj_database_url
'''
This file contains the global settings that don't usually need to be changed.
For a full list of options, visit:
Expand Down Expand Up @@ -87,25 +86,13 @@
'corsheaders',

# django-bower for installing bower packages
'djangobower',
)
'djangobower', )

# added list of external libraries to be installed by bower
BOWER_INSTALLED_APPS = (
'bootstrap',
'components-font-awesome',
'd3',
'DataTables',
'devbridge-autocomplete#1.2.x',
'jquery#2.1.x',
'metrics-graphics',
'shariff',
'sortablejs#1.4.x',
'tinymce',
'tinymce-dist',
)


BOWER_INSTALLED_APPS = ('bootstrap', 'components-font-awesome', 'd3',
'DataTables', 'devbridge-autocomplete#1.2.x',
'jquery#2.1.x', 'metrics-graphics', 'shariff',
'sortablejs#1.4.x', 'tinymce', 'tinymce-dist', )
MIDDLEWARE_CLASSES = (
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
Expand All @@ -120,20 +107,16 @@

# Send an appropriate Header so search engines don't index pages
'wger.utils.middleware.RobotsExclusionMiddleware',

'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.locale.LocaleMiddleware',

# Django mobile
'django_mobile.middleware.MobileDetectionMiddleware',
'django_mobile.middleware.SetFlavourMiddleware',
)
'django_mobile.middleware.SetFlavourMiddleware', )

AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'wger.utils.helpers.EmailAuthBackend'
)
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',
'wger.utils.helpers.EmailAuthBackend')

TEMPLATES = [
{
Expand Down Expand Up @@ -161,11 +144,11 @@
'loaders': [
# Django mobile
'django_mobile.loader.Loader',

'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
],
'debug': False
'debug':
False
},
},
]
Expand All @@ -185,25 +168,18 @@
'djangobower.finders.BowerFinder',

# Django compressor
'compressor.finders.CompressorFinder',
)

'compressor.finders.CompressorFinder', )

#
# Email
#
EMAIL_SUBJECT_PREFIX = '[wger] '
# EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'


#
# Login
#
LOGIN_URL = '/user/login'
LOGIN_REDIRECT_URL = '/'


#
# Internationalization
#
USE_TZ = True
Expand Down Expand Up @@ -244,8 +220,6 @@
)

FLAVOURS_STORAGE_BACKEND = 'session'


#
# Logging
# See http://docs.python.org/library/logging.config.html
Expand All @@ -272,14 +246,10 @@
}
}
}


#
# ReCaptcha
#
RECAPTCHA_USE_SSL = True


#
# Cache
#
Expand All @@ -290,31 +260,50 @@
'TIMEOUT': 30 * 24 * 60 * 60, # Cache for a month
}
}


#
# Easy thumbnails
#
THUMBNAIL_ALIASES = {
'': {
'micro': {'size': (30, 30)},
'micro_cropped': {'size': (30, 30), 'crop': 'smart'},

'thumbnail': {'size': (80, 80)},
'thumbnail_cropped': {'size': (80, 80), 'crop': 'smart'},

'small': {'size': (200, 200)},
'small_cropped': {'size': (200, 200), 'crop': 'smart'},

'medium': {'size': (400, 400)},
'medium_cropped': {'size': (400, 400), 'crop': 'smart'},

'large': {'size': (800, 800), 'quality': 90},
'large_cropped': {'size': (800, 800), 'crop': 'smart', 'quality': 90},
'micro': {
'size': (30, 30)
},
'micro_cropped': {
'size': (30, 30),
'crop': 'smart'
},
'thumbnail': {
'size': (80, 80)
},
'thumbnail_cropped': {
'size': (80, 80),
'crop': 'smart'
},
'small': {
'size': (200, 200)
},
'small_cropped': {
'size': (200, 200),
'crop': 'smart'
},
'medium': {
'size': (400, 400)
},
'medium_cropped': {
'size': (400, 400),
'crop': 'smart'
},
'large': {
'size': (800, 800),
'quality': 90
},
'large_cropped': {
'size': (800, 800),
'crop': 'smart',
'quality': 90
},
},
}


#
# Django compressor
#
Expand All @@ -331,9 +320,11 @@

# BOWER binary
if sys.platform.startswith('win32'):
BOWER_PATH = os.path.abspath(os.path.join(BASE_DIR, '..', 'node_modules', '.bin', 'bower.cmd'))
BOWER_PATH = os.path.abspath(
os.path.join(BASE_DIR, '..', 'node_modules', '.bin', 'bower.cmd'))
else:
BOWER_PATH = os.path.abspath(os.path.join(BASE_DIR, '..', 'node_modules', '.bin', 'bower'))
BOWER_PATH = os.path.abspath(
os.path.join(BASE_DIR, '..', 'node_modules', '.bin', 'bower'))

#
# Django Rest Framework
Expand All @@ -351,7 +342,6 @@
'rest_framework.filters.OrderingFilter',)
}


#
# CORS headers: allow all hosts to access the API
#
Expand All @@ -370,16 +360,20 @@
#
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
'NAME':
'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
'NAME':
'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
'NAME':
'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
'NAME':
'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]

Expand All @@ -396,3 +390,7 @@
'EMAIL_FROM': 'wger Workout Manager <wger@example.com>',
'TWITTER': False
}

DATABASES = {
'default': dj_database_url.config(default=os.environ.get('DATABASE_URL'))
}

0 comments on commit c4db399

Please sign in to comment.