Louis Mazin 4fd1c14d1d test
2026-10-15 16:45:02 +02:00

47 lines
1.6 KiB
Python

"""CMS réutilisable : contenus, pages libres et blocs réordonnables."""
from django.db import models
class SiteContent(models.Model):
key = models.CharField(max_length=100, primary_key=True)
value = models.TextField(blank=True)
modified_at = models.DateTimeField(auto_now=True)
class Meta:
ordering = ['key']
class SitePage(models.Model):
slug = models.SlugField(max_length=80, unique=True)
title = models.CharField(max_length=200)
description = models.CharField(max_length=500, blank=True)
nav_label = models.CharField(max_length=100, blank=True)
position = models.PositiveIntegerField(default=0)
published = models.BooleanField(default=True)
show_in_nav = models.BooleanField(default=True)
class Meta:
ordering = ['position', 'pk']
class SiteBlock(models.Model):
class Kind(models.TextChoices):
HEADING = 'heading', 'Titre'
TEXT = 'text', 'Texte'
IMAGE = 'image', 'Image'
BUTTON = 'button', 'Bouton'
# "home" = accueil ; "presentation", etc. = chemins existants ;
# les pages libres utilisent leur slug.
page_slug = models.SlugField(max_length=80, db_index=True)
kind = models.CharField(max_length=16, choices=Kind.choices, default=Kind.TEXT)
title = models.CharField(max_length=250, blank=True)
body = models.TextField(blank=True)
image = models.CharField(max_length=1200, blank=True)
url = models.CharField(max_length=1200, blank=True)
position = models.PositiveIntegerField(default=0)
published = models.BooleanField(default=True)
class Meta:
ordering = ['position', 'pk']