|
|
# -*- coding: utf-8 -*-
|
|
|
import hashlib
|
|
|
|
|
|
from south.utils import datetime_utils as datetime
|
|
|
from south.db import db
|
|
|
from south.v2 import DataMigration
|
|
|
from django.db import models
|
|
|
|
|
|
class Migration(DataMigration):
|
|
|
|
|
|
def forwards(self, orm):
|
|
|
# Note: Don't use "from appname.models import ModelName".
|
|
|
# Use orm.ModelName to refer to models in this application,
|
|
|
# and orm['appname.ModelName'] for models in other applications.
|
|
|
for post in orm.Post.objects.filter(image_width__gt=0):
|
|
|
md5 = hashlib.md5()
|
|
|
for chunk in post.image.chunks():
|
|
|
md5.update(chunk)
|
|
|
image_hash = md5.hexdigest()
|
|
|
post.image_hash = image_hash
|
|
|
post.save()
|
|
|
|
|
|
def backwards(self, orm):
|
|
|
"Write your backwards methods here."
|
|
|
|
|
|
models = {
|
|
|
'boards.ban': {
|
|
|
'Meta': {'object_name': 'Ban'},
|
|
|
'can_read': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
|
|
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
|
'ip': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}),
|
|
|
'reason': ('django.db.models.fields.CharField', [], {'default': "'Auto'", 'max_length': '200'})
|
|
|
},
|
|
|
'boards.post': {
|
|
|
'Meta': {'object_name': 'Post'},
|
|
|
'_text_rendered': ('django.db.models.fields.TextField', [], {}),
|
|
|
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
|
'image': ('boards.thumbs.ImageWithThumbsField', [], {'max_length': '100', 'blank': 'True'}),
|
|
|
'image_hash': ('django.db.models.fields.CharField', [], {'max_length': '36'}),
|
|
|
'image_height': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
|
'image_pre_height': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
|
'image_pre_width': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
|
'image_width': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
|
|
'last_edit_time': ('django.db.models.fields.DateTimeField', [], {}),
|
|
|
'poster_ip': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}),
|
|
|
'poster_user_agent': ('django.db.models.fields.TextField', [], {}),
|
|
|
'pub_time': ('django.db.models.fields.DateTimeField', [], {}),
|
|
|
'referenced_posts': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'rfp+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['boards.Post']"}),
|
|
|
'text': ('markupfield.fields.MarkupField', [], {'rendered_field': 'True'}),
|
|
|
'text_markup_type': ('django.db.models.fields.CharField', [], {'default': "'markdown'", 'max_length': '30'}),
|
|
|
'thread': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['boards.Post']", 'null': 'True'}),
|
|
|
'thread_new': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['boards.Thread']", 'null': 'True'}),
|
|
|
'title': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
|
|
|
'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'to': "orm['boards.User']", 'null': 'True'})
|
|
|
},
|
|
|
'boards.setting': {
|
|
|
'Meta': {'object_name': 'Setting'},
|
|
|
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
|
|
|
'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['boards.User']"}),
|
|
|
'value': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
|
},
|
|
|
'boards.tag': {
|
|
|
'Meta': {'object_name': 'Tag'},
|
|
|
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
|
'linked': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['boards.Tag']", 'null': 'True', 'blank': 'True'}),
|
|
|
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
|
|
'threads': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'tag+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['boards.Thread']"})
|
|
|
},
|
|
|
'boards.thread': {
|
|
|
'Meta': {'object_name': 'Thread'},
|
|
|
'archived': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
|
|
'bump_time': ('django.db.models.fields.DateTimeField', [], {}),
|
|
|
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
|
'last_edit_time': ('django.db.models.fields.DateTimeField', [], {}),
|
|
|
'replies': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'tre+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['boards.Post']"}),
|
|
|
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['boards.Tag']", 'symmetrical': 'False'})
|
|
|
},
|
|
|
'boards.user': {
|
|
|
'Meta': {'object_name': 'User'},
|
|
|
'fav_tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['boards.Tag']", 'null': 'True', 'blank': 'True'}),
|
|
|
'fav_threads': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['boards.Post']"}),
|
|
|
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
|
|
'rank': ('django.db.models.fields.IntegerField', [], {}),
|
|
|
'registration_time': ('django.db.models.fields.DateTimeField', [], {}),
|
|
|
'user_id': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
complete_apps = ['boards']
|
|
|
symmetrical = True
|
|
|
|