diff --git a/CHANGELOG.md b/CHANGELOG.md index 383521506..76ba8fba5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,44 @@ All enhancements and patches to Cookiecutter Django will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +##[2016-05-22] +### Added +- Added instructions for copying backups from docker to host (@phiberjenz) +- Added mailhog docker container (@noisy) + +##[2016-05-15] +### Added +- Added GitLab continuous integration article to README.rst (@dezoito) + +## [2016-05-13] +### Changed +- Update version of pyflakes to 1.2.3, django-extensions to 1.6.7 and gunicorn to 19.5.0 (@luzfcb) +- Update version of AngularJS to 1.5.5 (@luzfcb) + +### Removed +- Remove Raven 404 catch middleware. Fix #367 (@pydanny) + +## [2016-05-09] +### Changed +- Improved mailhog usage documentation on `developing-locally.rst` (@shireenrao) +- Replaced all `readthedocs.org` referencies to point to the new domain `readthedocs.io` (@luzfcb) +- Update version of pyflakes (@luzfcb) + +## [2016-05-08] +### Changed +- Updated whitenoise configuration to match changes in version 3.0 (@trungdong) + +## [2016-05-07] +### Added +- Added Ubuntu 16.04 dependencies on a new dependency file `requirements.apt.xenial` (@raonyguimaraes) + +### Changed +- Small improvements in ``install_os_dependencies.sh`` support new dependency file (@raonyguimaraes) + +## [2016-05-06] +### Changed +- Update version of pyflakes (@pydanny) + ## [2016-05-03] ### Changed - Update version of Django, django-extensions, django-mailgun (@luzfcb) @@ -518,7 +556,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Styles that already exist in Bootstrap 4 (or 3) (@audreyr) ### Changed -- Fix issue #296 - change login.html to use [get_providers](https://github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/templatetags/socialaccount.py#L84-L93) templatetag because ``allauth.socialaccount`` context processor now is [deprecated](http://django-allauth.readthedocs.org/en/latest/changelog.html#from-0-21-0) (@luzfcb) +- Fix issue #296 - change login.html to use [get_providers](https://github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/templatetags/socialaccount.py#L84-L93) templatetag because ``allauth.socialaccount`` context processor now is [deprecated](http://django-allauth.readthedocs.io/en/latest/changelog.html#from-0-21-0) (@luzfcb) ## [2015-09-09] ### Added diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index d05ea0dbd..9acc83287 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -49,7 +49,7 @@ To run a particular test with tox for against your current Python version:: $ tox -e py -- -k test_default_configuration .. _`pytest usage docs`: https://pytest.org/latest/usage.html#specifying-tests-selecting-tests -.. _`tox`: https://tox.readthedocs.org/en/latest/ +.. _`tox`: https://tox.readthedocs.io/en/latest/ .. _`pip`: https://pypi.python.org/pypi/pip/ .. _`pytest-cookies`: https://pypi.python.org/pypi/pytest-cookies/ .. _`flake8`: https://pypi.python.org/pypi/flake8/ diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst index 6b5dcda78..2fda7c634 100644 --- a/CONTRIBUTORS.rst +++ b/CONTRIBUTORS.rst @@ -35,6 +35,7 @@ Listed in alphabetical order. ========================== ============================ ============== Name Github Twitter ========================== ============================ ============== + 18 `@dezoito`_ a7p `@a7p`_ Aaron Eikenberry `@aeikenberry`_ Adam Bogdał `@bogdal`_ @@ -67,6 +68,8 @@ Listed in alphabetical order. David Díaz `@ddiazpinto`_ @DavidDiazPinto Davur Clementsen `@dsclementsen`_ @davur Dónal Adams `@epileptic-fish`_ + Dong Huynh `@trungdong`_ + Emanuel Calso `@bloodpet`_ @bloodpet Eraldo Energy `@eraldo`_ Eyad Al Sibai `@eyadsibai`_ Felipe Arruda `@arruda`_ @@ -76,6 +79,7 @@ Listed in alphabetical order. Henrique G. G. Pereira `@ikkebr`_ Ian Lee `@IanLee1521`_ Jan Van Bruggen `@jvanbrug`_ + Jens Nilsson `@phiberjenz` Julio Castillo `@juliocc`_ Kaido Kert `@kaidokert`_ Kaveh `@ka7eh`_ @@ -95,11 +99,13 @@ Listed in alphabetical order. mozillazg `@mozillazg`_ Pablo `@oubiga`_ Raphael Pierzina `@hackebrot`_ + Raony Guimarães Corrêa `@raonyguimaraes`_ Roman Afanaskin `@siauPatrick`_ Roman Osipenko `@romanosipenko`_ Russell Davies stepmr `@stepmr`_ Sławek Ehlert `@slafs`_ + Srinivas Nyayapati `@shireenrao`_ Taylor Baldwin Théo Segonds `@show0k`_ Tom Atkins `@knitatoms`_ @@ -109,6 +115,7 @@ Listed in alphabetical order. Yaroslav Halchenko ========================== ============================ ============== +.. _@dezoito: https://github.com/dezoito .. _@a7p: https://github.com/a7p .. _@ad-m: https://github.com/ad-m .. _@aeikenberry: https://github.com/aeikenberry @@ -117,6 +124,7 @@ Listed in alphabetical order. .. _@andor-pierdelacabeza: https://github.com/andor-pierdelacabeza .. _@areski: https://github.com/areski .. _@arruda: https://github.com/arruda +.. _@bloodpet: https://github.com/bloodpet .. _@bogdal: https://github.com/bogdal .. _@burhan: https://github.com/burhan .. _@c-rhodes: https://github.com/c-rhodes @@ -154,11 +162,14 @@ Listed in alphabetical order. .. _@originell: https://github.com/originell .. _@oubiga: https://github.com/oubiga .. _@romanosipenko: https://github.com/romanosipenko +.. _@raonyguimaraes: https://github.com/raonyguimaraes .. _@show0k: https://github.com/show0k .. _@siauPatrick: https://github.com/siauPatrick +.. _@shireenrao: https://github.com/shireenrao .. _@slafs: https://github.com/slafs .. _@stepmr: https://github.com/stepmr .. _@Travistock: https://github.com/Tavistock +.. _@trungdong: https://github.com/trungdong .. _@yunti: https://github.com/yunti .. _@zcho: https://github.com/zcho .. _@noisy: https://github.com/noisy diff --git a/LICENSE b/LICENSE index bf45127cf..9a5d2fc08 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2013, Daniel Greenfeld +Copyright (c) 2013-2016, Daniel Greenfeld All rights reserved. Redistribution and use in source and binary forms, with or without modification, @@ -11,7 +11,7 @@ are permitted provided that the following conditions are met: list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -* Neither the name of cookiecutter-django nor the names of its contributors may +* Neither the name of Cookiecutter Django nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. diff --git a/README.rst b/README.rst index ce174290d..eece63919 100644 --- a/README.rst +++ b/README.rst @@ -16,6 +16,10 @@ Powered by Cookiecutter_, Cookiecutter Django is a framework for jumpstarting pr .. _cookiecutter: https://github.com/audreyr/cookiecutter +**Warning**: if you get the error "jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'now'." , please upgrade your cookiecutter version to >= 1.4 (see issue # 528_ ) + +.. _528: https://github.com/pydanny/cookiecutter-django/issues/528#issuecomment-212650373 + Features --------- @@ -58,7 +62,7 @@ Optional Integrations .. _django-avatar: https://github.com/jezdez/django-avatar/ .. _Procfile: https://devcenter.heroku.com/articles/procfile .. _Mailgun: https://mailgun.com/ -.. _Whitenoise: https://whitenoise.readthedocs.org/ +.. _Whitenoise: https://whitenoise.readthedocs.io/ .. _Celery: http://www.celeryproject.org/ .. _MailHog: https://github.com/mailhog/MailHog .. _Sentry: https://getsentry.com @@ -153,9 +157,9 @@ For development, see the following for local development: * `Developing locally`_ * `Developing locally using docker`_ -.. _options: http://cookiecutter-django.readthedocs.org/en/latest/project-generation-options.html -.. _`Developing locally`: http://cookiecutter-django.readthedocs.org/en/latest/developing-locally.html -.. _`Developing locally using docker`: http://cookiecutter-django.readthedocs.org/en/latest/developing-locally-docker.html +.. _options: http://cookiecutter-django.readthedocs.io/en/latest/project-generation-options.html +.. _`Developing locally`: http://cookiecutter-django.readthedocs.io/en/latest/developing-locally.html +.. _`Developing locally using docker`: http://cookiecutter-django.readthedocs.io/en/latest/developing-locally-docker.html Community ----------- @@ -217,6 +221,7 @@ Articles * `Development and Deployment of Cookiecutter-Django via Docker`_ - Dec. 29, 2015 * `How to create a Django Application using Cookiecutter and Django 1.8`_ - Sept. 12, 2015 * `Introduction to Cookiecutter-Django`_ - Feb. 19, 2016 +* `Django and GitLab - Running Continuous Integration and tests with your FREE account`_ - May. 11, 2016 Got a blog or online publication? Write about your cookiecutter-django tips and tricks, then send us a pull request with the link. @@ -224,6 +229,7 @@ Got a blog or online publication? Write about your cookiecutter-django tips and .. _`Development and Deployment of Cookiecutter-Django on Fedora`: https://realpython.com/blog/python/development-and-deployment-of-cookiecutter-django-on-fedora/ .. _`How to create a Django Application using Cookiecutter and Django 1.8`: http://blog.swapps.co/how-to-create-a-django-application-using-cookiecutter-and-django-1-8/#.VxKfBpMrKRs .. _`Introduction to Cookiecutter-Django`: http://krzysztofzuraw.com/blog/2016/django-cookiecutter.html +.. _`Django and GitLab - Running Continuous Integration and tests with your FREE account`: http://dezoito.github.io/2016/05/11/django-gitlab-continuous-integration-phantomjs.html Support This Project --------------------------- diff --git a/docs/conf.py b/docs/conf.py index f666389a1..2fdeb69e6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -45,7 +45,7 @@ source_suffix = '.rst' master_doc = 'index' # General information about the project. -project = 'cookiecutter-django' +project = 'Cookiecutter Django' copyright = '2013-{}, Daniel Roy Greenfeld'.format(now.year) # The version info for the project you're documenting, acts as replacement for @@ -220,7 +220,7 @@ latex_documents = [ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - ('index', 'cookiecutter-django', 'cookiecutter-django documentation', + ('index', 'Cookiecutter Django', 'Cookiecutter Django documentation', ['Daniel Roy Greenfeld'], 1) ] @@ -234,8 +234,8 @@ man_pages = [ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - ('index', 'cookiecutter-django', 'cookiecutter-django documentation', - 'Daniel Roy Greenfeld', 'cookiecutter-django', + ('index', 'Cookiecutter Django', 'Cookiecutter Django documentation', + 'Daniel Roy Greenfeld', 'Cookiecutter Django', 'A Cookiecutter template for creating production-ready Django projects quickly.', 'Miscellaneous'), ] diff --git a/docs/developing-locally-docker.rst b/docs/developing-locally-docker.rst index 8cbf72342..03e9221c5 100644 --- a/docs/developing-locally-docker.rst +++ b/docs/developing-locally-docker.rst @@ -112,7 +112,13 @@ To restore a backup, run:: docker-compose -f dev.yml run postgres restore filename.sql +To copy the files from the running Postgres container to the host system:: + docker cp :/backups /host/path/target + +Where is the ID of the Postgres container. To get it, run:: + + docker ps Other Useful Tips ----------------- diff --git a/docs/developing-locally.rst b/docs/developing-locally.rst index 73fac3cbe..5cb51aed9 100644 --- a/docs/developing-locally.rst +++ b/docs/developing-locally.rst @@ -23,13 +23,13 @@ Then, create a PostgreSQL database with the following command, where `[project_s $ createdb [project_slug] -`cookiecutter-django` uses the excellent `django-environ`_ package with its ``DATABASE_URL`` environment variable to simplify database configuration in your Django settings. Now all you have to do is compose a definition for ``DATABASE_URL``: +`Cookiecutter Django` uses the excellent `django-environ`_ package with its ``DATABASE_URL`` environment variable to simplify database configuration in your Django settings. Now all you have to do is compose a definition for ``DATABASE_URL``: .. parsed-literal:: $ export DATABASE_URL="postgres://**:**\ @127.0.0.1:\ **/**" -.. _django-environ: http://django-environ.readthedocs.org +.. _django-environ: http://django-environ.readthedocs.io You can now run the usual Django ``migrate`` and ``runserver`` commands:: @@ -41,16 +41,25 @@ You can now run the usual Django ``migrate`` and ``runserver`` commands:: django-allauth sends an email to verify users (and superusers) after signup and login (if they are still not verified). To send email you need to `configure your email backend`_ .. _configure your email backend: http://docs.djangoproject.com/en/1.9/topics/email/#smtp-backend +{% if cookiecutter.use_docker == 'y' %} +In development you can (optionally) use MailHog_ for email testing. MailHog is added as docker-container. To use MailHog:: +1. Make sure, that ``mailhog`` docker container is up and running +2. Open your browser and go to ``http://127.0.0.1:8025`` + +.. _Mailhog: https://github.com/mailhog/MailHog/ +{% else %} In development you can (optionally) use MailHog_ for email testing. MailHog is built with Go so there are no dependencies. To use MailHog:: 1. `Download the latest release`_ for your operating system 2. Rename the executable to ``mailhog`` and copy it to the root of your project directory 3. Make sure it is executable (e.g. ``chmod +x mailhog``) +4. Execute mailhog from the root of your project in a new terminal window (e.g. ``./mailhog``) +5. All emails generated from your django app can be seen on http://127.0.0.1:8025/ .. _Mailhog: https://github.com/mailhog/MailHog/ .. _Download the latest release: https://github.com/mailhog/MailHog/releases - +{% endif %} Alternatively simply output emails to the console via: ``EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'`` In production basic email configuration is setup to send emails with Mailgun_ diff --git a/docs/faq.rst b/docs/faq.rst index 3e6e4a7e5..854e9dddd 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -3,7 +3,7 @@ FAQ .. index:: FAQ, 12-Factor App -Why is there a django.contrib.sites directory in cookiecutter-django? +Why is there a django.contrib.sites directory in Cookiecutter Django? --------------------------------------------------------------------- It is there to add a migration so you don't have to manually change the ``sites.Site`` record from ``example.com`` to whatever your domain is. Instead, your ``{{cookiecutter.domain_name}}`` and {{cookiecutter.project_name}} value is placed by **Cookiecutter** in the domain and name fields respectively. diff --git a/hooks/post_gen_project.py b/hooks/post_gen_project.py index bbc852420..cffb052e8 100644 --- a/hooks/post_gen_project.py +++ b/hooks/post_gen_project.py @@ -39,7 +39,7 @@ def get_random_string( if using_sysrandom: return ''.join(random.choice(allowed_chars) for i in range(length)) print( - "cookiecutter-django couldn't find a secure pseudo-random number generator on your system." + "Cookiecutter Django couldn't find a secure pseudo-random number generator on your system." " Please change change your SECRET_KEY variables in conf/settings/local.py and env.example" " manually." ) diff --git a/requirements.txt b/requirements.txt index 58369fe35..d63bed873 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,6 +6,6 @@ binaryornot==0.4.0 # Testing pytest==2.9.1 pep8==1.7.0 -pyflakes==1.2.1 +pyflakes==1.2.3 tox==2.3.1 pytest-cookies==0.2.0 diff --git a/{{cookiecutter.project_slug}}/.gitignore b/{{cookiecutter.project_slug}}/.gitignore index 709d3a923..f2d14296f 100644 --- a/{{cookiecutter.project_slug}}/.gitignore +++ b/{{cookiecutter.project_slug}}/.gitignore @@ -68,5 +68,9 @@ node_modules/ # User-uploaded media {{ cookiecutter.project_slug }}/media/ +# Hitch directory +tests/.hitch +{% if cookiecutter.use_mailhog == 'y' and cookiecutter.use_docker == 'n'%} # MailHog binary mailhog +{% endif %} diff --git a/{{cookiecutter.project_slug}}/Gruntfile.js b/{{cookiecutter.project_slug}}/Gruntfile.js index 1eaade285..e5fbcceed 100644 --- a/{{cookiecutter.project_slug}}/Gruntfile.js +++ b/{{cookiecutter.project_slug}}/Gruntfile.js @@ -112,14 +112,14 @@ module.exports = function (grunt) { runDjango: { cmd: 'python <%= paths.manageScript %> runserver' }, - {% if cookiecutter.use_mailhog == "y" -%}runMailHog: { + {% if cookiecutter.use_mailhog == "y" and cookiecutter.use_docker == 'n' -%}runMailHog: { cmd: './mailhog' },{%- endif %} } }); grunt.registerTask('serve', [ - {% if cookiecutter.use_mailhog == "y" -%} + {% if cookiecutter.use_mailhog == "y" and cookiecutter.use_docker == 'n' -%} 'bgShell:runMailHog', {%- endif %} 'bgShell:runDjango', diff --git a/{{cookiecutter.project_slug}}/README.rst b/{{cookiecutter.project_slug}}/README.rst index 038d73adc..38d923b66 100644 --- a/{{cookiecutter.project_slug}}/README.rst +++ b/{{cookiecutter.project_slug}}/README.rst @@ -16,7 +16,7 @@ Settings Moved to settings_. -.. _settings: http://cookiecutter-django.readthedocs.org/en/latest/settings.html +.. _settings: http://cookiecutter-django.readthedocs.io/en/latest/settings.html Basic Commands -------------- @@ -53,7 +53,7 @@ Live reloading and Sass CSS compilation Moved to `Live reloading and SASS compilation`_. -.. _`Live reloading and SASS compilation`: http://cookiecutter-django.readthedocs.org/en/latest/live-reloading-and-sass-compilation.html +.. _`Live reloading and SASS compilation`: http://cookiecutter-django.readthedocs.io/en/latest/live-reloading-and-sass-compilation.html {% if cookiecutter.use_celery == "y" %} @@ -77,7 +77,16 @@ Please note: For Celery's import magic to work, it is important *where* the cele Email Server ^^^^^^^^^^^^ +{% if cookiecutter.use_docker == 'y' %} +In development, it is often nice to be able to see emails that are being sent from your application. For that reason local SMTP server `MailHog`_ with a web interface is available as docker container. +.. _mailhog: https://github.com/mailhog/MailHog + +Container mailhog will start automatically when you will run all docker containers. +Please check `cookiecutter-django Docker documentation`_ for more details how to start all containers. + +With MailHog running, to view messages that are sent by your application, open your browser and go to ``http://127.0.0.1:8025`` +{% else %} In development, it is often nice to be able to see emails that are being sent from your application. If you choose to use `MailHog`_ when generating the project a local SMTP server with a web interface will be available. .. _mailhog: https://github.com/mailhog/MailHog @@ -92,7 +101,7 @@ To start the service, make sure you have nodejs installed, and then type the fol To view messages that are sent by your application, open your browser and go to ``http://127.0.0.1:8025`` The email server will exit when you exit the Grunt task on the CLI with Ctrl+C. - +{% endif %} {% endif %} {% if cookiecutter.use_sentry == "y" %} @@ -121,7 +130,7 @@ Heroku See detailed `cookiecutter-django Heroku documentation`_. -.. _`cookiecutter-django Heroku documentation`: http://cookiecutter-django.readthedocs.org/en/latest/deployment-on-heroku.html +.. _`cookiecutter-django Heroku documentation`: http://cookiecutter-django.readthedocs.io/en/latest/deployment-on-heroku.html {% endif %} @@ -132,6 +141,6 @@ Docker See detailed `cookiecutter-django Docker documentation`_. -.. _`cookiecutter-django Docker documentation`: http://cookiecutter-django.readthedocs.org/en/latest/deployment-with-docker.html +.. _`cookiecutter-django Docker documentation`: http://cookiecutter-django.readthedocs.io/en/latest/deployment-with-docker.html {% endif %} diff --git a/{{cookiecutter.project_slug}}/config/settings/common.py b/{{cookiecutter.project_slug}}/config/settings/common.py index 276e97e28..3668b4274 100644 --- a/{{cookiecutter.project_slug}}/config/settings/common.py +++ b/{{cookiecutter.project_slug}}/config/settings/common.py @@ -12,7 +12,7 @@ from __future__ import absolute_import, unicode_literals import environ -ROOT_DIR = environ.Path(__file__) - 3 # (/a/b/myfile.py - 3 = /) +ROOT_DIR = environ.Path(__file__) - 3 # ({{ cookiecutter.project_slug }}/config/settings/common.py - 3 = {{ cookiecutter.project_slug }}/) APPS_DIR = ROOT_DIR.path('{{ cookiecutter.project_slug }}') env = environ.Env() @@ -163,7 +163,7 @@ TEMPLATES = [ }, ] -# See: http://django-crispy-forms.readthedocs.org/en/latest/install.html#template-packs +# See: http://django-crispy-forms.readthedocs.io/en/latest/install.html#template-packs CRISPY_TEMPLATE_PACK = 'bootstrap3' # STATIC FILE CONFIGURATION diff --git a/{{cookiecutter.project_slug}}/config/settings/local.py b/{{cookiecutter.project_slug}}/config/settings/local.py index c85527d18..b3227a2b6 100644 --- a/{{cookiecutter.project_slug}}/config/settings/local.py +++ b/{{cookiecutter.project_slug}}/config/settings/local.py @@ -23,16 +23,15 @@ SECRET_KEY = env('DJANGO_SECRET_KEY', default='CHANGEME!!!') # Mail settings # ------------------------------------------------------------------------------ + EMAIL_PORT = 1025 -{% if cookiecutter.use_docker == 'y' and cookiecutter.use_mailhog == 'y' -%} -EMAIL_HOST = 'mailhog' +{% if cookiecutter.use_mailhog == 'y' and cookiecutter.use_docker == 'y' %} +EMAIL_HOST = env("EMAIL_HOST", default='mailhog') {% else %} EMAIL_HOST = 'localhost' -{%- endif %} -{%if cookiecutter.use_mailhog == 'n' -%} EMAIL_BACKEND = env('DJANGO_EMAIL_BACKEND', default='django.core.mail.backends.console.EmailBackend') -{%- endif %} +{% endif %} # CACHING # ------------------------------------------------------------------------------ diff --git a/{{cookiecutter.project_slug}}/config/settings/production.py b/{{cookiecutter.project_slug}}/config/settings/production.py index 8baeebd89..cf35861fa 100644 --- a/{{cookiecutter.project_slug}}/config/settings/production.py +++ b/{{cookiecutter.project_slug}}/config/settings/production.py @@ -46,15 +46,16 @@ SECURITY_MIDDLEWARE = ( ) {% if cookiecutter.use_whitenoise == 'y' -%} # Use Whitenoise to serve static files -# See: https://whitenoise.readthedocs.org/ +# See: https://whitenoise.readthedocs.io/ WHITENOISE_MIDDLEWARE = ( 'whitenoise.middleware.WhiteNoiseMiddleware', ) MIDDLEWARE_CLASSES = WHITENOISE_MIDDLEWARE + MIDDLEWARE_CLASSES {%- endif %} {% if cookiecutter.use_sentry == 'y' -%} -RAVEN_MIDDLEWARE = ('raven.contrib.django.raven_compat.middleware.Sentry404CatchMiddleware', - 'raven.contrib.django.raven_compat.middleware.SentryResponseErrorIdMiddleware',) +RAVEN_MIDDLEWARE = ( + 'raven.contrib.django.raven_compat.middleware.SentryResponseErrorIdMiddleware', +) MIDDLEWARE_CLASSES = RAVEN_MIDDLEWARE + MIDDLEWARE_CLASSES {%- endif %} @@ -98,7 +99,7 @@ INSTALLED_APPS += ('gunicorn', ) # ------------------------------------------------------------------------------ # Uploaded Media Files # ------------------------ -# See: http://django-storages.readthedocs.org/en/latest/index.html +# See: http://django-storages.readthedocs.io/en/latest/index.html INSTALLED_APPS += ( 'storages', ) diff --git a/{{cookiecutter.project_slug}}/requirements/local.txt b/{{cookiecutter.project_slug}}/requirements/local.txt index 4711c0a3b..c88093fef 100644 --- a/{{cookiecutter.project_slug}}/requirements/local.txt +++ b/{{cookiecutter.project_slug}}/requirements/local.txt @@ -3,7 +3,7 @@ coverage==4.0.3 django_coverage_plugin==1.3 Sphinx -django-extensions==1.6.6 +django-extensions==1.6.7 Werkzeug==0.11.9 django-test-plus==1.0.12 factory_boy==2.7.0 diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt index f6b1eaa30..b2308d363 100644 --- a/{{cookiecutter.project_slug}}/requirements/production.txt +++ b/{{cookiecutter.project_slug}}/requirements/production.txt @@ -12,7 +12,7 @@ psycopg2==2.6.1 # WSGI Handler # ------------------------------------------------ gevent==1.1.1 -gunicorn==19.4.5 +gunicorn==19.5.0 # Static and Media Storage # ------------------------------------------------ diff --git a/{{cookiecutter.project_slug}}/utility/requirements.apt b/{{cookiecutter.project_slug}}/utility/requirements.apt index 2fb764c3d..9a18d50d4 100644 --- a/{{cookiecutter.project_slug}}/utility/requirements.apt +++ b/{{cookiecutter.project_slug}}/utility/requirements.apt @@ -3,7 +3,11 @@ build-essential #required to translate gettext +{% if cookiecutter.use_python2 == 'n' -%} +python3-dev +{% else %} python-dev +{%- endif %} ##shared dependencies of: ##Pillow, pylibmc diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/__init__.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/__init__.py index 4985ac95d..776ac1718 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/__init__.py +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/__init__.py @@ -1,6 +1,6 @@ """ To understand why this file is here, please read: -http://cookiecutter-django.readthedocs.org/en/latest/faq.html#why-is-there-a-django-contrib-sites-directory-in-cookiecutter-django +http://cookiecutter-django.readthedocs.io/en/latest/faq.html#why-is-there-a-django-contrib-sites-directory-in-cookiecutter-django """ # -*- coding: utf-8 -*- diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/__init__.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/__init__.py index 4985ac95d..776ac1718 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/__init__.py +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/__init__.py @@ -1,6 +1,6 @@ """ To understand why this file is here, please read: -http://cookiecutter-django.readthedocs.org/en/latest/faq.html#why-is-there-a-django-contrib-sites-directory-in-cookiecutter-django +http://cookiecutter-django.readthedocs.io/en/latest/faq.html#why-is-there-a-django-contrib-sites-directory-in-cookiecutter-django """ # -*- coding: utf-8 -*- diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/0002_set_site_domain_and_name.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/0002_set_site_domain_and_name.py index c4e255d8e..e6292f0b0 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/0002_set_site_domain_and_name.py +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/0002_set_site_domain_and_name.py @@ -1,7 +1,7 @@ """ To understand why this file is here, please read: -http://cookiecutter-django.readthedocs.org/en/latest/faq.html#why-is-there-a-django-contrib-sites-directory-in-cookiecutter-django +http://cookiecutter-django.readthedocs.io/en/latest/faq.html#why-is-there-a-django-contrib-sites-directory-in-cookiecutter-django """ # -*- coding: utf-8 -*- diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/__init__.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/__init__.py index 4985ac95d..776ac1718 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/__init__.py +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/contrib/sites/migrations/__init__.py @@ -1,6 +1,6 @@ """ To understand why this file is here, please read: -http://cookiecutter-django.readthedocs.org/en/latest/faq.html#why-is-there-a-django-contrib-sites-directory-in-cookiecutter-django +http://cookiecutter-django.readthedocs.io/en/latest/faq.html#why-is-there-a-django-contrib-sites-directory-in-cookiecutter-django """ # -*- coding: utf-8 -*- diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/base.html b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/base.html index cd97ca6a2..b54692228 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/base.html +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/base.html @@ -24,7 +24,7 @@ {% endblock %} {% endraw %}{% if cookiecutter.use_angular == "y" %}{% raw %}{% block angular %} - + {% endblock %}{% endraw %}{% endif %}{% raw %}