qrurl image title
authorTero Marttila <terom@fixme.fi>
Thu, 15 Aug 2013 01:16:10 +0300
changeset 40 5eefe5a294dc
parent 39 e0f2c1597f87
child 41 4d38296d58a3
qrurl image title
qrurls/admin.py
qrurls/migrations/0006_auto__add_field_urlimage_title.py
qrurls/models.py
qrurls/templates/qrurls/image.html
qrurls/views.py
--- a/qrurls/admin.py	Thu Aug 15 01:02:31 2013 +0300
+++ b/qrurls/admin.py	Thu Aug 15 01:16:10 2013 +0300
@@ -105,6 +105,7 @@
     # hide the "uploaded" field
     fields = (
         'image',
+        'title',
     )
     readonly_fields = (
         'uploaded',
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/qrurls/migrations/0006_auto__add_field_urlimage_title.py	Thu Aug 15 01:16:10 2013 +0300
@@ -0,0 +1,46 @@
+# -*- 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.title'
+        db.add_column(u'qrurls_urlimage', 'title',
+                      self.gf('django.db.models.fields.CharField')(default='Untitled', max_length=1024),
+                      keep_default=False)
+
+
+    def backwards(self, orm):
+        # Deleting field 'URLImage.title'
+        db.delete_column(u'qrurls_urlimage', 'title')
+
+
+    models = {
+        u'qrurls.url': {
+            'Meta': {'object_name': 'URL'},
+            u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'publishing_schedule': ('django.db.models.fields.TimeField', [], {'default': 'datetime.time(0, 0)'}),
+            'shorturl': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'})
+        },
+        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'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
+            '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	Thu Aug 15 01:02:31 2013 +0300
+++ b/qrurls/models.py	Thu Aug 15 01:16:10 2013 +0300
@@ -65,6 +65,7 @@
 
 class URLImage(models.Model):
     image = models.ImageField(upload_to='qrurls-images')
+    title = models.CharField(max_length=1024)
     uploaded = models.DateTimeField(auto_now_add=True)
 
     class Meta:
--- a/qrurls/templates/qrurls/image.html	Thu Aug 15 01:02:31 2013 +0300
+++ b/qrurls/templates/qrurls/image.html	Thu Aug 15 01:16:10 2013 +0300
@@ -1,12 +1,12 @@
 {% load staticfiles %}
 <html>
     <head>
-        <title>{{ image }}</title>
+        <title>{{ title }}</title>
         <link rel="stylesheet" type="text/css" href="{% static 'qrurls/qrurls.css' %}" />
     </head>
     <body class="qrurls-image">
         <div class="container">
-            <img src="{{ image.get_absolute_url }}" alt="{{ image }}"  />
+            <img src="{{ image.get_absolute_url }}" alt="{{ title }}" title="{{ title }}" />
         </div>
     </body>
 </html>
--- a/qrurls/views.py	Thu Aug 15 01:02:31 2013 +0300
+++ b/qrurls/views.py	Thu Aug 15 01:16:10 2013 +0300
@@ -34,7 +34,7 @@
     if not url_item :
         raise Http404()
 
-    # redirect
+    # redirect, either directly, or to image()
     url = url_item.get_absolute_url()
 
     return HttpResponseRedirect(url)
@@ -45,10 +45,13 @@
         url_item = URLItem.objects.get(shorturl=url_feed, id=int(item_id))
     except URLItem.DoesNotExist :
         raise Http404()
-        
-    if not url_item.image :
+    
+    if url_item.image :
+        return render(request, 'qrurls/image.html', dict(
+            title   = url_item.image.title,
+            image   = url_item.image,
+        ))
+    elif url_item.url :
+        return HttpResponseRedirect(url_item.url)
+    else :
         raise Http404()
-
-    return render(request, 'qrurls/image.html', dict(
-        image   = url_item.image,
-    ))