Init
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
from django.contrib import admin
|
||||
from .models import Notice
|
||||
|
||||
admin.site.register(Notice)
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class PollsConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'polls'
|
||||
@@ -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)
|
||||
@@ -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()),
|
||||
],
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
@@ -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'),
|
||||
]
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user