# HG changeset patch # User Tero Marttila # Date 1376515021 -10800 # Node ID 82eae853e24083f80307237c8ea644439ce67267 # Parent 4f37d3b31dad172b003b8e144b1198382560bd28 tie in URLImage to URLItem diff -r 4f37d3b31dad -r 82eae853e240 cmpuqrct/urls.py --- a/cmpuqrct/urls.py Wed Aug 14 23:59:57 2013 +0300 +++ b/cmpuqrct/urls.py Thu Aug 15 00:17:01 2013 +0300 @@ -11,7 +11,7 @@ # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), url(r'^admin/', include(admin.site.urls)), url(r'^admin$', include(admin.site.urls)), - + # Default. url(r'^', include(qrurls.urls.urlpatterns)), ) diff -r 4f37d3b31dad -r 82eae853e240 qrurls/admin.py --- a/qrurls/admin.py Wed Aug 14 23:59:57 2013 +0300 +++ b/qrurls/admin.py Thu Aug 15 00:17:01 2013 +0300 @@ -13,7 +13,7 @@ publishing_date = None publishing_time = datetime.time() - if urlfeed : + if urlfeed and isinstance(urlfeed, URL) : publishing_date = urlfeed.last_item().published.date() publishing_time = urlfeed.publishing_schedule @@ -29,7 +29,7 @@ for days in xrange(offset, count + offset) : yield datetime.datetime.combine( - publishing_date + datetime.timedelta(days=days), + start_date + datetime.timedelta(days=days), publishing_time ) @@ -92,9 +92,10 @@ 'fields': ('shorturl', 'published', ), }), ("Target", { - 'fields': ('url', ), + 'fields': ('url', 'image'), }), ) + class URLImageAdmin (admin.ModelAdmin) : # hide the "uploaded" field @@ -103,7 +104,9 @@ 'uploaded', 'image', ) + + inlines = (URLItemInline, ) admin.site.register(URL, URLAdmin) admin.site.register(URLItem, URLItemAdmin) -admin.site.register(URLImage) +admin.site.register(URLImage, URLImageAdmin) diff -r 4f37d3b31dad -r 82eae853e240 qrurls/migrations/0005_auto__add_field_urlitem_image.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qrurls/migrations/0005_auto__add_field_urlitem_image.py Thu Aug 15 00:17:01 2013 +0300 @@ -0,0 +1,45 @@ +# -*- 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 'URLItem.image' + db.add_column(u'qrurls_urlitem', 'image', + self.gf('django.db.models.fields.related.ForeignKey')(to=orm['qrurls.URLImage'], null=True, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'URLItem.image' + db.delete_column(u'qrurls_urlitem', 'image_id') + + + 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'}), + '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'}) + } + } + + complete_apps = ['qrurls'] \ No newline at end of file diff -r 4f37d3b31dad -r 82eae853e240 qrurls/models.py --- a/qrurls/models.py Wed Aug 14 23:59:57 2013 +0300 +++ b/qrurls/models.py Thu Aug 15 00:17:01 2013 +0300 @@ -72,13 +72,19 @@ verbose_name_plural = u"URL Images" ordering = ['uploaded'] + def get_absolute_url (self) : + return self.image.url + def __unicode__ (self) : return self.image.name class URLItem(models.Model): shorturl = models.ForeignKey(URL) published = models.DateTimeField() - url = models.URLField() + + # either-or + url = models.URLField(blank=True) # populated from image + image = models.ForeignKey(URLImage, null=True, blank=True) class Meta: verbose_name = u"URL Item" @@ -120,3 +126,10 @@ published_state=self.published_state(), url=self.get_absolute_url(), ) + + def save (self, *args, **kwargs) : + if self.image : + self.url = self.image.get_absolute_url() + + super(URLItem, self).save(*args, **kwargs) +