--- 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,
- ))