@@ -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' | |||
@@ -1,9 +1,15 @@ | |||
from django.contrib import admin | |||
from django.urls import path, include | |||
urlpatterns = [ | |||
path('posts/', include('posts.urls')), | |||
path('admin/', admin.site.urls), | |||
] | |||
@@ -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) |
@@ -2,5 +2,7 @@ from django.urls import path | |||
from . import views | |||
urlpatterns = [ | |||
path('', views.index, name='index') | |||
path('', views.index, name='index'), | |||
path('new', views.new, name='new'), | |||
path('delete/<int:deleteId>', views.delete, name='delete'), | |||
] |
@@ -1,13 +1,34 @@ | |||
from django.shortcuts import render | |||
from django.shortcuts import render, redirect | |||
from .models import Notice | |||
from django.utils import timezone | |||
from .forms import NoticeForm | |||
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 index (request): | |||
def index(request): | |||
notices = Notice.objects.all() | |||
notices = notices.filter(pub_start__lte=timezone.now()) | |||
notices = notices.filter(pub_end__gte=timezone.now()) | |||
context = { "notices" : notices } | |||
context = {"notices": notices} | |||
return render(request, 'posts/index.html', context) | |||
def delete(request, deleteId=None): | |||
if deleteId !=None: | |||
delNotice = Notice.objects.get(id=deleteId) | |||
if delNotice != None: | |||
delNotice.delete() | |||
return redirect('index') | |||
@@ -19,4 +19,6 @@ | |||
{% block navigation %} Platzhalter {% endblock %} | |||
{% block content %} Platzhalter {% endblock %} | |||
</body> | |||
</html> | |||
</html> | |||
@@ -0,0 +1,26 @@ | |||
{% extends 'base.html' %} | |||
{% block title %} | |||
News | |||
{% endblock %} | |||
{% block content %} | |||
<div class="container"> | |||
<h1>Neue Nachricht</h1> | |||
<form method="POST"> | |||
{% csrf_token %} | |||
{{ form.as_p }} | |||
<button type="submit" class="save btn btn-default">Speichern</button> | |||
</form> | |||
</div> | |||
{% endblock %} | |||
@@ -11,40 +11,26 @@ | |||
{% for notice in notices %} | |||
<h3>{{ notice.notice_title }}</h3> | |||
<p>{{ notice.notice_text }}</p> | |||
{% endfor %} | |||
<p><a href="{% url 'new' %}" class="btn btn-info" role="button">Neue Nachricht</a></p> | |||
<p><a href="{% url 'delete' deleteId=notice.id %}" class="btn btn-danger"> | |||
Meldung loeschen</a></p> | |||
{% endfor %} | |||
</div> | |||
{% endblock %} | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<meta charset="utf-8"> | |||
<title>Navbar Example</title> | |||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"> | |||
</head> | |||
<body> | |||
<h4>.navbar .navbar-expand-sm</h4> | |||
<!-- A horizontal navbar that becomes vertical on small screens --> | |||
<nav class="navbar navbar-expand-sm bg-dark"> | |||
<!-- Links --> | |||
<ul class="navbar-nav"> | |||
<li class="nav-item"> | |||
<a class="nav-link" href="http://th-nuernberg.de">efi-homepage</a> | |||
</li> | |||
<li class="nav-item"> | |||
<a class="nav-link" href="http://google.de">Google</a> | |||
</li> | |||
</ul> | |||
</nav> | |||
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script> | |||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script> | |||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> | |||
</body> | |||
</html> | |||
<h1> Index der Polls-Applikation</h1> | |||
{% endblock %} | |||