* Add a status to Characters.
[matthijs/projects/xerxes.git] / influences / models.py
index 7c923cc45b85ba398b17142932321b4486573309..6094181ae66ccd332ad971ad30b07a0838baa3d8 100644 (file)
@@ -4,43 +4,54 @@ from django.utils.translation import ugettext_lazy as _
 
 # Create your models here.
 class Character(models.Model):
-       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"))
-       player      = models.ForeignKey(User, verbose_name = _("Player"))
-
-       def __str__(self):
-               return self.name
-
-       class Admin:
-               pass
-
-       class Meta:
-               verbose_name = _("Character")
-               verbose_name_plural = _("Characters")
+    STATUS_CHOICES = (
+        ('N', _('New')),
+        ('A', _('Approved')),
+    )
+    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"))
+
+    def __str__(self):
+        return self.name
+
+    class Admin:
+        pass
+
+    class Meta:
+        verbose_name = _("Character")
+        verbose_name_plural = _("Characters")
 
 class Influence(models.Model):
-       STATUS_CHOICES = (
-               ('N', 'New'),
-               ('P', 'Processing'),
-               ('D', 'Done'),
-       )
-       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, edit_inline=models.TABULAR, num_in_admin=3, core=True, verbose_name = _("Character"))
-       contact     = models.CharField(max_length=255, verbose_name = _("Contact"))
-       description = models.TextField(verbose_name = _("Description"))
-       status      = models.TextField(max_length=1, choices=STATUS_CHOICES, default='N', verbose_name = _("Status"))
-       longterm    = models.BooleanField(default=False, verbose_name = _("Long term"))
-
-       def __str__(self):
-               return self.description[0:10]
-
-       class Admin:
-               pass
-
-       class Meta:
-               verbose_name = _("Influence")
-               verbose_name_plural = _("Influences")
+    STATUS_CHOICES = (
+        ('N', _('New')),
+        ('U', _('Under discussion')),
+        ('P', _('Processing')),
+        ('D', _('Done')),
+    )
+    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"))
+    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"))
+    longterm    = models.BooleanField(default=False, verbose_name = _("Long term"))
+
+    result      = models.TextField(blank=True,verbose_name = _("Result"))
+
+    def __str__(self):
+        return self.summary
+
+    class Admin:
+        list_filter=('character', 'status', 'longterm')
+        search_fields=('character', 'description', 'contact')
+        list_display=('character', 'contact', 'summary', 'longterm', 'status') 
+
+    class Meta:
+        verbose_name = _("Influence")
+        verbose_name_plural = _("Influences")