X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=influences%2Fmodels.py;h=9fd77ef846954815a32c9a2108bc23a5ee9f16cf;hb=3ebe90d3cef8c2136c17a1b3426e7989f2379427;hp=fcd1f51aa86f9e835dd230ad95d01c6eb682e7e4;hpb=10c0b5f57ee0c82993c04714c93ccf556ea9079d;p=matthijs%2Fprojects%2Fxerxes.git diff --git a/influences/models.py b/influences/models.py index fcd1f51..9fd77ef 100644 --- a/influences/models.py +++ b/influences/models.py @@ -1,7 +1,10 @@ from django.db import models +from django.core.urlresolvers import reverse from django.contrib.auth.models import User +from django.utils.text import normalize_newlines from django.utils.translation import ugettext_lazy as _ from threadedcomments.models import ThreadedComment +from xerxes.tools.text import rewrap # Create your models here. class Character(models.Model): @@ -9,15 +12,24 @@ class Character(models.Model): ('N', _('New')), ('A', _('Approved')), ) + TYPE_CHOICES = ( + ('P', _('Player')), + ('N', _('NPC')), + ('C', _('Contact')), + ) created = models.DateField(auto_now_add=1, verbose_name = _("Creation time")) modified = models.DateField(auto_now=1, verbose_name = _("Modification time")) name = models.CharField(max_length=255, verbose_name = _("Name")) status = models.CharField(max_length=2, choices=STATUS_CHOICES, default='N', verbose_name = _("Status")) player = models.ForeignKey(User, verbose_name = _("Player")) + type = models.CharField(max_length=2, choices=TYPE_CHOICES, verbose_name=_("Type")) - def __str__(self): + def __unicode__(self): return self.name + def get_absolute_url(self): + return reverse('influences_influence_detail', kwargs={'object_id' : self.pk}) + class Meta: verbose_name = _("Character") verbose_name_plural = _("Characters") @@ -32,18 +44,22 @@ class Influence(models.Model): created = models.DateField(auto_now_add=1, verbose_name = _("Creation time")) modified = models.DateField(auto_now=1, verbose_name = _("Modification time")) - character = models.ForeignKey(Character, verbose_name = _("Character")) + initiator = models.ForeignKey(Character, verbose_name = _("Initiator"), related_name='initiated_influences') contact = models.CharField(max_length=255, verbose_name = _("Contact Name")) summary = models.CharField(max_length=255, verbose_name = _("Summary")) description = models.TextField(verbose_name = _("Description")) - status = models.TextField(max_length=1, choices=STATUS_CHOICES, default='N', verbose_name = _("Status")) + todo = models.TextField(verbose_name = _("Todo")) + status = models.CharField(max_length=1, choices=STATUS_CHOICES, default='N', verbose_name = _("Status")) longterm = models.BooleanField(default=False, verbose_name = _("Long term")) result = models.TextField(blank=True,verbose_name = _("Result")) - def __str__(self): + def __unicode__(self): return self.summary + def get_absolute_url(self): + return reverse('influences_influence_detail', kwargs={'object_id' : self.pk}) + def get_comments(self, private): """ Gets the comments that have been made on this Influence. Each @@ -53,7 +69,9 @@ class Influence(models.Model): If private is True, private comments are included in this list. """ def quote_reply(comment): - return "\n".join(["> " + l for l in comment.comment.split("\n")]) + regex = "^([ >]*)(.*)$" + text = rewrap(normalize_newlines(comment.comment), 72, regex) + return "\n".join(["> " + l for l in text.split("\n")]) # Import here to prevent dependency loop, since forms depends on # models as well