From fccc0f39d60731a7299c47202f4d5f263c7ef543 Mon Sep 17 00:00:00 2001 From: Sally Date: Fri, 23 Nov 2018 12:38:10 +0100 Subject: [PATCH] Solution of 05 --- .gitignore | 90 +++++++++++++++++++++++++++++++ MEIM_Lsg/settings.py | 2 + db.sqlite3 | Bin 0 -> 45056 bytes posts/migrations/0001_initial.py | 24 +++++++++ posts/models.py | 6 ++- posts/views.py | 13 ++++- templates/index.html | 10 ++-- 7 files changed, 139 insertions(+), 6 deletions(-) create mode 100644 .gitignore create mode 100644 posts/migrations/0001_initial.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..175acde --- /dev/null +++ b/.gitignore @@ -0,0 +1,90 @@ +### OSX ### +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear on external disk +.Spotlight-V100 +.Trashes + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.cache +nosetests.xml +coverage.xml + +# Translations +*.mo +*.pot + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + + +### Django ### +*.log +*.pot +*.pyc +**__pycache__/ +local_settings.py + +.env +**/db.sqlite3 + +# PyCharm +**/.idea/ diff --git a/MEIM_Lsg/settings.py b/MEIM_Lsg/settings.py index 46e8147..ca52130 100644 --- a/MEIM_Lsg/settings.py +++ b/MEIM_Lsg/settings.py @@ -37,6 +37,8 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'posts.apps.PostsConfig' #you could also add 'posts' to register everything in your app + ] MIDDLEWARE = [ diff --git a/db.sqlite3 b/db.sqlite3 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f4f79127a7f8f6bbb8fab1c22e81dd1e8f48913a 100644 GIT binary patch literal 45056 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 literal 0 HcmV?d00001 diff --git a/posts/migrations/0001_initial.py b/posts/migrations/0001_initial.py new file mode 100644 index 0000000..8be32f9 --- /dev/null +++ b/posts/migrations/0001_initial.py @@ -0,0 +1,24 @@ +# Generated by Django 2.1.3 on 2018-11-23 11:25 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Notice', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('notice_title', models.CharField(max_length=80)), + ('notice_text', models.CharField(max_length=400)), + ('pub_start', models.DateTimeField()), + ('pub_end', models.DateTimeField()), + ], + ), + ] diff --git a/posts/models.py b/posts/models.py index 71a8362..0a44233 100644 --- a/posts/models.py +++ b/posts/models.py @@ -1,3 +1,7 @@ from django.db import models -# Create your models here. +class Notice(models.Model): + notice_title = models.CharField(max_length=80) + notice_text = models.CharField(max_length=400) + pub_start = models.DateTimeField() + pub_end = models.DateTimeField() diff --git a/posts/views.py b/posts/views.py index ae418fe..803aeb3 100644 --- a/posts/views.py +++ b/posts/views.py @@ -1,9 +1,20 @@ from django.shortcuts import render +from datetime import timedelta +from django.utils import timezone +from posts.models import Notice # Create your views here. + +#Titel und die Texte aller Meldungen, deren Veröffentlichungsdatum vor und der Endedatum nach dem aktuellen Datum liegt. def home(request, value=""): + now = timezone.now() + notices = Notice.objects.all() + display_notices = list() + for notice in notices: + if notice.pub_start < now and notice.pub_end > now: + display_notices.append(notice) context = { "title": "Beboop", - "message": value + "notices": display_notices } return render(request, 'index.html', context) \ No newline at end of file diff --git a/templates/index.html b/templates/index.html index 536b3d2..dba21de 100644 --- a/templates/index.html +++ b/templates/index.html @@ -3,8 +3,10 @@ {% block title %} {{ title }} {% endblock title %} {% block content %} -
-

My first post!

-

{{message}}

-
+ {% for notice in notices %} +
+

{{ notice.notice_title }}

+

{{notice.notice_text}}

+
+ {% endfor %} {% endblock content %} \ No newline at end of file