# -*- coding: utf-8 -*- 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): from annotation.models import Annotation from entity.models import Entity import ox names = {} for e in Entity.objects.order_by('created'): key = (e.type, e.name.lower()) if key not in names: names[key] = [] names[key].append(e.get_id()) for key in names: if len(names[key]) > 1: newid = names[key][0] for oldid in names[key][1:]: Annotation.objects.filter(value=oldid).update(value=newid) Entity.objects.filter(id=ox.fromAZ(oldid)).delete() def backwards(self, orm): "Write your backwards methods here." models = { 'auth.group': { 'Meta': {'object_name': 'Group'}, 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) }, 'auth.permission': { 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) }, 'auth.user': { 'Meta': {'object_name': 'User'}, 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 'email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 'password': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) }, 'contenttypes.contenttype': { 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) }, 'document.document': { 'Meta': {'unique_together': "(('user', 'name', 'extension'),)", 'object_name': 'Document'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'description': ('django.db.models.fields.TextField', [], {'default': "''"}), 'description_sort': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True'}), 'dimensions_sort': ('django.db.models.fields.CharField', [], {'max_length': '512'}), 'extension': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 'file': ('django.db.models.fields.files.FileField', [], {'default': 'None', 'max_length': '100', 'null': 'True', 'blank': 'True'}), 'height': ('django.db.models.fields.IntegerField', [], {'default': '-1'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'documents'", 'symmetrical': 'False', 'through': "orm['document.ItemProperties']", 'to': "orm['item.Item']"}), 'matches': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 'name_sort': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), 'oshash': ('django.db.models.fields.CharField', [], {'max_length': '16', 'unique': 'True', 'null': 'True'}), 'pages': ('django.db.models.fields.IntegerField', [], {'default': '-1'}), 'ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 'size': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'uploading': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'files'", 'to': "orm['auth.User']"}), 'width': ('django.db.models.fields.IntegerField', [], {'default': '-1'}) }, 'document.itemproperties': { 'Meta': {'unique_together': "(('item', 'document'),)", 'object_name': 'ItemProperties'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'description': ('django.db.models.fields.TextField', [], {'default': "''"}), 'description_sort': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True'}), 'document': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'descriptions'", 'to': "orm['document.Document']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'item': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['item.Item']"}), 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) }, 'entity.documentproperties': { 'Meta': {'unique_together': "(('entity', 'document'),)", 'object_name': 'DocumentProperties'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'document': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['document.Document']"}), 'entity': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'documentproperties'", 'to': "orm['entity.Entity']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) }, 'entity.entity': { 'Meta': {'unique_together': "(('type', 'name'),)", 'object_name': 'Entity'}, 'alternativeNames': ('ox.django.fields.TupleField', [], {'default': '[]'}), 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'data': ('ox.django.fields.DictField', [], {'default': '{}'}), 'documents': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'entities'", 'symmetrical': 'False', 'through': "orm['entity.DocumentProperties']", 'to': "orm['document.Document']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'matches': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 'name_find': ('django.db.models.fields.TextField', [], {'default': "''"}), 'name_sort': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), 'type': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 'user': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'entities'", 'null': 'True', 'to': "orm['auth.User']"}) }, 'entity.find': { 'Meta': {'unique_together': "(('entity', 'key'),)", 'object_name': 'Find'}, 'entity': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'find'", 'to': "orm['entity.Entity']"}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'key': ('django.db.models.fields.CharField', [], {'max_length': '200', 'db_index': 'True'}), 'value': ('django.db.models.fields.TextField', [], {'db_index': 'True', 'blank': 'True'}) }, 'item.item': { 'Meta': {'object_name': 'Item'}, 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 'data': ('ox.django.fields.DictField', [], {'default': '{}'}), 'external_data': ('ox.django.fields.DictField', [], {'default': '{}'}), 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'items'", 'blank': 'True', 'to': "orm['auth.Group']"}), 'icon': ('django.db.models.fields.files.ImageField', [], {'default': 'None', 'max_length': '100', 'blank': 'True'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'json': ('ox.django.fields.DictField', [], {'default': '{}'}), 'level': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'}), 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 'oxdbId': ('django.db.models.fields.CharField', [], {'max_length': '42', 'unique': 'True', 'null': 'True', 'blank': 'True'}), 'poster': ('django.db.models.fields.files.ImageField', [], {'default': 'None', 'max_length': '100', 'blank': 'True'}), 'poster_frame': ('django.db.models.fields.FloatField', [], {'default': '-1'}), 'poster_height': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'poster_source': ('django.db.models.fields.TextField', [], {'blank': 'True'}), 'poster_width': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'public_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128', 'blank': 'True'}), 'rendered': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), 'stream_aspect': ('django.db.models.fields.FloatField', [], {'default': '1.3333333333333333'}), 'stream_info': ('ox.django.fields.DictField', [], {'default': '{}'}), 'torrent': ('django.db.models.fields.files.FileField', [], {'default': 'None', 'max_length': '1000', 'blank': 'True'}), 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'items'", 'null': 'True', 'to': "orm['auth.User']"}) } } complete_apps = ['entity'] symmetrical = True