summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-11-10 17:20:01 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-11-10 17:20:01 +0100
commit2e4847a414f44600dc25fd1152c1bcff173f76de (patch)
tree5af06729ecc00c740f127d5fd57d1c383efb4e90 /ishtar_common/models.py
parent6f32d8713096f85029c213954816ea50d06f9643 (diff)
downloadIshtar-2e4847a414f44600dc25fd1152c1bcff173f76de.tar.bz2
Ishtar-2e4847a414f44600dc25fd1152c1bcff173f76de.zip
Models: generic images with m2m relations with main items
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 09aec0cdb..08276fa9f 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -887,6 +887,7 @@ class HistoryError(Exception):
def __str__(self):
return repr(self.value)
+
PRIVATE_FIELDS = ('id', 'history_modifier', 'order')
@@ -1447,6 +1448,7 @@ def get_external_id(key, item):
dct[initial_key] = filtr(dct[initial_key])
return formula.format(**dct)
+
CURRENCY = ((u"€", _(u"Euro")),
(u"$", _(u"US dollar")))
FIND_INDEX_SOURCE = ((u"O", _(u"Operations")),
@@ -1651,6 +1653,7 @@ def cached_globalvar_changed(sender, **kwargs):
cache_key, value = get_cache(GlobalVar, var.slug)
cache.set(cache_key, var.value, settings.CACHE_TIMEOUT)
+
post_save.connect(cached_globalvar_changed, sender=GlobalVar)
@@ -2146,6 +2149,8 @@ class OrganizationType(GeneralType):
verbose_name = _(u"Organization type")
verbose_name_plural = _(u"Organization types")
ordering = ('label',)
+
+
post_save.connect(post_save_cache, sender=OrganizationType)
post_delete.connect(post_save_cache, sender=OrganizationType)
@@ -2577,6 +2582,8 @@ class AuthorType(GeneralType):
verbose_name = _(u"Author type")
verbose_name_plural = _(u"Author types")
ordering = ['order', 'label']
+
+
post_save.connect(post_save_cache, sender=AuthorType)
post_delete.connect(post_save_cache, sender=AuthorType)
@@ -2635,6 +2642,8 @@ class Format(GeneralType):
verbose_name = _(u"Format type")
verbose_name_plural = _(u"Format types")
ordering = ['label']
+
+
post_save.connect(post_save_cache, sender=Format)
post_delete.connect(post_save_cache, sender=Format)
@@ -2696,6 +2705,45 @@ class Source(OwnPerms, ImageModel, models.Model):
return slugify(u"-".join(values))
+class LicenseType(GeneralType):
+ class Meta:
+ verbose_name = _(u"License type")
+ verbose_name_plural = _(u"License types")
+ ordering = ('label',)
+
+
+class ImageType(GeneralType):
+ class Meta:
+ verbose_name = _(u"Image type")
+ verbose_name_plural = _(u"Image types")
+ ordering = ('label',)
+
+
+class IshtarImage(ImageModel):
+ name = models.CharField(_(u"Name"), max_length=250)
+ description = models.TextField(_(u"Description"), blank=True, null=True)
+ licenses = models.ManyToManyField(LicenseType, verbose_name=_(u"License"),
+ blank=True)
+ authors = models.ManyToManyField(Author, verbose_name=_(u"Authors"),
+ blank=True)
+ authors_raw = models.CharField(verbose_name=_(u"Authors (raw)"),
+ blank=True, null=True, max_length=250)
+
+ image_type = models.ForeignKey(ImageType, verbose_name=_(u"Type"),
+ blank=True, null=True)
+ creation_date = models.DateField(blank=True, null=True,
+ verbose_name=_(u"Creation date"))
+ reference = models.CharField(_(u"Ref."), max_length=250, null=True,
+ blank=True)
+ internal_reference = models.CharField(
+ _(u"Internal ref."), max_length=250, null=True, blank=True)
+
+ class Meta:
+ verbose_name = _(u"Image")
+ verbose_name_plural = _(u"Images")
+ ordering = ('name',)
+
+
if settings.COUNTRY == 'fr':
class Arrondissement(models.Model):
name = models.CharField(u"Nom", max_length=30)
@@ -2893,6 +2941,8 @@ class OperationType(GeneralType):
if not key:
return op_type.preventive
return key == op_type.txt_idx
+
+
post_save.connect(post_save_cache, sender=OperationType)
post_delete.connect(post_save_cache, sender=OperationType)