1 #@PydevCodeAnalysisIgnore |
|
2 # encoding: utf-8 |
|
3 import datetime |
|
4 from south.db import db |
|
5 from south.v2 import DataMigration |
|
6 from django.db import models |
|
7 from django.conf import settings |
|
8 from ldt.security.command import set_default_permissions |
|
9 |
|
10 |
|
11 class Migration(DataMigration): |
|
12 |
|
13 depends_on = ( |
|
14 ("guardian", "0005_auto__chg_field_groupobjectpermission_object_pk__chg_field_userobjectp"), |
|
15 ("user", "0004_fill_language"), |
|
16 ("user", "0007_auto__add_groupprofile") |
|
17 ) |
|
18 |
|
19 def forwards(self, orm): |
|
20 |
|
21 for model in ["project", "content", "segment", "author", "media"]: |
|
22 self.add_perm(orm, model) |
|
23 |
|
24 # Run command ./manage.py assignpermissions after this migration |
|
25 |
|
26 |
|
27 def add_perm(self, orm, model_name): |
|
28 # Since south does not migrate permissions, they need to |
|
29 # be added to the database manually |
|
30 ct, created = orm['contenttypes.ContentType'].objects.get_or_create(model=model_name, app_label='ldt_utils') # model must be lowercase! |
|
31 orm['auth.permission'].objects.get_or_create(content_type=ct, codename='view_%s' % model_name, defaults={'name': 'Can view %s' % model_name }) |
|
32 |
|
33 def backwards(self, orm): |
|
34 "Write your backwards methods here." |
|
35 |
|
36 |
|
37 models = { |
|
38 'auth.group': { |
|
39 'Meta': {'object_name': 'Group'}, |
|
40 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
41 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
|
42 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
|
43 }, |
|
44 'auth.message': { |
|
45 'Meta': {'object_name': 'Message'}, |
|
46 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
47 'message': ('django.db.models.fields.TextField', [], {}), |
|
48 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'_message_set'", 'to': "orm['auth.User']"}) |
|
49 }, |
|
50 'auth.permission': { |
|
51 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, |
|
52 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
|
53 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), |
|
54 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
55 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
|
56 }, |
|
57 'auth.user': { |
|
58 'Meta': {'object_name': 'User'}, |
|
59 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
|
60 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
|
61 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
|
62 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
|
63 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
64 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
|
65 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
|
66 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
|
67 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
|
68 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
|
69 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
|
70 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
|
71 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
|
72 }, |
|
73 'contenttypes.contenttype': { |
|
74 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
|
75 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
|
76 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
77 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
|
78 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
|
79 }, |
|
80 'ldt_utils.author': { |
|
81 'Meta': {'object_name': 'Author'}, |
|
82 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), |
|
83 'firstname': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}), |
|
84 'handle': ('django.db.models.fields.CharField', [], {'max_length': '512', 'unique': 'True', 'null': 'True', 'blank': 'True'}), |
|
85 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
86 'lastname': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}) |
|
87 }, |
|
88 'ldt_utils.content': { |
|
89 'Meta': {'ordering': "['title']", 'object_name': 'Content'}, |
|
90 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ldt_utils.Author']", 'symmetrical': 'False', 'blank': 'True'}), |
|
91 'content_creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
|
92 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
|
93 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
|
94 'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
|
95 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
96 'iri_id': ('django.db.models.fields.CharField', [], {'default': "u'b6e0454f-174c-11e1-af90-001485352c9a'", 'unique': 'True', 'max_length': '1024'}), |
|
97 'iriurl': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), |
|
98 'media_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ldt_utils.Media']", 'null': 'True', 'blank': 'True'}), |
|
99 'tags': ('tagging.fields.TagField', [], {'max_length': '2048', 'null': 'True'}), |
|
100 'title': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), |
|
101 'update_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) |
|
102 }, |
|
103 'ldt_utils.media': { |
|
104 'Meta': {'object_name': 'Media'}, |
|
105 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
|
106 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), |
|
107 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
|
108 'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
|
109 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), |
|
110 'external_permalink': ('django.db.models.fields.URLField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), |
|
111 'external_publication_url': ('django.db.models.fields.URLField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), |
|
112 'external_src_url': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), |
|
113 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
114 'media_creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
|
115 'mimetype_field': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}), |
|
116 'src': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '1024'}), |
|
117 'title': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), |
|
118 'update_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
|
119 'videopath': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}) |
|
120 }, |
|
121 'ldt_utils.project': { |
|
122 'Meta': {'ordering': "['title']", 'object_name': 'Project'}, |
|
123 'changed_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), |
|
124 'contents': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ldt_utils.Content']", 'symmetrical': 'False'}), |
|
125 'created_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), |
|
126 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
|
127 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
|
128 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
129 'ldt': ('django.db.models.fields.TextField', [], {'null': 'True'}), |
|
130 'ldt_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '1024'}), |
|
131 'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
|
132 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), |
|
133 'state': ('django.db.models.fields.IntegerField', [], {'default': '1'}), |
|
134 'title': ('django.db.models.fields.CharField', [], {'max_length': '1024'}) |
|
135 }, |
|
136 'ldt_utils.segment': { |
|
137 'Meta': {'unique_together': "(('project_id', 'iri_id', 'ensemble_id', 'cutting_id', 'element_id'),)", 'object_name': 'Segment'}, |
|
138 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
|
139 'author': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), |
|
140 'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ldt_utils.Content']"}), |
|
141 'cutting_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), |
|
142 'date': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), |
|
143 'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), |
|
144 'element_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), |
|
145 'ensemble_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), |
|
146 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
147 'iri_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), |
|
148 'project_id': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), |
|
149 'project_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ldt_utils.Project']", 'null': 'True'}), |
|
150 'start_ts': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), |
|
151 'tags': ('tagging.fields.TagField', [], {'max_length': '2048', 'null': 'True'}), |
|
152 'title': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}) |
|
153 } |
|
154 } |
|
155 |
|
156 complete_apps = ['ldt_utils'] |
|