urlpatterns = [ | urlpatterns = [ | ||||
path('admin/', admin.site.urls), | path('admin/', admin.site.urls), | ||||
path('', views.index, name='posts'), | |||||
path('posts/', include('posts.urls'), name='posts') | |||||
path('', views.index), | |||||
path('posts/', include('posts.urls')), | |||||
path('accounts/', include('django.contrib.auth.urls')) | |||||
] | ] |
from django.utils import timezone | from django.utils import timezone | ||||
from posts.models import Notice | from posts.models import Notice | ||||
from posts.forms import NoticeForm | from posts.forms import NoticeForm | ||||
from django.http import HttpResponse | |||||
from django.contrib.auth.decorators import login_required | |||||
from django.contrib.admin.views.decorators import staff_member_required | |||||
# Create your views here. | # Create your views here. | ||||
} | } | ||||
return render(request, 'index.html', context) | return render(request, 'index.html', context) | ||||
@login_required | |||||
def new(request): | def new(request): | ||||
if request.method == "POST": | if request.method == "POST": | ||||
form = NoticeForm(request.POST) | form = NoticeForm(request.POST) | ||||
context = {'form': NoticeForm()} | context = {'form': NoticeForm()} | ||||
return render(request, 'edit.html', context) | return render(request, 'edit.html', context) | ||||
@staff_member_required | |||||
def delete(request, value): | def delete(request, value): | ||||
notice = Notice.objects.get(id = value) | notice = Notice.objects.get(id = value) | ||||
notice.delete() | notice.delete() |
<span class="navbar-toggler-icon"></span> | <span class="navbar-toggler-icon"></span> | ||||
</button> | </button> | ||||
<div class="collapse navbar-collapse" id="navbarNav"> | <div class="collapse navbar-collapse" id="navbarNav"> | ||||
<ul class="navbar-nav"> | |||||
<ul class="navbar-nav mr-auto mt-2 mt-lg-0"> | |||||
<li class="nav-item active"> | <li class="nav-item active"> | ||||
<a class="nav-link" href="/posts">Posts</a> | <a class="nav-link" href="/posts">Posts</a> | ||||
</li> | </li> | ||||
<a class="nav-link" href="https://www.google.com/">Google</a> | <a class="nav-link" href="https://www.google.com/">Google</a> | ||||
</li> | </li> | ||||
</ul> | </ul> | ||||
<ul class="navbar-nav"> | |||||
{% if request.user.is_authenticated %} | |||||
<span class="navbar-text"> Willkommen {{ request.user.username }}! </span> | |||||
<li class="nav-item"> | |||||
<a class="nav-link" href="{% url 'logout' %}?next=/posts">Abmelden</a> | |||||
</li> | |||||
{% else %} | |||||
<li class="nav-item"> | |||||
<a class="nav-link" href="{% url 'login' %}?next=/posts">Anmelden</a> | |||||
</li> | |||||
{% endif %} | |||||
</ul> | |||||
</div> | </div> | ||||
</nav> | </nav> | ||||
{% block content %} {% endblock %} | {% block content %} {% endblock %} |
<div class="jumbotron"> | <div class="jumbotron"> | ||||
<h1 class="display-6">{{ notice.notice_title }}</h1> | <h1 class="display-6">{{ notice.notice_title }}</h1> | ||||
<p class="lead">{{notice.notice_text}}</p> | <p class="lead">{{notice.notice_text}}</p> | ||||
<p><a href="{% url 'delete' notice.id %}" class="btn btn-info" role="button">Nachricht löschen</a></p> | |||||
{% if user.is_staff %} | |||||
<p><a href="{% url 'delete' notice.id %}" class="btn btn-info" role="button">Nachricht löschen</a></p> | |||||
{% endif %} | |||||
</div> | </div> | ||||
{% endfor %} | {% endfor %} | ||||
<p><a href="{% url 'new' %}" class="btn btn-info" role="button">Neue Nachricht</a></p> | |||||
{% if user.is_authenticated %} | |||||
<p><a href="{% url 'new' %}" class="btn btn-info" role="button">Neue Nachricht</a></p> | |||||
{% endif %} | |||||
{% endblock content %} | {% endblock content %} |
{% extends 'base.html' %} | |||||
{% block title %} Login {% endblock %} | |||||
{% block content %} | |||||
<div class="container"><form method="post" action="{% url 'login' %}"> | |||||
{% csrf_token %} | |||||
Benutzername: {{ form.username }} | |||||
<br>Passwort: {{ form.password }} <br> | |||||
<button type="submit" class="btn btn-default">Anmelden</button> | |||||
<input type="hidden" name="next" value="{{ next }}" /> | |||||
</form> | |||||
</div> | |||||
{% endblock %} |