From abdc173cc148b7ac62b48752d8f90232be94e96d Mon Sep 17 00:00:00 2001 From: j Date: Tue, 5 Dec 2017 19:10:17 +0100 Subject: [PATCH] add sections, general cleanup --- camp/settings.py | 9 ++++- camp/urls.py | 16 +++++++- content/models.py | 12 ++++++ content/static/css/main.css | 2 + content/templates/base.html | 22 +++++------ content/templates/detail.html | 4 +- content/templates/index.html | 22 +++++------ content/templates/project.html | 23 ------------ content/templates/projects.html | 22 +++++++++++ content/views.py | 66 ++++++++++++++++++++++++++++++--- requirements.txt | 1 + 11 files changed, 140 insertions(+), 59 deletions(-) delete mode 100644 content/templates/project.html create mode 100644 content/templates/projects.html create mode 100644 requirements.txt diff --git a/camp/settings.py b/camp/settings.py index d45093f..66356f4 100644 --- a/camp/settings.py +++ b/camp/settings.py @@ -37,6 +37,9 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + + 'django_extensions', + 'content', ] @@ -121,7 +124,11 @@ USE_TZ = True # https://docs.djangoproject.com/en/1.11/howto/static-files/ STATIC_URL = '/static/' + +IMAGE_PREFIX = 'http://studio.camp/images/' + try: from local_settings import * except: - pass \ No newline at end of file + pass + diff --git a/camp/urls.py b/camp/urls.py index 639e6eb..a7e27ce 100644 --- a/camp/urls.py +++ b/camp/urls.py @@ -20,7 +20,19 @@ from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$', views.index, name='index'), - url(r'^content/(?P\w+)/$', views.content, name='content'), - url(r'^project/', views.project) + + url(r'^.*index.php$', views.redirect_index, name='redirect_index'), + url(r'^.*event.php$', views.redirect_event, name='redirect_event'), + + url(r'^projects/', views.projects, name='projects'), + url(r'^events/', views.events, name='events'), + url(r'^works/', views.works, name='works'), + url(r'^texts/', views.texts, name='texts'), + + url(r'^about/', views.about, name='about'), + url(r'^contact/', views.contact, name='contact'), + + + url(r'^(?P.+)/$', views.content, name='content'), ] diff --git a/content/models.py b/content/models.py index da421f9..7137678 100644 --- a/content/models.py +++ b/content/models.py @@ -1,7 +1,9 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals +from django.conf import settings from django.db import models +from django.urls import reverse # Create your models here. @@ -84,6 +86,13 @@ class Content(models.Model): managed = True db_table = 'content' + @property + def image_url(self): + if self.image: + return settings.IMAGE_PREFIX + self.image + + def get_absolute_url(self): + return reverse('content', kwargs={'shortname': self.shortname}) class ContentContent(models.Model): @@ -204,6 +213,9 @@ class Videos(models.Model): # not used managed = False db_table = 'videos' + def image_url(self): + return settings.IMAGE_PREFIX + self.image + class Views(models.Model): name = models.CharField(max_length=255) diff --git a/content/static/css/main.css b/content/static/css/main.css index 19e2322..cf667d2 100644 --- a/content/static/css/main.css +++ b/content/static/css/main.css @@ -35,6 +35,8 @@ body, h1, h2, h3, h4, h5, h6 { .sidebar-date { text-transform: uppercase; font-size: 0.7em; + font-weight: bold; + color: #ef4e5c; } .special-column { diff --git a/content/templates/base.html b/content/templates/base.html index a03dbe5..3b651d4 100644 --- a/content/templates/base.html +++ b/content/templates/base.html @@ -18,13 +18,13 @@
@@ -43,12 +43,8 @@ {% load static %} - + - - - \ No newline at end of file + diff --git a/content/templates/detail.html b/content/templates/detail.html index ed26496..c8c6398 100644 --- a/content/templates/detail.html +++ b/content/templates/detail.html @@ -4,11 +4,11 @@ {% block content %} - +

{{ content.title }}

{{ content.header|safe }}

{{ content.body|safe }}

