From 58cade22d390a36839f3e5a2a0b7c36b22e909c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Bastian?= Date: Sat, 9 Jul 2016 18:42:45 +0100 Subject: [PATCH 1/3] =?UTF-8?q?Ajout=20d'images=20aux=20=C3=A9v=C3=A9nemen?= =?UTF-8?q?ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gestioncof/migrations/0003_event_image.py | 19 +++++++++++++++++++ gestioncof/models.py | 2 ++ 2 files changed, 21 insertions(+) create mode 100644 gestioncof/migrations/0003_event_image.py diff --git a/gestioncof/migrations/0003_event_image.py b/gestioncof/migrations/0003_event_image.py new file mode 100644 index 00000000..6d65b1a6 --- /dev/null +++ b/gestioncof/migrations/0003_event_image.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('gestioncof', '0002_enable_unprocessed_demandes'), + ] + + operations = [ + migrations.AddField( + model_name='event', + name='image', + field=models.ImageField(upload_to=b'imgs/events/', null=True, verbose_name=b'Image', blank=True), + ), + ] diff --git a/gestioncof/models.py b/gestioncof/models.py index a564a747..d3074b70 100644 --- a/gestioncof/models.py +++ b/gestioncof/models.py @@ -105,6 +105,8 @@ class Event(models.Model): start_date = models.DateField("Date de début", blank=True, null=True) end_date = models.DateField("Date de fin", blank=True, null=True) description = models.TextField("Description", blank=True) + image = models.ImageField("Image", blank=True, null=True, + upload_to="imgs/events/") registration_open = models.BooleanField("Inscriptions ouvertes", default=True) old = models.BooleanField("Archiver (événement fini)", default=False) From cd73d4e96ddad6e5db946b66c21a9e58e08e6a07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Bastian?= Date: Sat, 9 Jul 2016 18:49:38 +0100 Subject: [PATCH 2/3] Ajout de MEDIA_{ROOT,URL} --- .gitignore | 1 + cof/settings_dev.py | 6 ++++++ cof/urls.py | 11 ++++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 7d9fd123..2d2b0cee 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ settings.py venv/ .vagrant /src +media/ diff --git a/cof/settings_dev.py b/cof/settings_dev.py index 6f2f21ac..471b8349 100644 --- a/cof/settings_dev.py +++ b/cof/settings_dev.py @@ -116,6 +116,12 @@ USE_TZ = True STATIC_URL = '/static/' +# Media upload (through ImageField, SiteField) +# https://docs.djangoproject.com/en/1.9/ref/models/fields/ + +MEDIA_ROOT = './media/' +MEDIA_URL = '/media/' + # Various additional settings SITE_ID = 1 diff --git a/cof/urls.py b/cof/urls.py index e42af37c..b5d2b65a 100644 --- a/cof/urls.py +++ b/cof/urls.py @@ -1,4 +1,8 @@ +# -*-coding:utf-8 -* + +from django.conf import settings from django.conf.urls import patterns, include, url +from django.conf.urls.static import static import autocomplete_light @@ -69,4 +73,9 @@ urlpatterns = patterns( url(r'^utile_bda/bda_diff$', 'gestioncof.views.liste_bdadiff'), url(r'^utile_cof/diff_cof$', 'gestioncof.views.liste_diffcof'), url(r'^utile_bda/bda_revente$', 'gestioncof.views.liste_bdarevente'), -) +) + \ + (static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + if settings.DEBUG + else []) +# Si on est en production, MEDIA_ROOT est servi par Apache. +# Il faut dire à Django de servir MEDIA_ROOT lui-même en développement. From f177ef93af89df21aebe992eb61d8dd4559c1857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Bastian?= Date: Sat, 9 Jul 2016 23:06:59 +0100 Subject: [PATCH 3/3] Style and security changes According to MR discussion. --- cof/settings_dev.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cof/settings_dev.py b/cof/settings_dev.py index 471b8349..36cd8a3a 100644 --- a/cof/settings_dev.py +++ b/cof/settings_dev.py @@ -119,7 +119,7 @@ STATIC_URL = '/static/' # Media upload (through ImageField, SiteField) # https://docs.djangoproject.com/en/1.9/ref/models/fields/ -MEDIA_ROOT = './media/' +MEDIA_ROOT = os.path.join(BASE_DIR, 'media/') MEDIA_URL = '/media/' # Various additional settings