diff --git a/posts/forms.py b/posts/forms.py new file mode 100644 index 0000000..f54de00 --- /dev/null +++ b/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) \ No newline at end of file diff --git a/posts/models.py b/posts/models.py index 71a8362..6f277e8 100644 --- a/posts/models.py +++ b/posts/models.py @@ -1,3 +1,9 @@ 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() \ No newline at end of file diff --git a/posts/urls.py b/posts/urls.py index 1c6117e..4f1c194 100644 --- a/posts/urls.py +++ b/posts/urls.py @@ -2,5 +2,7 @@ from django.urls import path from . import views urlpatterns = [ - path('', views.index, name = 'index') + path('edit', views.new, name='new'), + path('', views.index, name = 'index'), + path('delete/int:id/', views.delete, name ='delete') ] \ No newline at end of file diff --git a/posts/views.py b/posts/views.py index 13d9a94..710cb3f 100644 --- a/posts/views.py +++ b/posts/views.py @@ -1,5 +1,31 @@ -from django.shortcuts import render -from django.http import HttpResponse +from django.shortcuts import render, redirect, HttpResponse +from django.utils import timezone + +from .forms import NoticeForm +from .models import Notice + def index(request): - return HttpResponse("Index der Seite Posts Applikation") + notices = Notice.objects.all() + notices.filter(pub_start__lte=timezone.now()) + notices.filter(pub_start__gte=timezone.now()) + context = { "notices": notices } + 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('index') + context = {'form': NoticeForm()} + return render(request, 'posts/edit.html', context) + + +def delete(request): + notices = Notice.objects.all() + notices.filter() \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index b0c7b59..0f23c67 100644 --- a/templates/base.html +++ b/templates/base.html @@ -3,13 +3,9 @@ My first page - - - - -
+
{% block body %} Platzhalter {% endblock body %}
diff --git a/templates/posts/edit.html b/templates/posts/edit.html new file mode 100644 index 0000000..ffc685f --- /dev/null +++ b/templates/posts/edit.html @@ -0,0 +1,10 @@ +{% extends "base.html" %} + +{% block body %} +

Neue Nachricht

+
+ {% csrf_token %} + {{ form.as_p }} + +
+{% endblock %} \ No newline at end of file diff --git a/templates/posts/index.html b/templates/posts/index.html index de32063..7cdf913 100644 --- a/templates/posts/index.html +++ b/templates/posts/index.html @@ -1,2 +1,17 @@ {% extends "base.html" %} -{% block body %}

sytle="text-align:center" {{ name }}

{% endblock body %} \ No newline at end of file + +{% block title %} + News +{% endblock %} + +{% block body %} + +
+ {% for notice in notices %} +

{{ notice.notice_title }}

+

{{ notice.notice_text }}

+

href={% url 'delete' id=n %} Löschen

+ {% endfor %} +
+

Neue Nachricht

+{% endblock %} \ No newline at end of file diff --git a/webengdjango/settings.py b/webengdjango/settings.py index 960c659..31f5a3f 100644 --- a/webengdjango/settings.py +++ b/webengdjango/settings.py @@ -31,6 +31,7 @@ ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ + 'posts.apps.PostsConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', @@ -104,7 +105,7 @@ AUTH_PASSWORD_VALIDATORS = [ # Internationalization # https://docs.djangoproject.com/en/3.2/topics/i18n/ -LANGUAGE_CODE = 'en-us' +LANGUAGE_CODE = 'de-de' TIME_ZONE = 'UTC'