Skip to content
This repository has been archived by the owner on May 20, 2024. It is now read-only.

Commit

Permalink
Fix missing conversation meta (#1289)
Browse files Browse the repository at this point in the history
* Don't assume ConversationMeta exists

* Set default marked_at dates to min datetime
  • Loading branch information
nicksellen authored Mar 18, 2024
1 parent e1e790d commit 4e313b5
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 3 deletions.
2 changes: 1 addition & 1 deletion karrot/conversations/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ def get_conversation(application):
issue_serializer = IssueSerializer(issues, many=True, context=context)
offer_serializer = OfferSerializer(offers, many=True, context=context)
user_serializer = UserInfoSerializer(users, many=True, context=context)
meta = ConversationMeta.objects.get(user=request.user)
meta, _ = ConversationMeta.objects.get_or_create(user=request.user)
meta_serializer = ConversationMetaSerializer(meta, context=self.get_serializer_context())

return self.get_paginated_response(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Generated by Django 4.2.7 on 2024-03-06 09:56

import datetime
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('conversations', '0044_alter_conversationmessageattachment_file_and_more'),
]

operations = [
migrations.AlterField(
model_name='conversationmeta',
name='conversations_marked_at',
field=models.DateTimeField(default=datetime.datetime(1, 1, 1, 0, 0, tzinfo=datetime.timezone.utc)),
),
migrations.AlterField(
model_name='conversationmeta',
name='threads_marked_at',
field=models.DateTimeField(default=datetime.datetime(1, 1, 1, 0, 0, tzinfo=datetime.timezone.utc)),
),
]
9 changes: 7 additions & 2 deletions karrot/conversations/models.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from datetime import datetime
from enum import Enum
from uuid import uuid4

Expand All @@ -10,6 +11,7 @@
from django.db.models.manager import BaseManager
from django.utils import timezone
from PIL import Image, UnidentifiedImageError
from pytz import utc
from versatileimagefield.fields import VersatileImageField
from versatileimagefield.image_warmer import VersatileImageFieldWarmer

Expand Down Expand Up @@ -142,10 +144,13 @@ def supports_mentions(self):
return self.type() is not None and self.type() != "private" and self.group is not None


min_datetime = datetime.min.replace(tzinfo=utc)


class ConversationMeta(BaseModel):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
conversations_marked_at = models.DateTimeField()
threads_marked_at = models.DateTimeField()
conversations_marked_at = models.DateTimeField(default=min_datetime)
threads_marked_at = models.DateTimeField(default=min_datetime)


class ConversationParticipantQuerySet(models.QuerySet):
Expand Down

0 comments on commit 4e313b5

Please sign in to comment.