diff options
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/administration/migrations/0006_alter_announcement_table.py | 16 | ||||
| -rw-r--r-- | apps/blog/migrations/0015_post_image_url.py | 17 | ||||
| -rw-r--r-- | apps/blog/migrations/0016_post_body_ja_post_title_ja.py | 22 | ||||
| -rw-r--r-- | apps/blog/migrations/0017_category_name_ja.py | 17 | ||||
| -rw-r--r-- | apps/blog/migrations/0018_tag_name_ja.py | 17 | ||||
| -rw-r--r-- | apps/blog/models.py | 42 | ||||
| -rw-r--r-- | apps/core/views.py | 7 |
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) |
