From 2999c34155da15796ce9cfbb51a6b98bf33d15a3 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@bioforsk.no>
Date: Thu, 3 Mar 2016 10:38:29 +0100
Subject: [PATCH] Adding advertisement functionality to front page

---
 VIPSWeb/static/css/vipsweb.css                |  5 ++++
 VIPSWeb/templates/index.html                  | 13 ++++++++++
 VIPSWeb/views.py                              | 11 ++++++---
 vips_messages/admin.py                        | 11 ++-------
 vips_messages/migrations/0001_initial.py      | 24 +++++++++++++++++++
 .../migrations/0002_auto_20160303_1002.py     | 19 +++++++++++++++
 vips_messages/migrations/__init__.py          |  0
 vips_messages/models.py                       | 10 ++++++++
 8 files changed, 81 insertions(+), 12 deletions(-)
 create mode 100644 vips_messages/migrations/0001_initial.py
 create mode 100644 vips_messages/migrations/0002_auto_20160303_1002.py
 create mode 100644 vips_messages/migrations/__init__.py

diff --git a/VIPSWeb/static/css/vipsweb.css b/VIPSWeb/static/css/vipsweb.css
index 223824bf..3c7288b6 100644
--- a/VIPSWeb/static/css/vipsweb.css
+++ b/VIPSWeb/static/css/vipsweb.css
@@ -817,3 +817,8 @@ ul.nav > li > ul.nav{
     display: block;
     padding: 10px 15px;
 }
+
+div.advertisement {
+	border: 3px solid #008136;
+	padding: 10px 20px 25px 25px;
+}
diff --git a/VIPSWeb/templates/index.html b/VIPSWeb/templates/index.html
index abe99296..c993a208 100644
--- a/VIPSWeb/templates/index.html
+++ b/VIPSWeb/templates/index.html
@@ -110,6 +110,19 @@
 			</div>			
 		</div><!-- End map container -->
 		<div class="col-md-4" id="frontPageRightCol"  style="height: {{settings.MAP_HEIGHT}}px;">
+			{% if advertisements|length > 0 %}
+				{% for advertisement in advertisements %}
+					<div class="row" id="advertisementContainer">
+						<div class="col-md-12 advertisement">
+							{% if advertisement.illustration %}
+							<div class="advertisementIllustration"><img src="{{settings.MEDIA_URL}}{{advertisement.illustration}}" class="img-responsive"/></div>
+							{% endif %}
+							<h3>{{advertisement.ad_heading}}</h3>
+							<p>{{advertisement.ad_text|safe}}</p>
+						</div>
+					</div>
+				{% endfor %}
+			{% endif %}
 			<div class="row" id="myForecastSummariesContainer">
 				<div class="col-md-12 forecastSummaries">
 					<h3 id="forecastsummariesHeading">{% trans "My forecasts" %}</h3>
diff --git a/VIPSWeb/views.py b/VIPSWeb/views.py
index 9d9aa2c9..19327d00 100644
--- a/VIPSWeb/views.py
+++ b/VIPSWeb/views.py
@@ -16,19 +16,24 @@
 # along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
 # 
 # @author: Tor-Einar Skog <tor-einar.skog@nibio.no>
+import datetime
 from django.shortcuts import render
 from django.http import HttpResponse, JsonResponse
 from django.conf import settings
 from django.utils import translation
-from vips_messages.models import Message, MessageTag
+from vips_messages.models import Advertisement
 from organisms.models import CropCategory
 
 def index(request):
     # Get front page categories. This is defined in local_settings.py
-    message_tags = MessageTag.get_message_tags(translation.get_language())
+    #message_tags = MessageTag.get_message_tags(translation.get_language())
+    # Get advertisements, if any
+    #advertisements = Advertisement.objects.exclude(pub_date__gte=datetime.date.today()).exclude(exp_date__lte=datetime.date.today()).order_by('-pub_date')[:1]
+    advertisements = Advertisement.objects.exclude(pub_date__gt=datetime.date.today()).exclude(exp_date__lt=datetime.date.today()).order_by('-pub_date')[:1]
     # Last 10 messages
     context = {
-              'message_tags': message_tags,
+               
+              'advertisements': advertisements,
               'crop_categories': CropCategory.get_crop_categories(translation.get_language())
               }
     return render(request, 'index.html', context)
diff --git a/vips_messages/admin.py b/vips_messages/admin.py
index 5e7e0b1f..4941afa9 100644
--- a/vips_messages/admin.py
+++ b/vips_messages/admin.py
@@ -16,14 +16,7 @@
 # along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
 # 
 
-"""
 from django.contrib import admin
-from messages.models import Message#, MessageTag
+from vips_messages.models import Advertisement
 
-class MessageAdmin(admin.ModelAdmin):
-    list_display = ['pub_date','headline','created_by']
-    list_filter = ['message_tags']
-
-admin.site.register(Message, MessageAdmin)
-admin.site.register(MessageTag)
-"""
\ No newline at end of file
+admin.site.register(Advertisement)
\ No newline at end of file
diff --git a/vips_messages/migrations/0001_initial.py b/vips_messages/migrations/0001_initial.py
new file mode 100644
index 00000000..87517432
--- /dev/null
+++ b/vips_messages/migrations/0001_initial.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Advertisement',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('ad_heading', models.CharField(max_length=200, verbose_name='Overskrift')),
+                ('ad_text', models.TextField()),
+                ('pub_date', models.DateTimeField(verbose_name='Date published')),
+                ('exp_date', models.DateField(verbose_name='Date expired')),
+                ('illustration', models.ImageField(upload_to=b'images/advertisement', verbose_name='Hovedillustrasjon', blank=True)),
+            ],
+        ),
+    ]
diff --git a/vips_messages/migrations/0002_auto_20160303_1002.py b/vips_messages/migrations/0002_auto_20160303_1002.py
new file mode 100644
index 00000000..8d5db27d
--- /dev/null
+++ b/vips_messages/migrations/0002_auto_20160303_1002.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('vips_messages', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='advertisement',
+            name='pub_date',
+            field=models.DateField(verbose_name='Date published'),
+        ),
+    ]
diff --git a/vips_messages/migrations/__init__.py b/vips_messages/migrations/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/vips_messages/models.py b/vips_messages/models.py
index 6bac62a2..465dfc0a 100644
--- a/vips_messages/models.py
+++ b/vips_messages/models.py
@@ -18,6 +18,8 @@
 
 import requests
 from django.conf import settings
+from django.db import models
+from django.utils.translation import ugettext as _
 from datetime import datetime
 
 class MessageTag:
@@ -186,3 +188,11 @@ class Message:
                     message_illustration["caption"] = caption["caption"]
         return message_illustration
 
+
+class Advertisement(models.Model):
+    """ Represents an advertisement to be shown on the frontpage """
+    ad_heading = models.CharField(max_length=200, verbose_name=_("Headline"))
+    ad_text = models.TextField()
+    pub_date = models.DateField(verbose_name=_("Date published"))
+    exp_date = models.DateField(verbose_name=_("Date expired"))
+    illustration = models.ImageField(upload_to='images/advertisement', blank=True, verbose_name=_("Illustration"))
-- 
GitLab