store filename for URLImages
authorTero Marttila <terom@fixme.fi>
Sat, 31 Aug 2013 21:39:02 +0300
changeset 66 8ca335eab457
parent 65 b6ce70e51bce
child 67 dbb8316af016
store filename for URLImages
qrurls/admin.py
qrurls/migrations/0010_auto__add_field_urlimage_name.py
qrurls/models.py
--- a/qrurls/admin.py	Sat Aug 31 21:36:49 2013 +0300
+++ b/qrurls/admin.py	Sat Aug 31 21:39:02 2013 +0300
@@ -231,16 +231,19 @@
     show_image.allow_tags = True
 
     list_display = (
-        'title',
+        'name',
         'uploaded',
     )
     # hide the "uploaded" field
     fields = (
         'image',
+        'name',
+        'uploaded',
         'title',
         'show_image',
     )
     readonly_fields = (
+        'name',
         'uploaded',
         'show_image',
     )
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/qrurls/migrations/0010_auto__add_field_urlimage_name.py	Sat Aug 31 21:39:02 2013 +0300
@@ -0,0 +1,49 @@
+# -*- coding: utf-8 -*-
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        # Adding field 'URLImage.name'
+        db.add_column(u'qrurls_urlimage', 'name',
+                      self.gf('django.db.models.fields.CharField')(default='unknown', max_length=512),
+                      keep_default=False)
+
+
+    def backwards(self, orm):
+        # Deleting field 'URLImage.name'
+        db.delete_column(u'qrurls_urlimage', 'name')
+
+
+    models = {
+        u'qrurls.url': {
+            'Meta': {'object_name': 'URL'},
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'publishing_days': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+            'publishing_time': ('django.db.models.fields.TimeField', [], {'default': 'datetime.time(0, 0)'}),
+            'shorturl': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'})
+        },
+        u'qrurls.urlimage': {
+            'Meta': {'ordering': "['uploaded']", 'object_name': 'URLImage'},
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '512'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}),
+            'uploaded': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'})
+        },
+        u'qrurls.urlitem': {
+            'Meta': {'ordering': "['published']", 'object_name': 'URLItem'},
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['qrurls.URLImage']", 'null': 'True', 'blank': 'True'}),
+            'published': ('django.db.models.fields.DateTimeField', [], {}),
+            'shorturl': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['qrurls.URL']"}),
+            'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
+        }
+    }
+
+    complete_apps = ['qrurls']
\ No newline at end of file
--- a/qrurls/models.py	Sat Aug 31 21:36:49 2013 +0300
+++ b/qrurls/models.py	Sat Aug 31 21:39:02 2013 +0300
@@ -29,7 +29,7 @@
         return hash.hexdigest()
     
     def save (self, name, content) :
-        # Get the proper name for the file, as it will actually be saved.
+        """Convert uploaded filename to a hash of the contents for storage."""
         if name is None:
             name = content.name
         
@@ -143,6 +143,7 @@
 
 class URLImage(models.Model):
     image = models.ImageField(upload_to=IMAGES_MEDIA, storage=SecretFileSystemStorage())
+    name = models.CharField(max_length=512, blank=False)
     title = models.CharField(max_length=1024, blank=True)
     uploaded = models.DateTimeField(auto_now_add=True)
 
@@ -151,11 +152,17 @@
         verbose_name_plural = u"URL Images"
         ordering = ['uploaded']
 
+    def save (self) :
+        # keep real filename before saving with hash
+        self.name = self.image.name
+
+        super(URLImage, self).save()
+
     def get_absolute_url (self) :
         return self.image.url
 
     def __unicode__ (self) :
-        return "[%s] %s" % (self.uploaded.strftime("%Y-%m-%d"), self.title)
+        return "[%s] %s" % (self.uploaded.strftime("%Y-%m-%d"), self.name)
 
 class URLItem(models.Model):
     shorturl = models.ForeignKey(URL)