- {% endblock %} \ No newline at end of file + {% endblock %} diff --git a/content/templates/index.html b/content/templates/index.html index 220c06e..0ea552c 100644 --- a/content/templates/index.html +++ b/content/templates/index.html @@ -7,14 +7,12 @@ {% for content in latest_content_list %} {% if forloop.counter == 3 %}
- +
-

{{content.title}}

-
Tate Modern
- 29th March, 2017, 7:00 pm
- South Tank
- -

{{content.body|striptags|truncatechars:250}} read more

+

{{content.title}}

+

+ {{content.body|striptags|truncatechars:250}} read more +

{% endif %} {% endfor %} @@ -27,12 +25,12 @@ {% for content in latest_content_list %}
- +
- {{ content.title }} - + {{ content.title }} + + {{ conntent.header }}
{% endfor %} @@ -42,4 +40,4 @@
-{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/content/templates/project.html b/content/templates/project.html deleted file mode 100644 index fc4c264..0000000 --- a/content/templates/project.html +++ /dev/null @@ -1,23 +0,0 @@ -{% extends 'base.html' %} - -{% block content %} -
- -
- - {% for content in content %} -
-
- -
-
- {{ content.title }} - -
-
- {% endfor %} -
-
- - {% endblock %} \ No newline at end of file diff --git a/content/templates/projects.html b/content/templates/projects.html new file mode 100644 index 0000000..fb12335 --- /dev/null +++ b/content/templates/projects.html @@ -0,0 +1,22 @@ +{% extends 'base.html' %} + +{% block content %} +
+ +
+ {% for content in content %} +
+
+ +
+
+ {{ content.title }} + + {{content.header|striptags|truncatechars:150|safe}} read more +
+
+ {% endfor %} +
+
+ + {% endblock %} diff --git a/content/views.py b/content/views.py index e7c4eb1..6150b9f 100644 --- a/content/views.py +++ b/content/views.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.http import HttpResponse -from django.shortcuts import get_object_or_404, render +from django.shortcuts import get_object_or_404, render, redirect +from django.urls import reverse + from .models import Content -# Create your views here. def index(request): latest_content_list = Content.objects.order_by('-datestart')[:5] @@ -12,9 +13,62 @@ def index(request): return render(request, 'index.html', context) def content(request, shortname): - content = get_object_or_404(Content, shortname = shortname) + content = get_object_or_404(Content, shortname=shortname) return render(request, 'detail.html', {'content': content}) -def project(request): - content = Content.objects.filter(type=3) - return render(request, 'project.html', {'content': content}) \ No newline at end of file +def projects(request): + content = Content.objects.filter(type__name='ongoing').exclude(shortname='').order_by('-datestart') + return render(request, 'projects.html', { + 'content': content, + 'title': 'Projects' + }) + +def events(request): + content = Content.objects.filter(type__name='events').exclude(shortname='') + content = Content.objects.filter(type__name='events').exclude(shortname='').order_by('-datestart') + return render(request, 'projects.html', { + 'content': content, + 'title': 'Upcoming Events' + }) + +def works(request): + content = Content.objects.filter(type__name='works').exclude(shortname='').order_by('-datestart') + return render(request, 'projects.html', { + 'content': content, + 'title': 'Works' + }) + +def texts(request): + content = Content.objects.filter(type__name='texts').exclude(shortname='') + return render(request, 'projects.html', { + 'content': content, + 'title': 'Texts' + }) + +def about(request): + content = get_object_or_404(Content, shortname='about') + return render(request, 'detail.html', {'content': content}) + +def contact(request): + content = get_object_or_404(Content, shortname='contact') + return render(request, 'detail.html', {'content': content}) + + +def redirect_index(request): + segment = request.GET.get('show') + if segment == 'pastevents': + return redirect(reverse('works')) + elif segment == 'contact': + return redirect(reverse('contact')) + return redirect(reverse('index')) + +def redirect_event(request): + shortname = request.GET.get('this') + if shortname: + return redirect(reverse('content', kwargs={'shortname': shortname})) + id = request.GET.get('id') + if id: + content = get_object_or_404(Content, id=id) + return redirect(reverse('content', kwargs={'shortname': content.shortname})) + + return redirect(reverse('events')) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..d3e4ba5 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +django