generated from JustScreaMy/ProjectTemplate
add wagtail
This commit is contained in:
parent
b9aac50aa4
commit
6df90a66d3
6 changed files with 134 additions and 2 deletions
|
@ -28,8 +28,8 @@ from django.conf import settings
|
||||||
from tko.views import ContactView, NewArticleListView, AllArticleListView, EventListView
|
from tko.views import ContactView, NewArticleListView, AllArticleListView, EventListView
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('django-admin/', admin.site.urls),
|
path('', include(wagtailadmin_urls)),
|
||||||
path('admin/', include(wagtailadmin_urls)),
|
path('admin/', admin.site.urls),
|
||||||
path('create-contact/', ContactView.as_view(), name='create-contact'),
|
path('create-contact/', ContactView.as_view(), name='create-contact'),
|
||||||
path('load-articles/', NewArticleListView.as_view(), name='load-articles'),
|
path('load-articles/', NewArticleListView.as_view(), name='load-articles'),
|
||||||
path('load-all-articles/', AllArticleListView.as_view(), name='load-all-articles'),
|
path('load-all-articles/', AllArticleListView.as_view(), name='load-all-articles'),
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
|
@ -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',),
|
||||||
|
),
|
||||||
|
]
|
|
@ -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'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -1,4 +1,9 @@
|
||||||
from django.db import models
|
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.
|
# Create your models here.
|
||||||
class Contact(models.Model):
|
class Contact(models.Model):
|
||||||
|
@ -32,3 +37,21 @@ class Event(models.Model):
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.title
|
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"]
|
23
services/backend/tko/wagtail_hooks.py
Normal file
23
services/backend/tko/wagtail_hooks.py
Normal 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)]
|
Loading…
Reference in a new issue