This commit is contained in:
Oliver
2023-12-04 13:09:31 +01:00
commit 2d7af0e65f
22 changed files with 488 additions and 0 deletions
View File
+5
View File
@@ -0,0 +1,5 @@
from django.contrib import admin
from .models import Notice
admin.site.register(Notice)
+6
View File
@@ -0,0 +1,6 @@
from django.apps import AppConfig
class PollsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'polls'
+14
View File
@@ -0,0 +1,14 @@
from django import forms
import datetime
class NoticeForm(forms.Form):
date_formats = ['%d.%m.%Y', '%d.%m.%y']
notice_title = forms.CharField(label='Titel', max_length=80)
notice_text = forms.CharField(label='Text', max_length=400)
pub_start = forms.DateField(label='Von',
input_formats=date_formats,
initial=datetime.date.today)
pub_end = forms.DateField(label='Bis',
input_formats=date_formats,
initial=datetime.date.today)
+26
View File
@@ -0,0 +1,26 @@
# Generated by Django 4.2.6 on 2023-11-12 18:36
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Notice',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('notice_title', models.CharField(max_length=80)),
('notice_text', models.CharField(max_length=400)),
('pub_start', models.DateTimeField()),
('pub_end', models.DateTimeField()),
],
),
]
View File
+9
View File
@@ -0,0 +1,9 @@
from django.db import models
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()
+3
View File
@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.
+10
View File
@@ -0,0 +1,10 @@
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('new', views.new, name='new'),
path('delete/<int:deleteId>', views.delete, name='delete'),
]
+41
View File
@@ -0,0 +1,41 @@
from django.shortcuts import render, redirect
from .models import Notice
from django.utils import timezone
from .forms import NoticeForm
from django.contrib.auth.decorators import login_required
@login_required
def new(request):
if request.method == 'POST':
form = NoticeForm(request.POST)
if form.is_valid():
notice = Notice()
notice.notice_title = form.cleaned_data['notice_title']
notice.notice_text = form.cleaned_data['notice_text']
notice.pub_start = form.cleaned_data['pub_start']
notice.pub_end = form.cleaned_data['pub_end']
notice.save()
return redirect('index')
context = {'form': NoticeForm()}
return render(request, 'polls/edit.html', context)
@login_required
def delete(request, deleteId=None):
if deleteId is not None:
try:
notice = Notice.objects.get(pk=deleteId)
if request.user.id == notice.user_id:
notice.delete()
except:
pass
return redirect('index')
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}
return render(request, 'polls/index.html', context)