diff --git a/config/urls.py b/config/urls.py index b8eb2081..bcf55d8d 100755 --- a/config/urls.py +++ b/config/urls.py @@ -36,7 +36,6 @@ from libraries.views import ( LibraryListByCategory, LibraryListMini, ) -from mailing_list.views import MailingListDetailView, MailingListView from news.feeds import AtomNewsFeed, RSSNewsFeed from news.views import ( AllTypesCreateView, @@ -169,12 +168,6 @@ urlpatterns = ( LibraryDetail.as_view(redirect_to_docs=True), name="library-docs-redirect", ), - path( - "mailing-list//", - MailingListDetailView.as_view(), - name="mailing-list-detail", - ), - path("mailing-list/", MailingListView.as_view(), name="mailing-list"), path("news/", EntryListView.as_view(), name="news"), path("news/blogpost/", BlogPostListView.as_view(), name="news-blogpost-list"), path("news/link/", LinkListView.as_view(), name="news-link-list"), diff --git a/mailing_list/management/commands/fake_mailing_list.py b/mailing_list/management/commands/fake_mailing_list.py deleted file mode 100644 index 27ae622d..00000000 --- a/mailing_list/management/commands/fake_mailing_list.py +++ /dev/null @@ -1,59 +0,0 @@ -import random -from django.core.management.base import BaseCommand -from django.utils import timezone -from model_bakery import baker - -from mailing_list.models import MailingListMessage - -subjects = [ - "Re: Master is open for merges", - "Re: Suggestion for ccmath library", - "Re: Update on boost::asio", - "Re: boost::python issue", - "Re: boost::filesystem question", - "Re: boost::mpl - New release?", - "Re: boost::log - Configuration", -] - -sender_displays = [ - "Oliver Smith", - "Sophia Johnson", - "Liam Williams", - "Ava Taylor", - "Noah Davis", - "Isabella Brown", - "Lucas Wilson", -] - - -class Command(BaseCommand): - help = "Generate realistic-looking test data for MailingListMessage model" - - def handle(self, *args, **options): - self.stdout.write("Generating test data...") - - for _ in range(5): - # Create a top-level message - top_level_message = baker.make( - MailingListMessage, - sender=None, - sender_email=None, - sender_display=random.choice(sender_displays), - subject=random.choice(subjects), - sent_at=timezone.now() - timezone.timedelta(days=random.randint(1, 30)), - ) - - # Create replies for the top-level message - for _ in range(random.randint(1, 5)): - baker.make( - MailingListMessage, - sender=None, - sender_email=None, - sender_display=random.choice(sender_displays), - subject=f"Re: {top_level_message.subject}", - parent=top_level_message, - sent_at=timezone.now() - - timezone.timedelta(days=random.randint(1, 30)), - ) - - self.stdout.write(self.style.SUCCESS("Test data generated successfully!")) diff --git a/mailing_list/migrations/0003_delete_mailinglistmessage.py b/mailing_list/migrations/0003_delete_mailinglistmessage.py new file mode 100644 index 00000000..c5ad0794 --- /dev/null +++ b/mailing_list/migrations/0003_delete_mailinglistmessage.py @@ -0,0 +1,16 @@ +# Generated by Django 4.2.15 on 2024-10-16 18:28 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("mailing_list", "0002_mailinglistmessage_sender_and_more"), + ] + + operations = [ + migrations.DeleteModel( + name="MailingListMessage", + ), + ] diff --git a/mailing_list/models.py b/mailing_list/models.py index 8a9f0ff5..e69de29b 100644 --- a/mailing_list/models.py +++ b/mailing_list/models.py @@ -1,43 +0,0 @@ -from django.db import models -from django.contrib.auth import get_user_model -from mptt.models import MPTTModel, TreeForeignKey -from django.utils.translation import gettext_lazy as _ - -User = get_user_model() - - -class MailingListMessage(MPTTModel): - sender = models.ForeignKey( - User, - on_delete=models.CASCADE, - null=True, - blank=True, - help_text=_("The registered user who sent the message."), - ) - sender_email = models.EmailField( - null=True, blank=True, help_text=_("The email address of the sender.") - ) - sender_display = models.CharField( - max_length=255, - null=True, - blank=True, - help_text=_("The display name of the sender."), - ) - subject = models.CharField( - max_length=255, help_text=_("The subject of the message.") - ) - body = models.TextField(help_text=_("The body of the message.")) - parent = TreeForeignKey( - "self", - on_delete=models.CASCADE, - null=True, - blank=True, - related_name="replies", - help_text=_("The parent message to which this message is a reply."), - ) - sent_at = models.DateTimeField( - help_text=_("The date and time when the message was sent.") - ) - - class MPTTMeta: - order_insertion_by = ["-sent_at"] diff --git a/mailing_list/tests/test_models.py b/mailing_list/tests/test_models.py deleted file mode 100644 index f1f3ba86..00000000 --- a/mailing_list/tests/test_models.py +++ /dev/null @@ -1,30 +0,0 @@ -import pytest -from model_bakery import baker - - -@pytest.fixture -def mailing_list_message_factory(): - def factory(**kwargs): - return baker.make("mailing_list.MailingListMessage", **kwargs) - - return factory - - -def test_mailing_list_message_tree_structure(mailing_list_message_factory): - root = mailing_list_message_factory(subject="Root") - child1 = mailing_list_message_factory(subject="Child 1", parent=root) - child2 = mailing_list_message_factory(subject="Child 2", parent=root) - grandchild1 = mailing_list_message_factory(subject="Grandchild 1", parent=child1) - grandchild2 = mailing_list_message_factory(subject="Grandchild 2", parent=child1) - - assert root.get_children().count() == 2 - assert child1 in root.get_children() - assert child2 in root.get_children() - - assert child1.get_children().count() == 2 - assert grandchild1 in child1.get_children() - assert grandchild2 in child1.get_children() - - assert child2.get_children().count() == 0 - assert grandchild1.get_children().count() == 0 - assert grandchild2.get_children().count() == 0 diff --git a/mailing_list/tests/test_views.py b/mailing_list/tests/test_views.py deleted file mode 100644 index 50919b65..00000000 --- a/mailing_list/tests/test_views.py +++ /dev/null @@ -1,24 +0,0 @@ -import pytest -from model_bakery import baker -from ..models import MailingListMessage - - -@pytest.fixture -def mailing_list_messages(): - return baker.make(MailingListMessage, _quantity=10) - - -@pytest.mark.django_db -def test_mailing_list_view(tp, mailing_list_messages): - """Test the mailing list view.""" - url = tp.reverse("mailing-list") - response = tp.get_check_200(url) - assert len(response.context["object_list"]) == len(mailing_list_messages) - assert set(response.context["object_list"]) == set(mailing_list_messages) - - -@pytest.mark.django_db -def test_mailing_list_detail_view(tp, mailing_list_messages): - """Test the mailing list view.""" - url = tp.reverse("mailing-list-detail", pk=mailing_list_messages[0].pk) - tp.get_check_200(url) diff --git a/mailing_list/views.py b/mailing_list/views.py index 1e37c514..e69de29b 100644 --- a/mailing_list/views.py +++ b/mailing_list/views.py @@ -1,25 +0,0 @@ -from django.views.generic import DetailView, ListView -from .models import MailingListMessage - - -class MailingListView(ListView): - model = MailingListMessage - template_name = "mailing_list/list.html" - context_object_name = "objects" - paginate_by = 10 - - def get_queryset(self): - return MailingListMessage.objects.filter(parent__isnull=True).order_by( - "-sent_at" - ) - - -class MailingListDetailView(DetailView): - model = MailingListMessage - template_name = "mailing_list/detail.html" - context_object_name = "message" - - def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - context["replies"] = self.object.replies.order_by("sent_at") - return context diff --git a/templates/mailing_list/detail.html b/templates/mailing_list/detail.html deleted file mode 100644 index b6fdfbfc..00000000 --- a/templates/mailing_list/detail.html +++ /dev/null @@ -1,22 +0,0 @@ -{% extends 'base.html' %} - -{% block content %} -

Mailing List Message

-
-

{{ message.subject }}

-

{{ message.sender_display }} - {{ message.sent_at }}

-

{{ message.body|linebreaks }}

-
-

Replies

- -

Back to Mailing List Archives

-{% endblock %} diff --git a/templates/mailing_list/list.html b/templates/mailing_list/list.html deleted file mode 100644 index ce836207..00000000 --- a/templates/mailing_list/list.html +++ /dev/null @@ -1,37 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -
-

Mailing List Archives

-
-
- -
- {% if messages.has_previous %} - << First - < Previous - {% endif %} - {% if messages.has_next %} - Next > - Last >> - {% endif %} -
-
-{% endblock %}