From 53e157dc6a69e248ae1fe3b44f279300b8b0a822 Mon Sep 17 00:00:00 2001 From: Marnanel Thurman Date: Thu, 29 Oct 2020 04:14:04 +0000 Subject: [PATCH] added Mention class --- kepi/trilby_api/migrations/0028_mention.py | 26 +++++++++++++++++ kepi/trilby_api/models/__init__.py | 2 ++ kepi/trilby_api/models/mention.py | 34 ++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 kepi/trilby_api/migrations/0028_mention.py create mode 100644 kepi/trilby_api/models/mention.py diff --git a/kepi/trilby_api/migrations/0028_mention.py b/kepi/trilby_api/migrations/0028_mention.py new file mode 100644 index 0000000..7253140 --- /dev/null +++ b/kepi/trilby_api/migrations/0028_mention.py @@ -0,0 +1,26 @@ +# Generated by Django 3.0.9 on 2020-10-29 03:26 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('trilby_api', '0027_localperson_gone'), + ] + + operations = [ + migrations.CreateModel( + name='Mention', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('status', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='trilby_api.Status')), + ('whom', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='trilby_api.Person')), + ], + ), + migrations.AddConstraint( + model_name='mention', + constraint=models.UniqueConstraint(fields=('status', 'whom'), name='mention_unique'), + ), + ] diff --git a/kepi/trilby_api/models/__init__.py b/kepi/trilby_api/models/__init__.py index 8728eda..6ea7e77 100644 --- a/kepi/trilby_api/models/__init__.py +++ b/kepi/trilby_api/models/__init__.py @@ -3,6 +3,7 @@ from .status import * from .notification import * from .like import * from .follow import * +from .mention import * __all__ = [ 'TrilbyUser', @@ -13,4 +14,5 @@ __all__ = [ 'Notification', 'Like', 'Follow', + 'Mention', ] diff --git a/kepi/trilby_api/models/mention.py b/kepi/trilby_api/models/mention.py new file mode 100644 index 0000000..4fde85a --- /dev/null +++ b/kepi/trilby_api/models/mention.py @@ -0,0 +1,34 @@ +# mention.py +# +# Part of kepi. +# Copyright (c) 2018-2020 Marnanel Thurman. +# Licensed under the GNU Public License v2. + +import logging +logger = logging.getLogger(name='kepi') + +from django.db import models +from django.db.models.constraints import UniqueConstraint + +class Mention(models.Model): + + status = models.ForeignKey( + 'Status', + on_delete = models.DO_NOTHING, + ) + + whom = models.ForeignKey( + 'Person', + on_delete = models.DO_NOTHING, + ) + + class Meta: + constraints = [ + UniqueConstraint( + fields = ['status', 'whom'], + name = 'mention_unique', + ), + ] + + def __str__(self): + return '[%s mentions %s]' % (self.status, self.whom)