TKO/services/backend/tko/models.py

57 lines
1.7 KiB
Python
Raw Permalink Normal View History

2025-02-16 21:10:50 +01:00
from django.db import models
2025-03-13 08:14:46 +01:00
from wagtail.admin.panels import FieldPanel
from wagtail.fields import RichTextField
from wagtail.models import Page
from datetime import date
2025-02-16 21:10:50 +01:00
# Create your models here.
class Contact(models.Model):
2025-02-19 20:51:19 +01:00
name = models.CharField(max_length=100)
2025-02-16 21:10:50 +01:00
email = models.EmailField()
phone_number = models.CharField(max_length=16)
content = models.TextField()
2025-02-19 20:51:19 +01:00
def __str__(self):
return f"{self.name}, {self.email}, {self.phone_number}"
2025-02-16 21:10:50 +01:00
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
2025-03-05 16:21:16 +01:00
image = models.FileField(default="default.png", blank=True)
date = models.DateField(auto_now_add=True)
2025-02-16 21:10:50 +01:00
author = models.CharField(max_length=100)
active_to = models.DateField(null=True, blank=True) # do not show some invitation after this date
2025-02-19 20:51:19 +01:00
def __str__(self):
return self.title
2025-02-16 21:10:50 +01:00
class Event(models.Model):
title = models.CharField(max_length=100)
start_date = models.DateTimeField()
end_date = models.DateTimeField()
color = models.CharField(max_length=100)
2025-02-19 20:51:19 +01:00
def __str__(self):
return self.title
2025-03-13 08:14:46 +01:00
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"]