From dd08dc74f69d8e80832b7917bd794ba789e4b5d9 Mon Sep 17 00:00:00 2001 From: Nadege Date: Tue, 26 Nov 2019 15:19:44 +0100 Subject: [PATCH] praktikum Aufgabe7 --- news/settings.py | 2 +- news/urls.py | 2 ++ posts/forms.py | 16 ++++++++++++++++ posts/templates/posts/edit.html | 11 +++++++++++ posts/templates/posts/notice.html | 16 ++++++++++------ posts/urls.py | 5 ++++- posts/views.py | 28 ++++++++++++++++++++++++++-- 7 files changed, 70 insertions(+), 10 deletions(-) create mode 100644 posts/forms.py create mode 100644 posts/templates/posts/edit.html diff --git a/news/settings.py b/news/settings.py index 187590b..39a0701 100644 --- a/news/settings.py +++ b/news/settings.py @@ -105,7 +105,7 @@ AUTH_PASSWORD_VALIDATORS = [ # Internationalization # https://docs.djangoproject.com/en/2.2/topics/i18n/ -LANGUAGE_CODE = 'en-us' +LANGUAGE_CODE = 'de-de' TIME_ZONE = 'UTC' diff --git a/news/urls.py b/news/urls.py index 8453b5d..7656ddc 100644 --- a/news/urls.py +++ b/news/urls.py @@ -13,6 +13,7 @@ Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ +from django.conf.urls import url from django.contrib import admin from django.urls import path,include from posts import views @@ -20,4 +21,5 @@ from posts import views urlpatterns = [ path('posts/', include('posts.urls')), path('admin/', admin.site.urls), + ] diff --git a/posts/forms.py b/posts/forms.py new file mode 100644 index 0000000..0e02e7a --- /dev/null +++ b/posts/forms.py @@ -0,0 +1,16 @@ +from django import forms +import datetime + + + + +class NoticeForm(forms.Form): + date_formats = ['%d.%m.%Y', '%d.%m.%y'] + title = forms.CharField(label='Titel', max_length=80) + text = forms.CharField(label='Text', max_length=400) + start = forms.DateField(label='Von', + input_formats=date_formats, + initial=datetime.date.today) + end = forms.DateField(label='Bis', + input_formats=date_formats, + initial=datetime.date.today) \ No newline at end of file diff --git a/posts/templates/posts/edit.html b/posts/templates/posts/edit.html new file mode 100644 index 0000000..147a573 --- /dev/null +++ b/posts/templates/posts/edit.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} +{% block content %} + +

Neue Nachricht

+
+ {% csrf_token %} + {{ form.as_p }} + +
+ +{% endblock %} \ No newline at end of file diff --git a/posts/templates/posts/notice.html b/posts/templates/posts/notice.html index 7bd0454..43e8f41 100644 --- a/posts/templates/posts/notice.html +++ b/posts/templates/posts/notice.html @@ -3,14 +3,18 @@

Seite Infos

- {% for notice in allnotice %} -
-

{{ notice.notice_title }}

-

{{ notice.notice_text |linebreaks }}

-
- {% empty %} +
+
+ {% for notice in allnotice %} +
{{ notice.notice_title }}
+

{{ notice.notice_text |linebreaks }}

+

Nachricht Löschen

{% endfor %} +

Neue Nachricht

+
+
+ {% endblock %} \ No newline at end of file diff --git a/posts/urls.py b/posts/urls.py index 6533d19..7d52370 100644 --- a/posts/urls.py +++ b/posts/urls.py @@ -1,3 +1,4 @@ +from django.conf.urls import url from django.urls import path from posts import views @@ -5,5 +6,7 @@ urlpatterns = [ path('notice', views.index, name='index'), path('welcome', views.welcome_seite), path('home', views.welcome_seite), - path('about', views.about_seite) + path('about', views.about_seite), + url(r'^new', views.new, name='new'), + path('delete/', views.delete, name ='delete') ] \ No newline at end of file diff --git a/posts/views.py b/posts/views.py index 06560ee..9e5a7c5 100644 --- a/posts/views.py +++ b/posts/views.py @@ -1,5 +1,8 @@ -from django.shortcuts import render +from django.http import HttpResponse +from django.shortcuts import render, redirect from django.utils import timezone + +from posts.forms import NoticeForm from posts.models import Notice # Create your views here. @@ -13,4 +16,25 @@ def welcome_seite(request): return render(request, 'posts/index.html') def about_seite(request): - return render(request, 'posts/about.html') \ No newline at end of file + return render(request, 'posts/about.html') + +def new(request): + if request.method == "POST": + form = NoticeForm(request.POST) + if form.is_valid(): + newNotice = Notice(notice_title=form.cleaned_data['title'], + notice_text=form.cleaned_data['text'], + pub_start=form.cleaned_data['start'], + pub_end=form.cleaned_data['end']) + newNotice.save() + return redirect('index') + context = {'form': NoticeForm()} + return render(request, 'posts/edit.html', context) + + +def delete(request, deleteId = None): + if deleteId != None: + delNotice = Notice.objects.get(id=deleteId) + if delNotice != None: + delNotice.delete() + return redirect('index')