##// END OF EJS Templates
Limit only first posting by this session. Assume messages created by spam bots...
Limit only first posting by this session. Assume messages created by spam bots can be removed afterwards

File last commit:

r1441:f2404e3c merge decentral
r1494:89a50a1d default
Show More
user.py
46 lines | 1.1 KiB | text/x-python | PythonLexer
neko259
Split up user models
r386 from django.db import models
neko259
Added notification API
r994 import boards.models.post
neko259
Split up user models
r386 __author__ = 'neko259'
BAN_REASON_AUTO = 'Auto'
BAN_REASON_MAX_LENGTH = 200
class Ban(models.Model):
class Meta:
app_label = 'boards'
ip = models.GenericIPAddressField()
reason = models.CharField(default=BAN_REASON_AUTO,
max_length=BAN_REASON_MAX_LENGTH)
can_read = models.BooleanField(default=True)
neko259
Updated ban admin to search by ip
r804 def __str__(self):
neko259
Split up user models
r386 return self.ip
neko259
User notifications (BB-59)
r990
neko259
Added notification API
r994 class NotificationManager(models.Manager):
neko259
Subscribe to a multiple of users for notifications
r1429 def get_notification_posts(self, usernames: list, last: int = None):
lower_names = [username.lower() for username in usernames]
posts = boards.models.post.Post.objects.filter(
notification__name__in=lower_names).distinct()
neko259
Added notification API
r994 if last is not None:
posts = posts.filter(id__gt=last)
posts = posts.order_by('-id')
return posts
neko259
User notifications (BB-59)
r990 class Notification(models.Model):
class Meta:
app_label = 'boards'
neko259
Added notification API
r994 objects = NotificationManager()
neko259
User notifications (BB-59)
r990 post = models.ForeignKey('Post')
name = models.TextField()