From fd86389b2ef158910f40698a0a2b29ba13285a32 Mon Sep 17 00:00:00 2001
From: Dorian Lesbre <dorian.lesbre@gmail.com>
Date: Sun, 25 Apr 2021 17:40:20 +0200
Subject: [PATCH] Added uploadable planning file

---
 home/templates/_planning.html                 |  4 +++-
 home/templates/admin.html                     |  2 ++
 home/urls.py                                  |  5 +++++
 interludes/settings.py                        |  3 +++
 site_settings/admin.py                        |  7 +++++-
 .../migrations/0005_auto_20210425_1732.py     | 22 +++++++++++++++++++
 ...05_remove_sitesettings_planning_caption.py | 17 --------------
 site_settings/models.py                       |  3 +++
 8 files changed, 44 insertions(+), 19 deletions(-)
 create mode 100644 site_settings/migrations/0005_auto_20210425_1732.py
 delete mode 100644 site_settings/migrations/0005_remove_sitesettings_planning_caption.py

diff --git a/home/templates/_planning.html b/home/templates/_planning.html
index 1424d5a..994de6d 100644
--- a/home/templates/_planning.html
+++ b/home/templates/_planning.html
@@ -195,7 +195,7 @@ I.E we set all dates to the first day (Friday) and set groups allowing vertical
 	}
 
 </style>
-{% if settings.planning_caption %}
+
 <div class="caption">
 	<p><strong>Légende :</strong></p>
 	<ul style="list-style-type: none; margin-left:-20px">
@@ -206,4 +206,6 @@ I.E we set all dates to the first day (Friday) and set groups allowing vertical
 		<li><span style="background-color: var(--color_6);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> Autre</li>
 	</ul>
 </div>
+{% if settings.planning_file %}
+	<div></div><a class="button" href="{{ settings.planning_file.url }}"><i class="fa fa-download"></i> Télécharger le planning</a></div>
 {% endif %}
diff --git a/home/templates/admin.html b/home/templates/admin.html
index d18adda..e6230d5 100644
--- a/home/templates/admin.html
+++ b/home/templates/admin.html
@@ -167,6 +167,8 @@
 
 	<h2>Prévisualisation du planning</h2>
 
+	<p>Vous pouver uploader une version PDF dans le réglages (depuis django-admin)</p>
+
 	{% include "_planning.html" %}
 
 	<h2>Répartition des activités</h2>
diff --git a/home/urls.py b/home/urls.py
index 28bf00d..b40e690 100644
--- a/home/urls.py
+++ b/home/urls.py
@@ -1,3 +1,5 @@
+from django.conf import settings
+from django.conf.urls.static import static
 from django.contrib.sitemaps.views import sitemap
 from django.views.generic import RedirectView
 from django.urls import path, include
@@ -26,3 +28,6 @@ urlpatterns = [
 	),
 	path('accounts/', include("accounts.urls")),
 ]
+
+if settings.DEBUG:
+	urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
diff --git a/interludes/settings.py b/interludes/settings.py
index 47d866d..58eca27 100644
--- a/interludes/settings.py
+++ b/interludes/settings.py
@@ -173,6 +173,9 @@ USE_TZ = True
 STATIC_URL = '/static/'
 STATIC_ROOT = os.path.join(BASE_DIR, 'static')
 
+MEDIA_URL = '/media/'
+MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
+
 LOGIN_URL = "accounts:login"
 LOGIN_REDIRECT_URL = "accounts:profile"
 
diff --git a/site_settings/admin.py b/site_settings/admin.py
index b8e4ae8..8f04fda 100644
--- a/site_settings/admin.py
+++ b/site_settings/admin.py
@@ -14,4 +14,9 @@ class SingletonModelAdmin(admin.ModelAdmin):
 
 @admin.register(SiteSettings)
 class SiteSettingsAdmin(SingletonModelAdmin):
-	pass
\ No newline at end of file
+
+	def planning_file_link(self, obj):
+		if obj.file:
+			return "<a href='%s'>download</a>" % (obj.file.url,)
+		else:
+			return "No attachment"
diff --git a/site_settings/migrations/0005_auto_20210425_1732.py b/site_settings/migrations/0005_auto_20210425_1732.py
new file mode 100644
index 0000000..45dec1c
--- /dev/null
+++ b/site_settings/migrations/0005_auto_20210425_1732.py
@@ -0,0 +1,22 @@
+# Generated by Django 3.0.8 on 2021-04-25 15:32
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('site_settings', '0004_sitesettings_planning_caption'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='sitesettings',
+            name='planning_caption',
+        ),
+        migrations.AddField(
+            model_name='sitesettings',
+            name='planning_file',
+            field=models.FileField(blank=True, null=True, upload_to='', verbose_name='Version PDF du planning'),
+        ),
+    ]
diff --git a/site_settings/migrations/0005_remove_sitesettings_planning_caption.py b/site_settings/migrations/0005_remove_sitesettings_planning_caption.py
deleted file mode 100644
index f077d59..0000000
--- a/site_settings/migrations/0005_remove_sitesettings_planning_caption.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# Generated by Django 3.0.8 on 2021-04-25 14:43
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('site_settings', '0004_sitesettings_planning_caption'),
-    ]
-
-    operations = [
-        migrations.RemoveField(
-            model_name='sitesettings',
-            name='planning_caption',
-        ),
-    ]
diff --git a/site_settings/models.py b/site_settings/models.py
index e95f710..7ca8da8 100644
--- a/site_settings/models.py
+++ b/site_settings/models.py
@@ -52,6 +52,9 @@ class SiteSettings(SingletonModel):
 	)
 
 	display_planning = models.BooleanField("Afficher le planning", default=False)
+	planning_file = models.FileField(
+		verbose_name="Version PDF du planning", null=True, blank=True,
+	)
 
 	activities_allocated = models.BooleanField(
 		"Afficher les activités obtenues", default=False,
-- 
GitLab