diff --git a/VIPSWeb/static/css/vipsweb.css b/VIPSWeb/static/css/vipsweb.css index 223824bf85ea8af731af303dede8d802c237f935..3c7288b61fcba288013777d7593631aa1bc15799 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 abe99296d3faef6bc5cfb6aa9476399facb361af..c993a208bacf6fcda92a77aadfc8c74cda2ee752 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 9d9aa2c9dcca54ddd81e8650ebb647ff49eb5412..19327d005ef0b7e51264f51e6e3aa1161fb0a88f 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 5e7e0b1fef1dc481ee8bf9900cbc44a23394364f..4941afa9a3b8c71aad131691b4452bf99c32ce08 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 0000000000000000000000000000000000000000..87517432378fb8d8f874a4be6933b76f0963fd60 --- /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 0000000000000000000000000000000000000000..8d5db27d08699d764ac64dab3655861d61e7e38c --- /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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/vips_messages/models.py b/vips_messages/models.py index 6bac62a2b00855cec2a1abe25d5787bbc6946f99..465dfc0a66887e42b8467cebd65264a1446fa4be 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"))