aboutsummaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorBobby <[email protected]>2024-12-15 09:50:35 -0500
committerBobby <[email protected]>2024-12-15 09:50:35 -0500
commit06f23e7745c5875039720468db0a2786d2aaf848 (patch)
treecc49ba62e71c35b3294edc7b753b9627b2d2ac9c /apps
parent2efc3e9fbb38e447c5e336dfea679644ea16af12 (diff)
downloadthatcomputerscientist-06f23e7745c5875039720468db0a2786d2aaf848.tar.xz
thatcomputerscientist-06f23e7745c5875039720468db0a2786d2aaf848.zip
moved announcements to administration. custom admin center. removed userpages app
Diffstat (limited to 'apps')
-rw-r--r--apps/administration/__init__.py0
-rw-r--r--apps/administration/admin.py6
-rw-r--r--apps/administration/apps.py6
-rw-r--r--apps/administration/migrations/0001_initial.py29
-rw-r--r--apps/administration/migrations/0002_rename_date_announcement_created_at.py18
-rw-r--r--apps/administration/migrations/0003_rename_body_announcement_content_and_more.py22
-rw-r--r--apps/administration/migrations/0004_alter_announcement_created_at.py18
-rw-r--r--apps/administration/migrations/0005_announcement_content_ja.py17
-rw-r--r--apps/administration/migrations/__init__.py0
-rw-r--r--apps/administration/models.py28
-rw-r--r--apps/administration/tests.py3
-rw-r--r--apps/administration/urls.py6
-rw-r--r--apps/administration/views.py3
-rw-r--r--apps/core/views.py9
14 files changed, 163 insertions, 2 deletions
diff --git a/apps/administration/__init__.py b/apps/administration/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/apps/administration/__init__.py
diff --git a/apps/administration/admin.py b/apps/administration/admin.py
new file mode 100644
index 00000000..2e3dcf91
--- /dev/null
+++ b/apps/administration/admin.py
@@ -0,0 +1,6 @@
+from django.contrib import admin
+
+# Register your models here.
+from apps.administration.models import Announcement
+
+admin.site.register(Announcement)
diff --git a/apps/administration/apps.py b/apps/administration/apps.py
new file mode 100644
index 00000000..fe525a51
--- /dev/null
+++ b/apps/administration/apps.py
@@ -0,0 +1,6 @@
+from django.apps import AppConfig
+
+
+class AdministrationConfig(AppConfig):
+ default_auto_field = "django.db.models.BigAutoField"
+ name = "apps.administration"
diff --git a/apps/administration/migrations/0001_initial.py b/apps/administration/migrations/0001_initial.py
new file mode 100644
index 00000000..7d78fdaa
--- /dev/null
+++ b/apps/administration/migrations/0001_initial.py
@@ -0,0 +1,29 @@
+# Generated by Django 4.0.6 on 2022-10-02 15:22
+
+import django.db.models.deletion
+from django.conf import settings
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Announcement',
+ fields=[
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('title', models.CharField(max_length=100)),
+ ('body', models.TextField()),
+ ('date', models.DateTimeField(auto_now_add=True)),
+ ('is_public', models.BooleanField(default=False)),
+ ('is_new', models.BooleanField(default=True)),
+ ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+ ],
+ ),
+ ]
diff --git a/apps/administration/migrations/0002_rename_date_announcement_created_at.py b/apps/administration/migrations/0002_rename_date_announcement_created_at.py
new file mode 100644
index 00000000..69343a2b
--- /dev/null
+++ b/apps/administration/migrations/0002_rename_date_announcement_created_at.py
@@ -0,0 +1,18 @@
+# Generated by Django 4.0.6 on 2022-10-02 15:23
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("administration", "0001_initial"),
+ ]
+
+ operations = [
+ migrations.RenameField(
+ model_name="announcement",
+ old_name="date",
+ new_name="created_at",
+ ),
+ ]
diff --git a/apps/administration/migrations/0003_rename_body_announcement_content_and_more.py b/apps/administration/migrations/0003_rename_body_announcement_content_and_more.py
new file mode 100644
index 00000000..2e1ecf09
--- /dev/null
+++ b/apps/administration/migrations/0003_rename_body_announcement_content_and_more.py
@@ -0,0 +1,22 @@
+# Generated by Django 4.0.6 on 2022-10-02 16:06
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("administration", "0002_rename_date_announcement_created_at"),
+ ]
+
+ operations = [
+ migrations.RenameField(
+ model_name="announcement",
+ old_name="body",
+ new_name="content",
+ ),
+ migrations.RemoveField(
+ model_name="announcement",
+ name="title",
+ ),
+ ]
diff --git a/apps/administration/migrations/0004_alter_announcement_created_at.py b/apps/administration/migrations/0004_alter_announcement_created_at.py
new file mode 100644
index 00000000..ee2d40a1
--- /dev/null
+++ b/apps/administration/migrations/0004_alter_announcement_created_at.py
@@ -0,0 +1,18 @@
+# Generated by Django 4.0.6 on 2022-11-12 18:37
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("administration", "0003_rename_body_announcement_content_and_more"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="announcement",
+ name="created_at",
+ field=models.DateTimeField(),
+ ),
+ ]
diff --git a/apps/administration/migrations/0005_announcement_content_ja.py b/apps/administration/migrations/0005_announcement_content_ja.py
new file mode 100644
index 00000000..8000c118
--- /dev/null
+++ b/apps/administration/migrations/0005_announcement_content_ja.py
@@ -0,0 +1,17 @@
+# Generated by Django 5.0.7 on 2024-12-15 09:10
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("administration", "0004_alter_announcement_created_at"),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name="announcement",
+ name="content_ja",
+ field=models.TextField(blank=True),
+ ),
+ ]
diff --git a/apps/administration/migrations/__init__.py b/apps/administration/migrations/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/apps/administration/migrations/__init__.py
diff --git a/apps/administration/models.py b/apps/administration/models.py
new file mode 100644
index 00000000..fdfd0238
--- /dev/null
+++ b/apps/administration/models.py
@@ -0,0 +1,28 @@
+from django.conf import settings
+from django.db import models
+from django.utils import timezone
+
+# Create your models here.
+
+
+class Announcement(models.Model):
+ class Meta:
+ db_table = "announcements_announcement"
+
+ content = models.TextField()
+ content_ja = models.TextField(blank=True)
+ created_at = models.DateTimeField()
+ author = models.ForeignKey(
+ settings.AUTH_USER_MODEL,
+ on_delete=models.CASCADE,
+ )
+ is_public = models.BooleanField(default=False)
+ is_new = models.BooleanField(default=True)
+
+ def save(self, *args, **kwargs):
+ if not self.id:
+ self.created_at = timezone.now()
+ return super(Announcement, self).save(*args, **kwargs)
+
+ def __str__(self):
+ return self.content[:50] + "..."
diff --git a/apps/administration/tests.py b/apps/administration/tests.py
new file mode 100644
index 00000000..7ce503c2
--- /dev/null
+++ b/apps/administration/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/apps/administration/urls.py b/apps/administration/urls.py
new file mode 100644
index 00000000..d4781c66
--- /dev/null
+++ b/apps/administration/urls.py
@@ -0,0 +1,6 @@
+from django.urls import path
+
+from . import views
+
+app_name = "administration"
+urlpatterns = []
diff --git a/apps/administration/views.py b/apps/administration/views.py
new file mode 100644
index 00000000..91ea44a2
--- /dev/null
+++ b/apps/administration/views.py
@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.
diff --git a/apps/core/views.py b/apps/core/views.py
index 90554d10..5393edb4 100644
--- a/apps/core/views.py
+++ b/apps/core/views.py
@@ -1,5 +1,6 @@
from django.shortcuts import render
from thatcomputerscientist.utils import i18npatterns
+from apps.administration.models import Announcement
def home(request):
@@ -8,5 +9,9 @@ def home(request):
}
LANGUAGE_CODE = i18npatterns(request.LANGUAGE_CODE)
request.meta.update(META)
-
- return render(request, f"{LANGUAGE_CODE}/core/home.html")
+ announcements = Announcement.objects.filter(is_public=True).order_by("-created_at")
+ announcements = announcements if len(announcements) > 0 else None
+ context = {
+ "announcements": announcements,
+ }
+ return render(request, f"{LANGUAGE_CODE}/core/home.html", context)