Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Generated by Django 6.0.3 on 2026-05-05 02:41

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('blog', '0009_update_clipping_display_dates'),
('users', '0012_profileevent_profile_insert_insert_and_more'),
]

operations = [
migrations.AlterField(
model_name='clipping',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='clipping',
name='display_date',
field=models.DateField(db_index=True),
),
migrations.AlterField(
model_name='clipping',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AlterField(
model_name='post',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='post',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AlterField(
model_name='postimage',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='postimage',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AddIndex(
model_name='clipping',
index=models.Index(fields=['-created'], name='clipping_created_desc_idx'),
),
migrations.AddIndex(
model_name='clipping',
index=models.Index(fields=['-modified'], name='clipping_modified_desc_idx'),
),
migrations.AddIndex(
model_name='post',
index=models.Index(fields=['-created'], name='post_created_desc_idx'),
),
migrations.AddIndex(
model_name='post',
index=models.Index(fields=['-modified'], name='post_modified_desc_idx'),
),
migrations.AddIndex(
model_name='postimage',
index=models.Index(fields=['-created'], name='postimage_created_desc_idx'),
),
migrations.AddIndex(
model_name='postimage',
index=models.Index(fields=['-modified'], name='postimage_modified_desc_idx'),
),
]
34 changes: 30 additions & 4 deletions src/blog/models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from django.core.files.storage import default_storage
from django.db import models
from django_extensions.db.models import TimeStampedModel

from users.models import Profile

Expand All @@ -22,27 +21,45 @@ class Meta:
verbose_name_plural = "categories"


class PostImage(TimeStampedModel):
class PostImage(models.Model):
file = models.FileField(storage=default_storage, upload_to=IMAGE_BASE_PATH)
description = models.CharField(max_length=500, blank=True)
created = models.DateTimeField(auto_now_add=True, verbose_name="created")
modified = models.DateTimeField(auto_now=True, verbose_name="modified")

class Meta:
get_latest_by = "modified"
indexes = [
models.Index(fields=["-created"], name="postimage_created_desc_idx"),
models.Index(fields=["-modified"], name="postimage_modified_desc_idx"),
]

def __str__(self):
return self.file.name.lstrip(IMAGE_BASE_PATH)


class Clipping(TimeStampedModel):
class Clipping(models.Model):
id = models.BigAutoField(primary_key=True)
title = models.CharField(max_length=200)
description = models.CharField(max_length=500)
link = models.URLField()
file = models.FileField(upload_to="clipping_files/")
display_date = models.DateField(db_index=True)
created = models.DateTimeField(auto_now_add=True, verbose_name="created")
modified = models.DateTimeField(auto_now=True, verbose_name="modified")

class Meta:
get_latest_by = "modified"
indexes = [
models.Index(fields=["-created"], name="clipping_created_desc_idx"),
models.Index(fields=["-modified"], name="clipping_modified_desc_idx"),
]

def __str__(self):
return self.title


class Post(TimeStampedModel):
class Post(models.Model):
id = models.BigAutoField(primary_key=True)
title = models.CharField(max_length=200)
status = models.CharField(
Expand All @@ -58,6 +75,15 @@ class Post(TimeStampedModel):
body = models.TextField()
categories = models.ManyToManyField(Category, related_name="posts", blank=True)
images = models.ManyToManyField(PostImage, related_name="posts", blank=True)
created = models.DateTimeField(auto_now_add=True, verbose_name="created")
modified = models.DateTimeField(auto_now=True, verbose_name="modified")

class Meta:
get_latest_by = "modified"
indexes = [
models.Index(fields=["-created"], name="post_created_desc_idx"),
models.Index(fields=["-modified"], name="post_modified_desc_idx"),
]

def __str__(self):
return self.title
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# Generated by Django 6.0.3 on 2026-05-05 02:41

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('core', '0027_sound_soundevent_remove_artwork_insert_insert_and_more'),
('users', '0012_profileevent_profile_insert_insert_and_more'),
]

operations = [
migrations.AlterField(
model_name='artwork',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='artwork',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AlterField(
model_name='artworkevent',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='artworkevent',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AlterField(
model_name='exhibit',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='exhibit',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AlterField(
model_name='exhibitevent',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='exhibitevent',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AlterField(
model_name='marker',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='marker',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AlterField(
model_name='markerevent',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='markerevent',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AlterField(
model_name='object',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='object',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AlterField(
model_name='objectevent',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='objectevent',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AlterField(
model_name='sound',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='sound',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AlterField(
model_name='soundevent',
name='created',
field=models.DateTimeField(auto_now_add=True, verbose_name='created'),
),
migrations.AlterField(
model_name='soundevent',
name='modified',
field=models.DateTimeField(auto_now=True, verbose_name='modified'),
),
migrations.AddIndex(
model_name='artwork',
index=models.Index(fields=['-created'], name='artwork_created_desc_idx'),
),
migrations.AddIndex(
model_name='artwork',
index=models.Index(fields=['-modified'], name='artwork_modified_desc_idx'),
),
migrations.AddIndex(
model_name='exhibit',
index=models.Index(fields=['-created'], name='exhibit_created_desc_idx'),
),
migrations.AddIndex(
model_name='exhibit',
index=models.Index(fields=['-modified'], name='exhibit_modified_desc_idx'),
),
migrations.AddIndex(
model_name='exhibit',
index=models.Index(fields=['exhibit_type', '-created'], name='exhibit_type_created_idx'),
),
migrations.AddIndex(
model_name='marker',
index=models.Index(fields=['-created'], name='marker_created_desc_idx'),
),
migrations.AddIndex(
model_name='marker',
index=models.Index(fields=['-modified'], name='marker_modified_desc_idx'),
),
migrations.AddIndex(
model_name='object',
index=models.Index(fields=['-created'], name='object_created_desc_idx'),
),
migrations.AddIndex(
model_name='object',
index=models.Index(fields=['-modified'], name='object_modified_desc_idx'),
),
migrations.AddIndex(
model_name='sound',
index=models.Index(fields=['-created'], name='sound_created_desc_idx'),
),
migrations.AddIndex(
model_name='sound',
index=models.Index(fields=['-modified'], name='sound_modified_desc_idx'),
),
]
Loading
Loading