diff options
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r-- | ishtar_common/models.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 186d88f1a..4e46693de 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -331,6 +331,8 @@ class GeneralType(Cached, models.Model): @classmethod def _get_initial_types(cls, initial, type_pks): new_vals = [] + if not initial: + return [] for value in initial: try: pk = int(value) @@ -580,10 +582,21 @@ class ImageModel(models.Model): null=True) IMAGE_MAX_SIZE = settings.IMAGE_MAX_SIZE THUMB_MAX_SIZE = settings.THUMB_MAX_SIZE + IMAGE_PREFIX = '/' class Meta: abstract = True + def __init__(self, *args, **kwargs): + super(ImageModel, self).__init__(*args, **kwargs) + image = self._meta.get_field_by_name("image")[0] + IMAGE_PREFIX = self.IMAGE_PREFIX + if not IMAGE_PREFIX.endswith('/'): + IMAGE_PREFIX += u'/' + image.upload_to = IMAGE_PREFIX + thumbnail = self._meta.get_field_by_name("thumbnail")[0] + thumbnail.upload_to = IMAGE_PREFIX + "thumbs/" + def has_changed(self, field): if not self.pk: return True @@ -2541,7 +2554,7 @@ class Format(GeneralType): verbose_name_plural = _(u"Formats") -class Source(models.Model): +class Source(ImageModel, models.Model): title = models.CharField(_(u"Title"), max_length=300) external_id = models.CharField(_(u"External ID"), max_length=12, null=True, blank=True) @@ -2576,6 +2589,7 @@ class Source(models.Model): duplicate = models.BooleanField(_(u"Has a duplicate"), default=False) TABLE_COLS = ['title', 'source_type', 'authors', 'associated_url'] COL_LINK = ['associated_url'] + IMAGE_PREFIX = 'sources' class Meta: abstract = True |