Preliminary math and tables support.
[wolnelektury.git] / apps / sponsors / models.py
index 2d18d16..0565b97 100644 (file)
@@ -12,6 +12,7 @@ from PIL import Image
 
 from jsonfield import JSONField
 from django.core.files.base import ContentFile
+from ssify import flush_ssi_includes
 
 THUMB_WIDTH = 120
 THUMB_HEIGHT = 120
@@ -35,7 +36,7 @@ class Sponsor(models.Model):
 
 class SponsorPage(models.Model):
     name = models.CharField(_('name'), max_length=120)
-    sponsors = JSONField(_('sponsors'), default='{}')
+    sponsors = JSONField(_('sponsors'), default={})
     _html = models.TextField(blank=True, editable=False)
     sprite = models.ImageField(upload_to='sponsorzy/sprite', blank=True)
 
@@ -64,7 +65,7 @@ class SponsorPage(models.Model):
             simg = Image.open(sponsors[sponsor_id].logo.path)
             if simg.size[0] > THUMB_WIDTH or simg.size[1] > THUMB_HEIGHT:
                 size = (
-                    min(THUMB_WIDTH, 
+                    min(THUMB_WIDTH,
                         simg.size[0] * THUMB_HEIGHT / simg.size[1]),
                     min(THUMB_HEIGHT,
                         simg.size[1] * THUMB_WIDTH / simg.size[0])
@@ -94,7 +95,12 @@ class SponsorPage(models.Model):
             'sponsors': self.populated_sponsors(),
             'page': self
         })
-        return super(SponsorPage, self).save(*args, **kwargs)
+        ret = super(SponsorPage, self).save(*args, **kwargs)
+        self.flush_includes()
+        return ret
+
+    def flush_includes(self):
+        flush_ssi_includes(['/sponsors/page/%s.html' % self.name])
 
     def __unicode__(self):
         return self.name