From fbd50e82aa276c8c0483c640f602d32ebdc8799c Mon Sep 17 00:00:00 2001 From: Heimbs Date: Tue, 26 Nov 2019 14:46:59 +0100 Subject: [PATCH] Praktikum 7 Authentifizieren --- news/posts/forms.py | 13 +++++++++ news/posts/urls.py | 4 ++- news/posts/views.py | 47 ++++++++++++++++++++++++++++----- news/templates/posts/edit.html | 18 +++++++++++++ news/templates/posts/index.html | 20 +++++++++++--- 5 files changed, 90 insertions(+), 12 deletions(-) create mode 100644 news/posts/forms.py create mode 100644 news/templates/posts/edit.html diff --git a/news/posts/forms.py b/news/posts/forms.py new file mode 100644 index 0000000..b34b80b --- /dev/null +++ b/news/posts/forms.py @@ -0,0 +1,13 @@ +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) diff --git a/news/posts/urls.py b/news/posts/urls.py index 1587894..0c57226 100644 --- a/news/posts/urls.py +++ b/news/posts/urls.py @@ -2,5 +2,7 @@ from django.urls import path from . import views urlpatterns = [ - path('', views.index, name='posts') + path('', views.index, name='posts'), + path('new', views.new, name='new'), + path('delete/', views.delete, name='delete',) ] \ No newline at end of file diff --git a/news/posts/views.py b/news/posts/views.py index 6ff152c..7071af1 100644 --- a/news/posts/views.py +++ b/news/posts/views.py @@ -1,24 +1,57 @@ -from django.shortcuts import render -from django.http import HttpResponse -from .models import Notice -from django.utils import timezone import logging +from django.shortcuts import render, redirect, render_to_response +from django.http import HttpResponse +from django.utils import timezone +from django.contrib import messages + +from .models import Notice +from .forms import NoticeForm logger = None -def init_loger(): +def init_loger(logger_type): global logger if logger == None: - logger = logging.getLogger('django.db.backends') + logger = logging.getLogger() logger.setLevel(logging.DEBUG) logger.addHandler(logging.StreamHandler()) # Create your views here. def index(request): - init_loger() + init_loger('django.db.backends') notices = Notice.objects.all() notices = Notice.objects.filter(pub_start__lte=timezone.now(), pub_end__gte=timezone.now()) + message = "" + context = { "notices": notices, + 'message': message, } return render(request, 'posts/index.html', context) + +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('posts') + + context = {'form' : NoticeForm()} + return render(request, 'posts/edit.html', context) + +def delete(request, deleteId=None): + init_loger(__name__) + logger.info(deleteId) + message = "" + if deleteId: + delNotice = Notice.objects.get(id=deleteId) + if delNotice: + delNotice.delete() + message = "Notice has been deleted." + return redirect('posts') + + diff --git a/news/templates/posts/edit.html b/news/templates/posts/edit.html new file mode 100644 index 0000000..8a8c5ed --- /dev/null +++ b/news/templates/posts/edit.html @@ -0,0 +1,18 @@ +{% extends 'base.html' %} + +{% block title %} +Index +{% endblock %} + +{% block content %} +
+

New Message

+ +
+
+ {% csrf_token %}{{ form.as_p }} +
+ +
+
+{% endblock %} diff --git a/news/templates/posts/index.html b/news/templates/posts/index.html index 8826ea3..7067d72 100644 --- a/news/templates/posts/index.html +++ b/news/templates/posts/index.html @@ -5,14 +5,26 @@ Index {% endblock %} {% block content %} -
-

Index of News App

+
+

Your Posts

{% for notice in notices %} -

{{ notice.notice_title }}

-

{{ notice.notice_text }}

+
+

{{ notice.notice_title }}

+

{{ notice.notice_text }}

+

Delete

+ {% if message %} + + {% endif %} +
{% endfor %} + +