aboutsummaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/administration/migrations/0006_alter_announcement_table.py16
-rw-r--r--apps/blog/migrations/0015_post_image_url.py17
-rw-r--r--apps/blog/migrations/0016_post_body_ja_post_title_ja.py22
-rw-r--r--apps/blog/migrations/0017_category_name_ja.py17
-rw-r--r--apps/blog/migrations/0018_tag_name_ja.py17
-rw-r--r--apps/blog/models.py42
-rw-r--r--apps/core/views.py7
7 files changed, 119 insertions, 19 deletions
diff --git a/apps/administration/migrations/0006_alter_announcement_table.py b/apps/administration/migrations/0006_alter_announcement_table.py
new file mode 100644
index 00000000..638ae0e4
--- /dev/null
+++ b/apps/administration/migrations/0006_alter_announcement_table.py
@@ -0,0 +1,16 @@
+# Generated by Django 5.0.7 on 2024-12-15 19:57
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("administration", "0005_announcement_content_ja"),
+ ]
+
+ operations = [
+ migrations.AlterModelTable(
+ name="announcement",
+ table="announcements_announcement",
+ ),
+ ]
diff --git a/apps/blog/migrations/0015_post_image_url.py b/apps/blog/migrations/0015_post_image_url.py
new file mode 100644
index 00000000..dc5df5b3
--- /dev/null
+++ b/apps/blog/migrations/0015_post_image_url.py
@@ -0,0 +1,17 @@
+# Generated by Django 5.0.7 on 2024-12-15 19:54
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("blog", "0014_anonymouscommentuser_alter_comment_user_and_more"),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name="post",
+ name="image_url",
+ field=models.URLField(blank=True),
+ ),
+ ]
diff --git a/apps/blog/migrations/0016_post_body_ja_post_title_ja.py b/apps/blog/migrations/0016_post_body_ja_post_title_ja.py
new file mode 100644
index 00000000..ef42fbc1
--- /dev/null
+++ b/apps/blog/migrations/0016_post_body_ja_post_title_ja.py
@@ -0,0 +1,22 @@
+# Generated by Django 5.0.7 on 2024-12-15 20:47
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("blog", "0015_post_image_url"),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name="post",
+ name="body_ja",
+ field=models.TextField(blank=True),
+ ),
+ migrations.AddField(
+ model_name="post",
+ name="title_ja",
+ field=models.CharField(blank=True, max_length=100),
+ ),
+ ]
diff --git a/apps/blog/migrations/0017_category_name_ja.py b/apps/blog/migrations/0017_category_name_ja.py
new file mode 100644
index 00000000..e01cec5d
--- /dev/null
+++ b/apps/blog/migrations/0017_category_name_ja.py
@@ -0,0 +1,17 @@
+# Generated by Django 5.0.7 on 2024-12-15 22:20
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("blog", "0016_post_body_ja_post_title_ja"),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name="category",
+ name="name_ja",
+ field=models.CharField(blank=True, max_length=50),
+ ),
+ ]
diff --git a/apps/blog/migrations/0018_tag_name_ja.py b/apps/blog/migrations/0018_tag_name_ja.py
new file mode 100644
index 00000000..c9d3cc4c
--- /dev/null
+++ b/apps/blog/migrations/0018_tag_name_ja.py
@@ -0,0 +1,17 @@
+# Generated by Django 5.0.7 on 2024-12-15 22:22
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("blog", "0017_category_name_ja"),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name="tag",
+ name="name_ja",
+ field=models.CharField(blank=True, max_length=50),
+ ),
+ ]
diff --git a/apps/blog/models.py b/apps/blog/models.py
index f564cd75..b4d791e2 100644
--- a/apps/blog/models.py
+++ b/apps/blog/models.py
@@ -4,63 +4,74 @@ from django.conf import settings
from django.db import models
from django.utils.text import slugify
-UPLOAD_ROOT = 'images/'
+UPLOAD_ROOT = "images/"
+
# Create your models here.
class Category(models.Model):
name = models.CharField(max_length=50)
+ name_ja = models.CharField(max_length=50, blank=True)
slug = models.SlugField(unique=True)
description = models.TextField(blank=True)
created_at = models.DateTimeField(auto_now_add=True)
def save(self, *args, **kwargs):
- if not self.slug or self.slug == '':
+ if not self.slug or self.slug == "":
self.slug = slugify(self.name)
return super(Category, self).save(*args, **kwargs)
def __str__(self):
return self.name
+
class Tag(models.Model):
name = models.CharField(max_length=50)
+ name_ja = models.CharField(max_length=50, blank=True)
slug = models.SlugField(unique=True)
description = models.TextField(blank=True)
created_at = models.DateTimeField(auto_now_add=True)
def save(self, *args, **kwargs):
- if not self.slug or self.slug == '':
+ if not self.slug or self.slug == "":
self.slug = slugify(self.name)
return super(Tag, self).save(*args, **kwargs)
def __str__(self):
return self.name
+
class Post(models.Model):
title = models.CharField(max_length=100)
+ title_ja = models.CharField(max_length=100, blank=True)
slug = models.SlugField(max_length=100, unique=True)
body = models.TextField(blank=True)
+ body_ja = models.TextField(blank=True)
date = models.DateTimeField(auto_now_add=False)
- post_image = models.ImageField(upload_to="{}/cover_images".format(UPLOAD_ROOT), blank=True)
+ post_image = models.ImageField(
+ upload_to="{}/cover_images".format(UPLOAD_ROOT), blank=True
+ )
+ image_url = models.URLField(blank=True)
author = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
)
category = models.ForeignKey(
- 'Category',
+ "Category",
on_delete=models.CASCADE,
)
- tags = models.ManyToManyField('Tag', blank=True)
+ tags = models.ManyToManyField("Tag", blank=True)
is_public = models.BooleanField(default=False)
views = models.IntegerField(default=0)
def save(self, *args, **kwargs):
- if not self.slug or self.slug == '':
+ if not self.slug or self.slug == "":
self.slug = slugify(self.title)
return super(Post, self).save(*args, **kwargs)
def __str__(self):
return str(self.title)
-
+
+
class AnonymousCommentUser(models.Model):
name = models.CharField(max_length=32)
email = models.CharField(max_length=32)
@@ -68,17 +79,18 @@ class AnonymousCommentUser(models.Model):
avatar = models.CharField(max_length=128, blank=True)
@classmethod
- def get_or_create(cls, email, token, avatar=''):
- email_hash = hashlib.md5(email.encode('utf-8')).hexdigest()
- token_hash = hashlib.sha256(token.encode('utf-8')).hexdigest()
+ def get_or_create(cls, email, token, avatar=""):
+ email_hash = hashlib.md5(email.encode("utf-8")).hexdigest()
+ token_hash = hashlib.sha256(token.encode("utf-8")).hexdigest()
return cls(email=email_hash, token=token_hash, avatar=avatar)
-
+
def __str__(self):
return self.name + "(" + self.email + ")"
+
class Comment(models.Model):
post = models.ForeignKey(
- 'Post',
+ "Post",
on_delete=models.CASCADE,
)
user = models.ForeignKey(
@@ -88,7 +100,7 @@ class Comment(models.Model):
null=True,
)
anonymous_user = models.ForeignKey(
- 'AnonymousCommentUser',
+ "AnonymousCommentUser",
on_delete=models.CASCADE,
blank=True,
null=True,
@@ -99,4 +111,4 @@ class Comment(models.Model):
edited_at = models.DateTimeField(blank=True, null=True)
def __str__(self):
- return self.body[:50] + '...' if len(self.body) > 50 else self.body
+ return self.body[:50] + "..." if len(self.body) > 50 else self.body
diff --git a/apps/core/views.py b/apps/core/views.py
index 880dd366..0e23722a 100644
--- a/apps/core/views.py
+++ b/apps/core/views.py
@@ -2,7 +2,7 @@ from django.shortcuts import render
from thatcomputerscientist.utils import i18npatterns
from apps.administration.models import Announcement
from internal.mal_wrapper import get_mal_recent_activity
-
+from internal.weblog_utilities import recent_weblogs
MAL_USERNAME = "crvs"
@@ -14,10 +14,9 @@ def home(request):
LANGUAGE_CODE = i18npatterns(request.LANGUAGE_CODE)
request.meta.update(META)
announcements = Announcement.objects.filter(is_public=True).order_by("-created_at")
- announcements = announcements if len(announcements) > 0 else None
- recent_mal_activity = get_mal_recent_activity(MAL_USERNAME)
context = {
"announcements": announcements,
- "recent_mal_activity": recent_mal_activity,
+ "recent_mal_activity": get_mal_recent_activity(MAL_USERNAME),
+ "recent_weblogs": recent_weblogs(lang=LANGUAGE_CODE),
}
return render(request, f"{LANGUAGE_CODE}/core/home.html", context)