migration fix
[wolnelektury.git] / apps / sponsors / migrations / 0002_move_path.py
1 # encoding: utf-8
2 import datetime
3 from south.db import db
4 from south.v2 import DataMigration
5 from django.db import models
6
7 from django.conf import settings
8 from shutil import move
9 from os import path
10
11
12 def move_sponsors_media(orm, old, new):
13     try:
14         move(path.join(settings.MEDIA_ROOT, old), 
15              path.join(settings.MEDIA_ROOT, new))
16     except IOError:
17         # there could be no sponsors directory yet
18         pass
19     for sponsor in orm.Sponsor.objects.all():
20         base, rest = sponsor.logo.name.split('/', 1)
21         sponsor.logo.name = '/'.join((new, rest))
22         sponsor.save()
23     # reset cache
24     for sponsor_page in orm.SponsorPage.objects.all():
25         sponsor_page.save()
26     
27
28 class Migration(DataMigration):
29     
30     def forwards(self, orm):
31         "Write your forwards methods here."
32         if not db.dry_run:
33             move_sponsors_media(orm, 'sponsors', 'sponsorzy')
34     
35     def backwards(self, orm):
36         "Write your backwards methods here."
37         if not db.dry_run:
38             move_sponsors_media(orm, 'sponsorzy', 'sponsors')
39     
40     
41     models = {
42         'sponsors.sponsor': {
43             'Meta': {'object_name': 'Sponsor'},
44             '_description': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
45             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
46             'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}),
47             'name': ('django.db.models.fields.CharField', [], {'max_length': '120'}),
48             'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
49         },
50         'sponsors.sponsorpage': {
51             'Meta': {'object_name': 'SponsorPage'},
52             '_html': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
53             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
54             'name': ('django.db.models.fields.CharField', [], {'max_length': '120'}),
55             'sponsors': ('sponsors.fields.JSONField', [], {'default': '{}'})
56         }
57     }
58     
59     complete_apps = ['sponsors']