Commit 49ed8596 authored by Staś Kycia's avatar Staś Kycia
Browse files

static pages editor

parent 25a837df
Loading
Loading
Loading
Loading
+2 −0
Changes for .gitignore: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -7,3 +7,5 @@
.env
db.sqlite3
deployment
media
staticfiles

pages/__init__.py

0 → 100644
+0 −0

Empty file added.

pages/admin.py

0 → 100644
+33 −0
Changes for pages/admin.py: 33 added lines, 0 removed lines.
Original line number Diff line number Diff line
from urllib.parse import urljoin

from django.conf import settings
from django.contrib import admin
from django.urls import reverse
from django_summernote.admin import SummernoteInlineModelAdmin

from .models import FooterLink, Page, Paragraph


class ParagraphInline(SummernoteInlineModelAdmin, admin.StackedInline):
    model = Paragraph
    extra = 1
    # summernote_fields = ["content"]


class PageAdmin(admin.ModelAdmin):
    list_display = ["title", "link"]

    @admin.display(description="Link")
    def link(self, obj):
        return urljoin(settings.SITE_URL, reverse("pages:page", args=[obj.alias]))

    inlines = [ParagraphInline]
    prepopulated_fields = {"alias": ["title"]}


class FooterLinkAdmin(admin.ModelAdmin):
    list_display = ["text", "url", "open_in_new_tab"]


admin.site.register(Page, PageAdmin)
admin.site.register(FooterLink, FooterLinkAdmin)

pages/apps.py

0 → 100644
+6 −0
Changes for pages/apps.py: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
from django.apps import AppConfig


class PagesConfig(AppConfig):
    name = "pages"
    verbose_name = "strony"
+64 −0
Changes for pages/migrations/0001_initial.py: 64 added lines, 0 removed lines.
Original line number Diff line number Diff line
# Generated by Django 6.0.3 on 2026-06-10 08:05

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):
    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name="Page",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("title", models.CharField(max_length=50, verbose_name="tytuł")),
                (
                    "alias",
                    models.SlugField(
                        help_text="Występuje w adresie URL strony",
                        unique=True,
                        verbose_name="alias",
                    ),
                ),
            ],
        ),
        migrations.CreateModel(
            name="Paragraph",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("title", models.CharField(max_length=50, verbose_name="tytuł")),
                ("content", models.TextField(verbose_name="treść")),
                (
                    "page",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="paragraphs",
                        to="pages.page",
                    ),
                ),
            ],
            options={
                "verbose_name": "Akapit",
                "verbose_name_plural": "Akapty",
            },
        ),
    ]
Loading