Commit Graph

257 Commits

Author SHA1 Message Date
Andrew-Chen-Wang
910ed86d11 Fixed linter check for #2506 2020-03-24 16:12:47 -04:00
Andrew-Chen-Wang
aee2de347b Add uvicorn and web sockets for Django 3
* Add use_async option to cookiecutter.json
* Add websocket configuration
2020-03-24 15:40:14 -04:00
Bruno Alla
56d5e271aa Remove isort exception in production config & fix issue 2020-03-23 21:46:14 +00:00
Bruno Alla
c4b1666707 Move storages classes into their own module 2020-03-23 21:46:14 +00:00
Bruno Alla
ea5db6c4f4
Django 3.0 support (#2469)
* Bump Django version to 3.0.x to see what breaks

* Update places where Django 2.2 is mentioned to 3.0

* Update to latest Django 3.0 version

* Bump version in setup.py
2020-03-23 21:41:51 +00:00
Bruno Alla
5498716c74 Fix isort 2020-03-17 15:35:42 +00:00
Bruno Alla
d2988040d5 Merge branch 'master' into pathlib-migration-updated 2020-03-17 14:16:35 +00:00
Bruno Alla
e97573dfda
Merge pull request #2435 from Andrew-Chen-Wang/master
Add all supported Anymail Providers
2020-03-16 19:59:25 +00:00
Bruno Alla
ca7fcb8f62
Merge pull request #2442 from jameswilliams1/fix-django-compressor-settings
Fix broken Django Compressor setup and enable static files minification
2020-03-16 19:53:02 +00:00
Bruno Alla
530868d072 Move "rest_framework" in THIRD_PARTY_APPS 2020-03-15 19:20:44 +00:00
Bruno Alla
729cd2adab Merge branch 'master' into drf-auth-token 2020-03-15 19:19:36 +00:00
Andrew-Chen-Wang
5e1d1dd1c3 Fixed tests for mail providers 2020-03-14 15:09:05 -04:00
Andrew-Chen-Wang
3978890502 Adjusted readability
* Changed Vanilla/Plain Django-Anymail to Other SMTP
* Made Mailgun default again
* config/production.py adjusted if conditions according to @browniebroke
2020-03-14 13:43:37 -04:00
Andrew-Chen-Wang
9cf72849e6 Merged parent repo and configured refurbished tests 2020-03-14 13:29:08 -04:00
Bruno Alla
fab6b8724a Test isort flake8-isort & fix issues
fixes #2123
2020-03-03 20:04:31 +00:00
jeromecaisip
bfe463fa7c
Update base.py 2020-03-02 19:27:07 +01:00
jeromecaisip
fa6ca7b1c8
Add rest_framework.authtoken on installed apps.
Add rest_framework.authtoken on installed apps when the option to use DRF is selected,  because the endpoint
'/auth-token/" depends on the said app.
2020-03-02 19:16:33 +01:00
James Williams
89f85f1255
- configure compressor when not using s3
- update django start script to compress if using whitenoise and compress enabled

- add to contributors.rst
2020-02-28 15:59:14 +00:00
Andrew-Chen-Wang
ac884f3f75 Updated mail service docs
* Trying to appease the Black-linter god...
2020-02-06 20:18:49 -05:00
Andrew-Chen-Wang
0621929cd2 Removed None option for mail service
* This is necessary in order to be compatible with Django-allauth
2020-02-06 18:41:30 -05:00
Andrew-Chen-Wang
c8eb5462eb Configurations and Packages added
* Production settings updated for all
* Added env vars from production settings
* Added packages requirements.txt
2020-02-06 16:58:15 -05:00
Bruno Alla
2fb40f3f8c
Option for DRF with extra fixes (#2410)
Option for DRF with extra fixes
2020-01-28 10:27:26 +00:00
Dani Hodovic
54a38bfb43 Allow rendering custom widgets from root templates dir (#2356)
* Allow rendering custom widgets from root templates dir

Rendering custom widgets from the projects root template directory
doesn't work out of the box.

See: https://stackoverflow.com/questions/45844032/django-templatedoesnotexist-in-case-of-a-custom-widget/46208414#46-208414

This changes the setting to use the same template finding logic that the
TEMPLATES setting uses.

* update APP_DIRS=True

* fixup! update APP_DIRS=True
2020-01-28 09:55:09 +00:00
Bruno Alla
fa9a8cfe7b Fix code formatting 2020-01-23 18:10:30 +00:00
Bruno Alla
949d8b684c Merge branch 'master' into drf-option-with-tests
# Conflicts:
#	hooks/post_gen_project.py
2020-01-23 14:41:42 +00:00
Bo
1609d4410e
Fix loaders option in test environment as well 2020-01-14 21:19:44 -06:00
Bo
15fc92ace1
Assuming DTL to be the last instead of first template engine 2020-01-14 08:50:38 -06:00
Daniel Hillier
0872982245 Fix failing mypy tests in users app with django-stubs (#2395)
Adds django-stubs as a requirement for local virtualenv. This is
required now that the User Model type is being resolved properly.
2020-01-13 01:57:20 +11:00
Dani Hodovic
1dd8608142
Add django.middleware.common.BrokenLinkEmailsMiddleware
https://docs.djangoproject.com/en/2.2/howto/error-reporting/#errors

> If those conditions are met, Django will email the users listed in the
> MANAGERS setting whenever your code raises a 404 and the request has a
> referer. It doesn’t bother to email for 404s that don’t have a referer –
> those are usually just people typing in broken URLs or broken Web bots.
> It also ignores 404s when the referer is equal to the requested URL,
> since this behavior is from broken Web bots too.
2019-12-10 12:46:52 +01:00
Yuchen Xie
0374f11d09 Using WhiteNoise in development 2019-11-07 21:03:33 +08:00
Yuchen Xie
400fcc4030 Prevent collectfast from guessing a wrong strategy
If `COLLECTFAST_STRATEGY` is not provided in `settings`, `collectfast` has to guess a "strategy". For the case with AWS, it guesses `BotoStrategy` in stead of `S3Boto3Storage`, which is a wrong decision as we `pip install django-storages[boto3]` (`boto3` in favor of `boto`).

Setting `COLLECTFAST_STRATEGY` is also encouraged as `collectfast` is not going to guess the strategy in the future.

Ref:
* f37dd1faa2/collectfast/management/commands/collectstatic.py (L33)
* f37dd1faa2/collectfast/strategies/base.py (L170)
2019-10-22 10:42:32 +08:00
Caio Ariede
ff8a9de24e Updates 2019-10-04 09:32:25 -03:00
Caio Ariede
39e745dddf Fix #2250 -- No staticfile storage with GCP without Whitenoise 2019-10-02 10:10:32 -03:00
Jerome Caisip
548417612f Additonal option to setup DRF. 2019-09-17 23:24:09 +08:00
Dani Hodovic
69566f5456
Add context processor for settings variables
This allows for usage of settings variables in templates, e.g

```
{% if settings.USE_ANALYTICS %}
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id={{ settings.GOOGLE_TAG_MANAGER_ID }}" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
{% endif %}
```
2019-09-05 13:24:47 +02:00
Bruno Alla
baab918874
Remove AWS_PRELOAD_METADATA (#2204)
Remove AWS_PRELOAD_METADATA
2019-09-04 20:34:23 +02:00
Bruno Alla
8c131fe603
Merge pull request #2206 from danihodovic/remove-duplicate-debug
Remove redundant DEBUG = False in test.py
2019-09-04 20:30:10 +02:00
Dani Hodovic
180ab9bbb1
Remove redundant DEBUG = False in test.py
This is already set to False by default in base.py
2019-08-26 16:25:36 +02:00
Dani Hodovic
d4d8f1b5be
Remove AWS_PRELOAD_METADATA
https://github.com/antonagestam/collectfast/pull/140
2019-08-25 14:08:28 +02:00
Dani Hodovic
7ad8791937
Remove EMAIL_HOST, EMAIL_PORT for console backend
django.core.mail.backends.console.EmailBackend is an in memory backend
so EMAIL_HOST and EMAIL_PORT does not need to be specified in this case.
2019-08-21 17:31:18 +02:00
Jules Chéron
ec80a05671
Handle path with pathlib
- Update config/settings/base.py
- Update merge_production_dotenvs_in_dotenv.py
- Update wsgi.py
- Update manage.py
2019-07-10 20:35:38 +02:00
Bruno Alla
6ca6d50ed8
Add EMAIL_TIMEOUT (#2153)
Add EMAIL_TIMEOUT
2019-07-09 12:08:15 +01:00
Bruno Alla
34c045ef60
Remove EMAIL_HOST & EMAIL_PORT with locmem backend (#2152)
Remove EMAIL_HOST & EMAIL_PORT with locmem backend
2019-07-09 11:24:48 +01:00
Dani Hodovic
35b201a2b3
Add EMAIL_TIMEOUT
Adds EMAIL_TIMEOUT to prevent a blocking send on the tcp socket from
halting the thread handling the request.
2019-07-09 09:11:50 +08:00
Dani Hodovic
1469739109
Remove EMAIL_HOST & EMAIL_PORT with locmem backend
These settings should not be required since Django never connects to an
external component when sending email. Instead it's stored in memory.

https://docs.djangoproject.com/en/2.2/topics/email/#in-memory-backend
2019-07-09 09:07:38 +08:00
Dani Hodovic
a25c406975
Remove gunicorn from installed apps
I can't find the requirement of adding it to INSTALLED_APPS on the
Django or the Gunicorn docs.

https://docs.gunicorn.org/en/latest/run.html?highlight=django#django
https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/gunicorn/
2019-07-09 09:00:31 +08:00
Dani Hodovic
87a8acbae2
Remove redundant template debug setting
> 'debug': a boolean that turns on/off template debug mode. If it is
> True, the fancy error page will display a detailed report for any
> exception raised during template rendering. This report contains the
> relevant snippet of the template with the appropriate line highlighted.

> It defaults to the value of the DEBUG setting.

https://docs.djangoproject.com/en/2.2/topics/templates/#module-django.template.backends.django

I could be wrong about this, but it seems like setting the template
DEBUG setting is redundant, since it should follow whatever the DEBUG
variable is set to.
2019-06-20 23:41:31 +08:00
Keyvan Mosharraf
e9e79428d3 Better way to include django_celery_beat in INSTALLED_APPS 2019-05-31 03:45:59 -07:00
Keyvan Mosharraf
aee9f3ecfa Install django_celery_beat in the proper way 2019-05-30 17:00:07 -07:00
Keyvan Mosharraf
631bddc811 Set celery beat scheduler using settings + install django_celery_beat if use_celery 2019-05-30 16:42:57 -07:00
Bruno Alla
7e47e9c2aa
Mailgun api url (#2014)
Mailgun api url
2019-05-28 11:27:54 +01:00
Tano Abeleyra
9a3a796a89 Use GCP acronym for Google Cloud Platform 2019-05-27 17:39:45 -03:00
Bruno Alla
b56071f516 Fix comments and empty lines in prod settings 2019-05-27 16:33:07 +01:00
Bruno Alla
881a6fd681 Change GCP settings to f-strings 2019-05-27 15:58:56 +01:00
Bruno Alla
b4cea81f26 Fix some comment and empty lines in settings 2019-05-27 15:55:41 +01:00
Bruno Alla
92e4bdf171
Make cloud_provider optional (#2067)
Make cloud_provider optional
2019-05-27 15:50:18 +01:00
Bruno Alla
c96c932111 Correct name for Celery worker-related settings - fix #2080
The settings which are normally prefixed `CELERYD_` are for worker-related config, but since we instantiate the Celery app with a namespace, the prefix for these config should actually be `CELERY_`.
2019-05-27 14:46:07 +01:00
Demetris Stavrou
a636d454f6
Update {{cookiecutter.project_slug}}/config/settings/production.py
Co-Authored-By: Bruno Alla <browniebroke@users.noreply.github.com>
2019-05-22 09:46:20 +03:00
Demetris Stavrou
38b2c2dfcd Errors are now sent to Sentry 2019-05-21 22:04:03 +03:00
Tano Abeleyra
de7be3652a Make cloud_provider optional
Some projects may not need AWS or GCS
2019-05-19 12:45:28 -03:00
shireenrao
8c69a1203f
Update {{cookiecutter.project_slug}}/config/settings/production.py
Co-Authored-By: Bruno Alla <browniebroke@users.noreply.github.com>
2019-05-19 08:27:28 -04:00
shireenrao
adcc5d0b28
Update {{cookiecutter.project_slug}}/config/settings/production.py
Co-Authored-By: Bruno Alla <browniebroke@users.noreply.github.com>
2019-05-19 08:27:14 -04:00
shireenrao
570930ef13
If using whitenoise disable AWS and GCE for static
If using whitenoise disable AWS and GCE for static setting.
2019-05-18 22:49:10 -04:00
Bruno Alla
d90406c3c3 Make the static storage use public ACL 2019-05-18 14:06:05 +01:00
Bruno Alla
b039e24130
Refactor Celery integration according to current best practices (#2016)
Refactor Celery integration according to current best practices
2019-05-17 21:38:00 +01:00
Tano Abeleyra
63a184f072 Set LOCALE_PATHS 2019-05-17 12:34:32 -03:00
Tano Abeleyra
ecc5a73aff
Add LocaleMiddleware 2019-05-17 11:57:13 -03:00
Bruno Alla
4a1894d5d6
Logging improvements (#2040)
Logging improvements
2019-05-16 13:25:38 +01:00
Tano Abeleyra
d00517252c UsersAppConfig improvements
+ Rename to UsersConfig to follow Django naming convention
+ Translate verbose_name
2019-05-15 20:10:55 -03:00
Bruno Alla
0fef828375 Create a logging config in base settings & add a root logger to existing ones 2019-05-15 17:20:14 +01:00
Bruno Alla
dc2cfc9904 Merge branch 'master' into upgrade/django-2.1 2019-05-08 12:23:23 +01:00
Craig Margieson
5ab5285e5f Edit STATIC and MEDIA urls for GCE production. 2019-05-06 15:13:01 +09:30
Bruno Alla
39df72669e Merge branch 'master' into upgrade/django-2.1
# Conflicts:
#	README.rst
2019-04-17 08:33:54 +01:00
anuj
2b141e6464 Add support for GCE static 2019-04-07 00:54:46 +05:30
anuj
b5e030b784 Corrected quotes, added parameter in tests 2019-04-07 00:34:22 +05:30
anuj
cad0b77658 Added support for GCE Media storage 2019-04-05 12:42:39 +05:30
Bruno Alla
57dd157c4a Remove deprecated password hasher 2019-04-02 19:37:12 +01:00
Bruno Alla
81851ffb6d Merge branch 'master' into mailgun_api_url 2019-04-02 15:45:37 +01:00
Bruno Alla
895298c28f Refactor Celery integration according to current best practices
- Change celery app to not be a Django app, more like a WSGI app
- Define a Celery task in the Django users app
- Write a test to execute the task
- Update scripts to use the new app to start workers
- Update documentation

Fix #865
2019-04-02 15:40:32 +01:00
Jelmert
d1bf4f4815 Added AWS_S3_REGION_NAME to production settings 2019-04-02 15:43:48 +02:00
Jelmert
17e7d603cf Added the MAILGUN_API_URL variable to the ANYMAIL configuration so we can easily switch to the EU region for mailgun 2019-04-02 15:08:51 +02:00
Bruno Alla
4e70a4b55a
Test all possible template combinations (#1993)
## Description

Fixes #591.

## Rationale

We are currently not testing many combinations, we run Flake8 on the generated project with default options, but that rarely catch any issues.

## Use case(s) / visualization(s)

Catch problems with invalid combinations, for instance, it fails due to Whitenoise breaking flake8 with `django-compressor` because `STATIC_URL` was undefined here:

b91c70d755/%7B%7Bcookiecutter.project_slug%7D%7D/config/settings/production.py (L185)
2019-04-01 08:47:46 +01:00
Guilherme Fabrizio
7d1e90bdf5 Migrate to unified Sentry SDK (#1820)
The raven library is deprecated. Replace it by the new sentry-sdk library:

https://docs.sentry.io/error-reporting/quickstart/?platform=python

fixes #1818
2019-03-20 10:04:44 +00:00
Bruno Alla
6e9f87fced Set AWS_DEFAULT_ACL to None as per django-storages documentation
fixes #1885
2019-03-19 19:57:31 +00:00
Bruno Alla
68f7268770
Run Black on Travis (#1957)
* Create a test matrix on Travis CI to help testing multiple options

* Change test_docker.sh to fail if any command in it fails

* Run black on the CI with --check option

* Fix formatting of project files using black

* Install black in the docker container

* Exclude migrations in black checks

* Fix Black formatting violations

* Run black on the whole generated project & fix issues
2019-03-18 17:49:43 +00:00
keithjeb
aea5c807f6 Change eager celery setting in local Docker (#1945)
[//]: # (Thank you for helping us out: your efforts mean great deal to the project and the community as a whole!)

[//]: # (Before you proceed:)

[//]: # (1. Make sure to add yourself to `CONTRIBUTORS.rst` through this PR provided you're contributing here for the first time)
[//]: # (2. Don't forget to update the `docs/` presuming others would benefit from a concise description of whatever that you're proposing)


## Description

[//]: # (What's it you're proposing?)

Added a note around CELERY_TASK_ALWAYS_EAGER = True in docker config for local development. This causes tasks to be executed on the 'main' thread rather than by the workers. I understand why that might be desirable, but thought it worth calling out incase (like me) it makes people think something is broken.


## Rationale

[//]: # (Why does the project need that?)

Ease of use/troubleshooting


## Use case(s) / visualization(s)

[//]: # ("Better to see something once than to hear about it a thousand times.")
2019-03-02 13:51:30 +00:00
Carl Johnson
1753812136 Settings: Use security settings in dev as well as prod 2018-11-12 15:04:03 -05:00
Chris Pappalardo
ea53635a0a fixed production bugs in caddyfile and middleware 2018-09-15 12:45:10 -07:00
Umair Ashraf
bf6c7e8e9c fixed s3 http url for static and media storage 2018-09-12 13:45:30 -04:00
Wan Liuyang
de5504f414
Rename custom S3Boto3Storage subclasses (#1784)
Closes #1788 

This PR preps for the upcoming `django-storages` 2.X:

1. ~~Explicitly set default ACL to None which was [incorrectly set](3f6ec74942/storages/backends/s3boto3.py (L195)) to `public-read` by `django-storages`~~

2. Renamed `StaticRootS3BotoStorage` to `StaticRootS3Boto3Storage` to avoid confusion. This is to prep for the upcoming `S3Boto` class deprecation.

See also:
https://django-storages.readthedocs.io/en/latest/backends/amazon-S3.html#settings
https://github.com/jschneier/django-storages/blob/master/CHANGELOG.rst
2018-09-09 19:59:04 +08:00
Irfan
27ae9c36e4 Fix #1771: Use full-fledge S3 Storage class in production settings
sorl-thumbnail serialized and deserializes the storage class and during this
process location parameter is lost if factory is used. Using a full-fledge
storage class fixes this issue.

See: https://stackoverflow.com/a/18046120/104731
2018-09-01 11:49:01 +05:00
Nikita P. Shupeyko
ac61117b59 Prevent AWS S3 bucket from being created automatically
Rationale: most of the time you want to create a bucket yourself in order to assign/tweak polices etc.
2018-06-28 16:35:35 +03:00
Nikita Shupeyko
07060eaecc
Extend & enhance Celery configuration (#1679)
* CELERY_TASK_TIME_LIMIT

* CELERY_TASK_SOFT_TIME_LIMIT

* CELERY_ALWAYS_EAGER -> CELERY_TASK_ALWAYS_EAGER

* CELERY_EAGER_PROPAGATES = CELERY_TASK_ALWAYS_EAGER

Addresses https://github.com/pydanny/cookiecutter-django/pull/1446/files#r167238808

* CELERY_RESULT_BACKEND = CELERY_BROKER_URL always

* CELERY_TIMEZONE = TIME_ZONE

* CELERY_TASK_EAGER_PROPAGATES = True

* Name task limit settings appropriately

CELERY_TASK_TIME_LIMIT -> CELERYD_TASK_TIME_LIMIT, CELERY_TASK_SOFT_TIME_LIMIT -> CELERYD_TASK_SOFT_TIME_LIMIT
2018-06-21 19:38:48 +00:00
Nikita P. Shupeyko
c812e01fc5 Rename UsersConfig to UsersAppConfig 2018-06-05 12:18:35 +03:00
Nikita P. Shupeyko
95d218e3e4 Rename CeleryConfig to CeleryAppConfig 2018-06-05 12:18:07 +03:00
Nikita Shupeyko
fe3f45ba7d
Rename DJANGO_SENTRY_DSN env to SENTRY_DSN (#1663)
Rationale: so that Heroku auto-provisioned Sentry addon, with its SENTRY_DSN config var is being connected to out-of-box
2018-05-27 22:36:13 +03:00
Nikita P. Shupeyko
b069f8e40e Fix E303 in production.py 2018-05-21 21:57:52 +03:00
Nikita P. Shupeyko
600be33b85 Fix E402 in production.py 2018-05-21 21:57:31 +03:00
Nikita P. Shupeyko
5b6c8a89d3 Fix flake8 errors in wsgi.py 2018-05-21 21:36:03 +03:00
Nikita P. Shupeyko
c3baadd8c7 Set DEBUG=True unconditionally in local config 2018-05-14 10:21:33 +03:00