Messages
This commit is contained in:
parent
2d7af0e65f
commit
845cc0d1ab
@ -121,4 +121,12 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
|||||||
LOGIN_REDIRECT_URL = '/polls/'
|
LOGIN_REDIRECT_URL = '/polls/'
|
||||||
LOGOUT_REDIRECT_URL = '/polls/'
|
LOGOUT_REDIRECT_URL = '/polls/'
|
||||||
|
|
||||||
|
from django.contrib.messages import constants as messages
|
||||||
|
|
||||||
|
MESSAGE_TAGS = {
|
||||||
|
messages.DEBUG: 'alert-secondary',
|
||||||
|
messages.INFO: 'alert-info',
|
||||||
|
messages.SUCCESS: 'alert-success',
|
||||||
|
messages.WARNING: 'alert-warning',
|
||||||
|
messages.ERROR: 'alert-danger',
|
||||||
|
}
|
||||||
|
18
polls/migrations/0002_notice_user_id.py
Normal file
18
polls/migrations/0002_notice_user_id.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 4.2.6 on 2023-12-07 13:12
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('polls', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='notice',
|
||||||
|
name='user_id',
|
||||||
|
field=models.IntegerField(blank=True, default=None, null=True),
|
||||||
|
),
|
||||||
|
]
|
@ -4,6 +4,7 @@ from django.db import models
|
|||||||
class Notice(models.Model):
|
class Notice(models.Model):
|
||||||
notice_title = models.CharField(max_length=80)
|
notice_title = models.CharField(max_length=80)
|
||||||
notice_text = models.CharField(max_length=400)
|
notice_text = models.CharField(max_length=400)
|
||||||
|
user_id = models.IntegerField(default=None, null=True, blank=True)
|
||||||
pub_start = models.DateTimeField()
|
pub_start = models.DateTimeField()
|
||||||
pub_end = models.DateTimeField()
|
pub_end = models.DateTimeField()
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ from .models import Notice
|
|||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from .forms import NoticeForm
|
from .forms import NoticeForm
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
|
from django.contrib import messages
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@ -16,8 +17,13 @@ def new(request):
|
|||||||
notice.notice_text = form.cleaned_data['notice_text']
|
notice.notice_text = form.cleaned_data['notice_text']
|
||||||
notice.pub_start = form.cleaned_data['pub_start']
|
notice.pub_start = form.cleaned_data['pub_start']
|
||||||
notice.pub_end = form.cleaned_data['pub_end']
|
notice.pub_end = form.cleaned_data['pub_end']
|
||||||
|
notice.user_id = request.user.id
|
||||||
notice.save()
|
notice.save()
|
||||||
|
messages.success(request, f"Neue Nachricht erstellt")
|
||||||
return redirect('index')
|
return redirect('index')
|
||||||
|
else:
|
||||||
|
for msg in form.error_messages:
|
||||||
|
messages.error(request, f"{msg}: {form.error_messages[msg]}")
|
||||||
context = {'form': NoticeForm()}
|
context = {'form': NoticeForm()}
|
||||||
return render(request, 'polls/edit.html', context)
|
return render(request, 'polls/edit.html', context)
|
||||||
|
|
||||||
@ -26,10 +32,13 @@ def delete(request, deleteId=None):
|
|||||||
if deleteId is not None:
|
if deleteId is not None:
|
||||||
try:
|
try:
|
||||||
notice = Notice.objects.get(pk=deleteId)
|
notice = Notice.objects.get(pk=deleteId)
|
||||||
if request.user.id == notice.user_id:
|
if request.user.id == notice.user_id or request.user.is_staff:
|
||||||
notice.delete()
|
notice.delete()
|
||||||
|
messages.success(request, f"Nachricht gelöscht")
|
||||||
|
else:
|
||||||
|
messages.warning(request, f"Keine Berechtigung")
|
||||||
except:
|
except:
|
||||||
pass
|
messages.warning(request, f"Nachricht nicht gefunden")
|
||||||
return redirect('index')
|
return redirect('index')
|
||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
|
@ -45,6 +45,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
|
{% for message in messages %}
|
||||||
|
<div class="alert {{ message.tags }}" role="alert">
|
||||||
|
{{ message }}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
{% block content %} Platzhalter {% endblock %}
|
{% block content %} Platzhalter {% endblock %}
|
||||||
|
|
||||||
|
@ -12,7 +12,9 @@
|
|||||||
<h3>{{ notice.notice_title }}</h3>
|
<h3>{{ notice.notice_title }}</h3>
|
||||||
<p>{{ notice.notice_text }}</p>
|
<p>{{ notice.notice_text }}</p>
|
||||||
|
|
||||||
{% if user.is_staff %}
|
|
||||||
|
|
||||||
|
{% if user.is_staff or notice.user_id == user.id %}
|
||||||
<p>
|
<p>
|
||||||
<a href="{% url 'delete' deleteId=notice.id %}"
|
<a href="{% url 'delete' deleteId=notice.id %}"
|
||||||
class="btn btn-danger">
|
class="btn btn-danger">
|
||||||
@ -25,12 +27,14 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
|
{% if user.is_authenticated %}
|
||||||
<p>
|
<p>
|
||||||
<a href="{% url 'new' %}"
|
<a href="{% url 'new' %}"
|
||||||
class="btn btn-primary">
|
class="btn btn-primary">
|
||||||
Neue Meldung erstellen
|
Neue Meldung erstellen
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user