add wagtail

This commit is contained in:
Nikola Kubeczkova 2025-03-13 08:14:46 +01:00
parent b9aac50aa4
commit 6df90a66d3
6 changed files with 134 additions and 2 deletions

View file

@ -28,8 +28,8 @@ from django.conf import settings
from tko.views import ContactView, NewArticleListView, AllArticleListView, EventListView
urlpatterns = [
path('django-admin/', admin.site.urls),
path('admin/', include(wagtailadmin_urls)),
path('', include(wagtailadmin_urls)),
path('admin/', admin.site.urls),
path('create-contact/', ContactView.as_view(), name='create-contact'),
path('load-articles/', NewArticleListView.as_view(), name='load-articles'),
path('load-all-articles/', AllArticleListView.as_view(), name='load-all-articles'),

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

View file

@ -0,0 +1,39 @@
# Generated by Django 5.1.5 on 2025-03-12 17:04
import datetime
import django.db.models.deletion
import wagtail.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('tko', '0004_alter_article_image'),
('wagtailcore', '0094_alter_page_locale'),
('wagtailimages', '0027_image_description'),
]
operations = [
migrations.AlterField(
model_name='article',
name='date',
field=models.DateField(auto_now_add=True),
),
migrations.CreateModel(
name='ArticlePage',
fields=[
('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
('name', models.CharField(max_length=100)),
('content', wagtail.fields.RichTextField()),
('date', models.DateField(default=datetime.date.today)),
('author', models.CharField(max_length=100)),
('active_to', models.DateField(null=True)),
('image', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='wagtailimages.image')),
],
options={
'abstract': False,
},
bases=('wagtailcore.page',),
),
]

View file

@ -0,0 +1,47 @@
# Generated by Django 5.1.5 on 2025-03-12 19:01
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('tko', '0005_alter_article_date_articlepage'),
('wagtailcore', '0094_alter_page_locale'),
('wagtailimages', '0027_image_description'),
]
operations = [
migrations.CreateModel(
name='EventPage',
fields=[
('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
('start_date', models.DateTimeField()),
('end_date', models.DateTimeField()),
('color', models.CharField(max_length=100)),
],
options={
'abstract': False,
},
bases=('wagtailcore.page',),
),
migrations.RemoveField(
model_name='articlepage',
name='active_to',
),
migrations.AlterField(
model_name='articlepage',
name='content',
field=models.CharField(max_length=500),
),
migrations.RemoveField(
model_name='articlepage',
name='image',
),
migrations.AddField(
model_name='articlepage',
name='image',
field=models.ManyToManyField(to='wagtailimages.image'),
),
]

View file

@ -1,4 +1,9 @@
from django.db import models
from wagtail.admin.panels import FieldPanel
from wagtail.fields import RichTextField
from wagtail.models import Page
from datetime import date
# Create your models here.
class Contact(models.Model):
@ -32,3 +37,21 @@ class Event(models.Model):
def __str__(self):
return self.title
class EventPage(Page):
start_date = models.DateTimeField()
end_date = models.DateTimeField()
color = models.CharField(max_length=100)
content_panels = Page.content_panels + ["start_date", "end_date", "color"]
class ArticlePage(Page):
name = models.CharField(max_length=100)
content = models.CharField(max_length=500)
image = models.ManyToManyField('wagtailimages.Image')
date = models.DateField(default=date.today)
author = models.CharField(max_length=100)
content_panels = Page.content_panels + ["name", "content", "image", "date", "author", "expire_at"]

View file

@ -0,0 +1,23 @@
from wagtail import hooks
from wagtail.admin.viewsets.pages import PageListingViewSet
from tko.models import ArticlePage
from wagtail.admin.wagtail_hooks import ExplorerMenuItem
class ArticlePageListingViewSet(PageListingViewSet):
icon = "globe"
menu_label = "Articles"
add_to_admin_menu = True
model = ArticlePage
article_page_listing_viewset = ArticlePageListingViewSet("article_pages")
@hooks.register('register_admin_viewset')
def register_article_page_listing_viewset():
return article_page_listing_viewset
# @hooks.register('construct_main_menu')
# def hide_snippets_menu_item(request, menu_items):
# menu_items[:] = [item for item in menu_items if not isinstance(item, ExplorerMenuItem)]