Mercurial > public > sg101
view shoutbox/models.py @ 1160:b84ce2d7e93d
New template for displaying django messages.
New common template for rendering django messages in the new V3 Foundation
style.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Tue, 24 Jan 2017 19:22:29 -0600 |
parents | eeaf387803c6 |
children |
line wrap: on
line source
""" Models for the shoutbox application. """ import datetime from django.db import models from django.contrib.auth.models import User from django.core.urlresolvers import reverse from django.utils.html import escape, urlize from smiley.utils import smilify_html class Shout(models.Model): user = models.ForeignKey(User) shout_date = models.DateTimeField(blank=True) shout = models.TextField() html = models.TextField() class Meta: ordering = ('-shout_date', ) def __unicode__(self): if len(self.shout) > 60: return self.shout[:60] + "..." return self.shout def get_absolute_url(self): return reverse('shoutbox-view', args=[str(self.pk)]) def save(self, *args, **kwargs): if not self.id: self.shout_date = datetime.datetime.now() self.html = urlize(smilify_html(escape(self.shout)), trim_url_limit=15, nofollow=True) super(Shout, self).save(*args, **kwargs) class ShoutFlag(models.Model): """This model represents a user flagging a shout as inappropriate.""" user = models.ForeignKey(User) shout = models.ForeignKey(Shout) flag_date = models.DateTimeField(auto_now_add=True) def __unicode__(self): return u'Shout ID %s flagged by %s' % (self.shout_id, self.user.username) class Meta: ordering = ('flag_date', ) def get_shout_url(self): return '<a href="/admin/shoutbox/shout/%(id)d">Shout #%(id)d</a>' % ( {'id': self.shout.id}) get_shout_url.allow_tags = True get_shout_url.short_description = 'Link to Shout'