aboutsummaryrefslogtreecommitdiffstats
path: root/servo/models/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'servo/models/common.py')
-rw-r--r--servo/models/common.py38
1 files changed, 23 insertions, 15 deletions
diff --git a/servo/models/common.py b/servo/models/common.py
index 7339f4f..faad673 100644
--- a/servo/models/common.py
+++ b/servo/models/common.py
@@ -16,6 +16,8 @@ from mptt.models import MPTTModel, TreeForeignKey
from django.utils.translation import ugettext_lazy as _
from django.dispatch import receiver
+from django.contrib.contenttypes.models import ContentType
+from django.contrib.contenttypes.fields import GenericForeignKey
from django.db.models.signals import post_save
from django.core.cache import cache
@@ -62,7 +64,7 @@ class CsvTable(object):
def has_body(self):
return self.body != ''
- def __unicode__(self):
+ def __str__(self):
self.table = self.header + "\n" + self.body
return self.table
@@ -75,8 +77,9 @@ class TaggedItem(models.Model):
"""
A generic tagged item
"""
- ref = models.CharField(max_length=32)
- ref_id = models.IntegerField()
+ content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
+ object_id = models.PositiveIntegerField()
+ content_object = GenericForeignKey('content_type', 'object_id')
tag = models.CharField(max_length=128)
slug = models.SlugField()
@@ -86,17 +89,21 @@ class TaggedItem(models.Model):
self.slug = slugify(self.tag)
super(TaggedItem, self).save(*args, **kwargs)
- def __unicode__(self):
+ def __str__(self):
return self.tag
class Meta:
app_label = "servo"
- unique_together = ("ref", "ref_id", "tag",)
class FlaggedItem(models.Model):
- ref = models.CharField(max_length=32)
- ref_id = models.IntegerField()
+ """
+ A flagged item. This could also be a tag, but how?
+ """
+ content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
+ object_id = models.PositiveIntegerField()
+ content_object = GenericForeignKey('content_type', 'object_id')
+
flagged_by = models.ForeignKey(
settings.AUTH_USER_MODEL,
null=True,
@@ -108,8 +115,9 @@ class Event(models.Model):
"""
Something that happens
"""
- ref = models.CharField(max_length=32)
- ref_id = models.IntegerField()
+ content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
+ object_id = models.PositiveIntegerField()
+ content_object = GenericForeignKey('content_type', 'object_id')
description = models.CharField(max_length=255)
triggered_by = models.ForeignKey(
@@ -147,12 +155,12 @@ class Event(models.Model):
def get_class(self):
return "disabled" if self.handled_at else ""
- def __unicode__(self):
+ def __str__(self):
return self.description
class Meta:
- ordering = ('priority', '-id',)
app_label = "servo"
+ ordering = ('priority', '-id',)
class GsxAccount(models.Model):
@@ -281,7 +289,7 @@ class GsxAccount(models.Model):
def get_admin_url(self):
return reverse('admin-edit_gsx_account', args=[self.pk])
- def __unicode__(self):
+ def __str__(self):
return u"%s (%s)" % (self.title, self.get_environment_display())
class Meta:
@@ -352,7 +360,7 @@ class Tag(MPTTModel):
def get_admin_url(self):
return reverse('admin-edit_tag', args=[self.type, self.pk])
- def __unicode__(self):
+ def __str__(self):
return self.title
objects = TreeManager()
@@ -671,7 +679,7 @@ class Property(models.Model):
)
value = models.TextField(blank=True, default='', verbose_name=_('value'))
- def __unicode__(self):
+ def __str__(self):
return self.title
def get_admin_url(self):
@@ -787,7 +795,7 @@ class Attachment(models.Model):
return super(Attachment, self).save(*args, **kwargs)
- def __unicode__(self):
+ def __str__(self):
return os.path.basename(self.content.name)
def __str__(self):