Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / migrations / 0015_auto__add_chain__add_project__add_projectmembership__add_unique_projec.py @ 67cf14bf

History | View | Annotate | Download (39.6 kB)

1
# encoding: utf-8
2
import datetime
3
from south.db import db
4
from south.v2 import SchemaMigration
5
from django.db import models
6

    
7
class Migration(SchemaMigration):
8

    
9
    def forwards(self, orm):
10

    
11
        # Removing unique constraint on 'AstakosUser', fields ['third_party_identifier', 'provider']
12
        try:
13
            db.delete_unique('im_astakosuser', ['third_party_identifier', 'provider'])
14
        except:
15
            pass
16

    
17
        # Adding model 'Chain'
18
        db.create_table('im_chain', (
19
            ('chain', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
20
        ))
21
        db.send_create_signal('im', ['Chain'])
22

    
23
        # Adding model 'Project'
24
        db.create_table('im_project', (
25
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
26
            ('application', self.gf('django.db.models.fields.related.OneToOneField')(related_name='project', unique=True, to=orm['im.ProjectApplication'])),
27
            ('last_approval_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
28
            ('deactivation_reason', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)),
29
            ('deactivation_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
30
            ('creation_date', self.gf('django.db.models.fields.DateTimeField')()),
31
            ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=80, db_index=True)),
32
            ('is_modified', self.gf('django.db.models.fields.BooleanField')(default=False, db_index=True)),
33
            ('is_active', self.gf('django.db.models.fields.BooleanField')(default=True, db_index=True)),
34
            ('state', self.gf('django.db.models.fields.IntegerField')(default=1, db_index=True)),
35
        ))
36
        db.send_create_signal('im', ['Project'])
37

    
38
        # Adding model 'ProjectMembership'
39
        db.create_table('im_projectmembership', (
40
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
41
            ('person', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.AstakosUser'])),
42
            ('request_date', self.gf('django.db.models.fields.DateField')(default=datetime.datetime(2013, 1, 11, 12, 54, 30, 986304))),
43
            ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.Project'])),
44
            ('state', self.gf('django.db.models.fields.IntegerField')(default=0, db_index=True)),
45
            ('is_pending', self.gf('django.db.models.fields.BooleanField')(default=False, db_index=True)),
46
            ('is_active', self.gf('django.db.models.fields.BooleanField')(default=False, db_index=True)),
47
            ('application', self.gf('django.db.models.fields.related.ForeignKey')(related_name='memberships', null=True, to=orm['im.ProjectApplication'])),
48
            ('pending_application', self.gf('django.db.models.fields.related.ForeignKey')(related_name='pending_memebrships', null=True, to=orm['im.ProjectApplication'])),
49
            ('pending_serial', self.gf('django.db.models.fields.BigIntegerField')(null=True, db_index=True)),
50
            ('acceptance_date', self.gf('django.db.models.fields.DateField')(null=True, db_index=True)),
51
            ('leave_request_date', self.gf('django.db.models.fields.DateField')(null=True)),
52
        ))
53
        db.send_create_signal('im', ['ProjectMembership'])
54

    
55
        # Adding unique constraint on 'ProjectMembership', fields ['person', 'project']
56
        db.create_unique('im_projectmembership', ['person_id', 'project_id'])
57

    
58
        # Adding model 'ResourceMetadata'
59
        db.create_table('im_resourcemetadata', (
60
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
61
            ('key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255, db_index=True)),
62
            ('value', self.gf('django.db.models.fields.CharField')(max_length=255)),
63
        ))
64
        db.send_create_signal('im', ['ResourceMetadata'])
65

    
66
        # Adding model 'AstakosUserAuthProvider'
67
        db.create_table('im_astakosuserauthprovider', (
68
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
69
            ('affiliation', self.gf('django.db.models.fields.CharField')(default=None, max_length=255, null=True, blank=True)),
70
            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='auth_providers', to=orm['im.AstakosUser'])),
71
            ('module', self.gf('django.db.models.fields.CharField')(default='local', max_length=255)),
72
            ('identifier', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
73
            ('active', self.gf('django.db.models.fields.BooleanField')(default=True)),
74
            ('auth_backend', self.gf('django.db.models.fields.CharField')(default='astakos', max_length=255)),
75
            ('info_data', self.gf('django.db.models.fields.TextField')(default='', null=True, blank=True)),
76
            ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)),
77
        ))
78
        db.send_create_signal('im', ['AstakosUserAuthProvider'])
79

    
80
        # Adding unique constraint on 'AstakosUserAuthProvider', fields ['identifier', 'module', 'user']
81
        db.create_unique('im_astakosuserauthprovider', ['identifier', 'module', 'user_id'])
82

    
83
        # Adding model 'Serial'
84
        db.create_table('im_serial', (
85
            ('serial', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
86
        ))
87
        db.send_create_signal('im', ['Serial'])
88

    
89
        # Adding model 'Resource'
90
        db.create_table('im_resource', (
91
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
92
            ('name', self.gf('django.db.models.fields.CharField')(max_length=255)),
93
            ('service', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.Service'])),
94
            ('desc', self.gf('django.db.models.fields.TextField')(null=True)),
95
            ('unit', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)),
96
            ('group', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)),
97
        ))
98
        db.send_create_signal('im', ['Resource'])
99

    
100
        # Adding M2M table for field meta on 'Resource'
101
        db.create_table('im_resource_meta', (
102
            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
103
            ('resource', models.ForeignKey(orm['im.resource'], null=False)),
104
            ('resourcemetadata', models.ForeignKey(orm['im.resourcemetadata'], null=False))
105
        ))
106
        db.create_unique('im_resource_meta', ['resource_id', 'resourcemetadata_id'])
107

    
108
        # Adding unique constraint on 'Resource', fields ['name', 'service']
109
        db.create_unique('im_resource', ['name', 'service_id'])
110

    
111
        # Adding model 'SessionCatalog'
112
        db.create_table('im_sessioncatalog', (
113
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
114
            ('session_key', self.gf('django.db.models.fields.CharField')(max_length=40)),
115
            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='sessions', null=True, to=orm['im.AstakosUser'])),
116
        ))
117
        db.send_create_signal('im', ['SessionCatalog'])
118

    
119
        # Adding model 'ProjectMembershipHistory'
120
        db.create_table('im_projectmembershiphistory', (
121
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
122
            ('person', self.gf('django.db.models.fields.BigIntegerField')()),
123
            ('project', self.gf('django.db.models.fields.BigIntegerField')()),
124
            ('date', self.gf('django.db.models.fields.DateField')(default=datetime.datetime.now)),
125
            ('reason', self.gf('django.db.models.fields.IntegerField')()),
126
            ('serial', self.gf('django.db.models.fields.BigIntegerField')()),
127
        ))
128
        db.send_create_signal('im', ['ProjectMembershipHistory'])
129

    
130
        # Adding model 'AstakosUserQuota'
131
        db.create_table('im_astakosuserquota', (
132
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
133
            ('capacity', self.gf('django.db.models.fields.BigIntegerField')(null=True)),
134
            ('quantity', self.gf('django.db.models.fields.BigIntegerField')(null=True)),
135
            ('export_limit', self.gf('django.db.models.fields.BigIntegerField')(null=True)),
136
            ('import_limit', self.gf('django.db.models.fields.BigIntegerField')(null=True)),
137
            ('resource', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.Resource'])),
138
            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.AstakosUser'])),
139
        ))
140
        db.send_create_signal('im', ['AstakosUserQuota'])
141

    
142
        # Adding unique constraint on 'AstakosUserQuota', fields ['resource', 'user']
143
        db.create_unique('im_astakosuserquota', ['resource_id', 'user_id'])
144

    
145
        # Adding model 'ProjectResourceGrant'
146
        db.create_table('im_projectresourcegrant', (
147
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
148
            ('resource', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.Resource'])),
149
            ('project_application', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.ProjectApplication'], null=True)),
150
            ('project_capacity', self.gf('snf_django.lib.db.fields.IntDecimalField')(default=100000000000000000000000000000000L, max_digits=38, decimal_places=0)),
151
            ('project_import_limit', self.gf('snf_django.lib.db.fields.IntDecimalField')(default=100000000000000000000000000000000L, max_digits=38, decimal_places=0)),
152
            ('project_export_limit', self.gf('snf_django.lib.db.fields.IntDecimalField')(default=100000000000000000000000000000000L, max_digits=38, decimal_places=0)),
153
            ('member_capacity', self.gf('snf_django.lib.db.fields.IntDecimalField')(default=100000000000000000000000000000000L, max_digits=38, decimal_places=0)),
154
            ('member_import_limit', self.gf('snf_django.lib.db.fields.IntDecimalField')(default=100000000000000000000000000000000L, max_digits=38, decimal_places=0)),
155
            ('member_export_limit', self.gf('snf_django.lib.db.fields.IntDecimalField')(default=100000000000000000000000000000000L, max_digits=38, decimal_places=0)),
156
        ))
157
        db.send_create_signal('im', ['ProjectResourceGrant'])
158

    
159
        # Adding unique constraint on 'ProjectResourceGrant', fields ['resource', 'project_application']
160
        db.create_unique('im_projectresourcegrant', ['resource_id', 'project_application_id'])
161

    
162
        # Adding model 'PendingThirdPartyUser'
163
        db.create_table('im_pendingthirdpartyuser', (
164
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
165
            ('third_party_identifier', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
166
            ('provider', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
167
            ('email', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True, blank=True)),
168
            ('first_name', self.gf('django.db.models.fields.CharField')(max_length=30, null=True, blank=True)),
169
            ('last_name', self.gf('django.db.models.fields.CharField')(max_length=30, null=True, blank=True)),
170
            ('affiliation', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
171
            ('username', self.gf('django.db.models.fields.CharField')(unique=True, max_length=30)),
172
            ('token', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
173
            ('created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, null=True, blank=True)),
174
            ('info', self.gf('django.db.models.fields.TextField')(default='', null=True, blank=True)),
175
        ))
176
        db.send_create_signal('im', ['PendingThirdPartyUser'])
177

    
178
        # Adding unique constraint on 'PendingThirdPartyUser', fields ['provider', 'third_party_identifier']
179
        db.create_unique('im_pendingthirdpartyuser', ['provider', 'third_party_identifier'])
180

    
181
        # Adding model 'ProjectApplication'
182
        db.create_table('im_projectapplication', (
183
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
184
            ('applicant', self.gf('django.db.models.fields.related.ForeignKey')(related_name='projects_applied', to=orm['im.AstakosUser'])),
185
            ('state', self.gf('django.db.models.fields.IntegerField')(default=0)),
186
            ('owner', self.gf('django.db.models.fields.related.ForeignKey')(related_name='projects_owned', to=orm['im.AstakosUser'])),
187
            ('chain', self.gf('django.db.models.fields.IntegerField')()),
188
            ('precursor_application', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['im.ProjectApplication'], unique=True, null=True, blank=True)),
189
            ('name', self.gf('django.db.models.fields.CharField')(max_length=80)),
190
            ('homepage', self.gf('django.db.models.fields.URLField')(max_length=255, null=True)),
191
            ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
192
            ('start_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
193
            ('end_date', self.gf('django.db.models.fields.DateTimeField')()),
194
            ('member_join_policy', self.gf('django.db.models.fields.IntegerField')()),
195
            ('member_leave_policy', self.gf('django.db.models.fields.IntegerField')()),
196
            ('limit_on_members_number', self.gf('django.db.models.fields.PositiveIntegerField')(null=True)),
197
            ('comments', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
198
            ('issue_date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
199
        ))
200
        db.send_create_signal('im', ['ProjectApplication'])
201

    
202
        # Adding unique constraint on 'ProjectApplication', fields ['chain', 'id']
203
        db.create_unique('im_projectapplication', ['chain', 'id'])
204

    
205
        # Adding field 'Service.order'
206
        db.add_column('im_service', 'order', self.gf('django.db.models.fields.PositiveIntegerField')(default=0), keep_default=False)
207

    
208
        # Adding index on 'Service', fields ['name']
209
        db.create_index('im_service', ['name'])
210

    
211
        # Adding field 'AstakosUser.uuid'
212
        db.add_column('im_astakosuser', 'uuid', self.gf('django.db.models.fields.CharField')(max_length=255, unique=True, null=True), keep_default=False)
213

    
214
        # Adding field 'AstakosUser.disturbed_quota'
215
        db.add_column('im_astakosuser', 'disturbed_quota', self.gf('django.db.models.fields.BooleanField')(default=False, db_index=True), keep_default=False)
216

    
217
        # Changing field 'AstakosUser.affiliation'
218
        db.alter_column('im_astakosuser', 'affiliation', self.gf('django.db.models.fields.CharField')(max_length=255, null=True))
219

    
220
        # Changing field 'AstakosUser.provider'
221
        db.alter_column('im_astakosuser', 'provider', self.gf('django.db.models.fields.CharField')(max_length=255, null=True))
222

    
223
        # Changin field 'auth_user.username'
224
        db.alter_column('auth_user', 'username', models.CharField(max_length=75))
225

    
226

    
227
    def backwards(self, orm):
228

    
229
        # Removing index on 'Service', fields ['name']
230
        db.delete_index('im_service', ['name'])
231

    
232
        # Removing unique constraint on 'ProjectApplication', fields ['chain', 'id']
233
        db.delete_unique('im_projectapplication', ['chain', 'id'])
234

    
235
        # Removing unique constraint on 'PendingThirdPartyUser', fields ['provider', 'third_party_identifier']
236
        db.delete_unique('im_pendingthirdpartyuser', ['provider', 'third_party_identifier'])
237

    
238
        # Removing unique constraint on 'ProjectResourceGrant', fields ['resource', 'project_application']
239
        db.delete_unique('im_projectresourcegrant', ['resource_id', 'project_application_id'])
240

    
241
        # Removing unique constraint on 'AstakosUserQuota', fields ['resource', 'user']
242
        db.delete_unique('im_astakosuserquota', ['resource_id', 'user_id'])
243

    
244
        # Removing unique constraint on 'Resource', fields ['name', 'service']
245
        db.delete_unique('im_resource', ['name', 'service_id'])
246

    
247
        # Removing unique constraint on 'AstakosUserAuthProvider', fields ['identifier', 'module', 'user']
248
        db.delete_unique('im_astakosuserauthprovider', ['identifier', 'module', 'user_id'])
249

    
250
        # Removing unique constraint on 'ProjectMembership', fields ['person', 'project']
251
        db.delete_unique('im_projectmembership', ['person_id', 'project_id'])
252

    
253
        # Deleting model 'Chain'
254
        db.delete_table('im_chain')
255

    
256
        # Deleting model 'Project'
257
        db.delete_table('im_project')
258

    
259
        # Deleting model 'ProjectMembership'
260
        db.delete_table('im_projectmembership')
261

    
262
        # Deleting model 'ResourceMetadata'
263
        db.delete_table('im_resourcemetadata')
264

    
265
        # Deleting model 'AstakosUserAuthProvider'
266
        db.delete_table('im_astakosuserauthprovider')
267

    
268
        # Deleting model 'Serial'
269
        db.delete_table('im_serial')
270

    
271
        # Deleting model 'Resource'
272
        db.delete_table('im_resource')
273

    
274
        # Removing M2M table for field meta on 'Resource'
275
        db.delete_table('im_resource_meta')
276

    
277
        # Deleting model 'SessionCatalog'
278
        db.delete_table('im_sessioncatalog')
279

    
280
        # Deleting model 'ProjectMembershipHistory'
281
        db.delete_table('im_projectmembershiphistory')
282

    
283
        # Deleting model 'AstakosUserQuota'
284
        db.delete_table('im_astakosuserquota')
285

    
286
        # Deleting model 'ProjectResourceGrant'
287
        db.delete_table('im_projectresourcegrant')
288

    
289
        # Deleting model 'PendingThirdPartyUser'
290
        db.delete_table('im_pendingthirdpartyuser')
291

    
292
        # Deleting model 'ProjectApplication'
293
        db.delete_table('im_projectapplication')
294

    
295
        # Deleting field 'Service.order'
296
        db.delete_column('im_service', 'order')
297

    
298
        # Deleting field 'AstakosUser.uuid'
299
        db.delete_column('im_astakosuser', 'uuid')
300

    
301
        # Deleting field 'AstakosUser.disturbed_quota'
302
        db.delete_column('im_astakosuser', 'disturbed_quota')
303

    
304
        for u in orm.AstakosUser.objects.all():
305
            u.affiliation = u.affiliation or ''
306
            u.save()
307

    
308
        # Changing field 'AstakosUser.affiliation'
309
        db.alter_column('im_astakosuser', 'affiliation', self.gf('django.db.models.fields.CharField')(default='', max_length=255))
310

    
311
        # Changing field 'AstakosUser.provider'
312
        db.alter_column('im_astakosuser', 'provider', self.gf('django.db.models.fields.CharField')(default='', max_length=255))
313

    
314
        # Adding unique constraint on 'AstakosUser', fields ['third_party_identifier', 'provider']
315
        db.create_unique('im_astakosuser', ['third_party_identifier', 'provider'])
316

    
317
        # Changin field 'auth_user.username'
318
        db.alter_column('auth_user', 'username', models.CharField(max_length=30))
319

    
320

    
321
    models = {
322
        'auth.group': {
323
            'Meta': {'object_name': 'Group'},
324
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
325
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
326
            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
327
        },
328
        'auth.permission': {
329
            'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
330
            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
331
            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
332
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
333
            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
334
        },
335
        'auth.user': {
336
            'Meta': {'object_name': 'User'},
337
            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
338
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
339
            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
340
            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
341
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
342
            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
343
            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
344
            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
345
            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
346
            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
347
            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
348
            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
349
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
350
        },
351
        'contenttypes.contenttype': {
352
            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
353
            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
354
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
355
            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
356
            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
357
        },
358
        'im.additionalmail': {
359
            'Meta': {'object_name': 'AdditionalMail'},
360
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
361
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
362
            'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
363
        },
364
        'im.approvalterms': {
365
            'Meta': {'object_name': 'ApprovalTerms'},
366
            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 1, 11, 12, 54, 30, 982234)', 'db_index': 'True'}),
367
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
368
            'location': ('django.db.models.fields.CharField', [], {'max_length': '255'})
369
        },
370
        'im.astakosuser': {
371
            'Meta': {'object_name': 'AstakosUser', '_ormbases': ['auth.User']},
372
            'activation_sent': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
373
            'affiliation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
374
            'auth_token': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
375
            'auth_token_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
376
            'auth_token_expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
377
            'date_signed_terms': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
378
            'disturbed_quota': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
379
            'email_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
380
            'has_credits': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
381
            'has_signed_terms': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
382
            'invitations': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
383
            'is_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
384
            'level': ('django.db.models.fields.IntegerField', [], {'default': '4'}),
385
            'policy': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.Resource']", 'null': 'True', 'through': "orm['im.AstakosUserQuota']", 'symmetrical': 'False'}),
386
            'provider': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
387
            'third_party_identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
388
            'updated': ('django.db.models.fields.DateTimeField', [], {}),
389
            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
390
            'uuid': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True'})
391
        },
392
        'im.astakosuserauthprovider': {
393
            'Meta': {'ordering': "('module', 'created')", 'unique_together': "(('identifier', 'module', 'user'),)", 'object_name': 'AstakosUserAuthProvider'},
394
            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
395
            'affiliation': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True', 'blank': 'True'}),
396
            'auth_backend': ('django.db.models.fields.CharField', [], {'default': "'astakos'", 'max_length': '255'}),
397
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
398
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
399
            'identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
400
            'info_data': ('django.db.models.fields.TextField', [], {'default': "''", 'null': 'True', 'blank': 'True'}),
401
            'module': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '255'}),
402
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_providers'", 'to': "orm['im.AstakosUser']"})
403
        },
404
        'im.astakosuserquota': {
405
            'Meta': {'unique_together': "(('resource', 'user'),)", 'object_name': 'AstakosUserQuota'},
406
            'capacity': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}),
407
            'export_limit': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}),
408
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
409
            'import_limit': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}),
410
            'quantity': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}),
411
            'resource': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Resource']"}),
412
            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
413
        },
414
        'im.chain': {
415
            'Meta': {'object_name': 'Chain'},
416
            'chain': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
417
        },
418
        'im.emailchange': {
419
            'Meta': {'object_name': 'EmailChange'},
420
            'activation_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40', 'db_index': 'True'}),
421
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
422
            'new_email_address': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
423
            'requested_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 1, 11, 12, 54, 30, 983023)'}),
424
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emailchanges'", 'unique': 'True', 'to': "orm['im.AstakosUser']"})
425
        },
426
        'im.invitation': {
427
            'Meta': {'object_name': 'Invitation'},
428
            'code': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True'}),
429
            'consumed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
430
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
431
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
432
            'inviter': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invitations_sent'", 'null': 'True', 'to': "orm['im.AstakosUser']"}),
433
            'is_consumed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
434
            'realname': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
435
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
436
        },
437
        'im.pendingthirdpartyuser': {
438
            'Meta': {'unique_together': "(('provider', 'third_party_identifier'),)", 'object_name': 'PendingThirdPartyUser'},
439
            'affiliation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
440
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
441
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
442
            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
443
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
444
            'info': ('django.db.models.fields.TextField', [], {'default': "''", 'null': 'True', 'blank': 'True'}),
445
            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
446
            'provider': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
447
            'third_party_identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
448
            'token': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
449
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
450
        },
451
        'im.project': {
452
            'Meta': {'object_name': 'Project'},
453
            'application': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'project'", 'unique': 'True', 'to': "orm['im.ProjectApplication']"}),
454
            'creation_date': ('django.db.models.fields.DateTimeField', [], {}),
455
            'deactivation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
456
            'deactivation_reason': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
457
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
458
            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}),
459
            'is_modified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
460
            'last_approval_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
461
            'members': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.AstakosUser']", 'through': "orm['im.ProjectMembership']", 'symmetrical': 'False'}),
462
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80', 'db_index': 'True'}),
463
            'state': ('django.db.models.fields.IntegerField', [], {'default': '1', 'db_index': 'True'})
464
        },
465
        'im.projectapplication': {
466
            'Meta': {'unique_together': "(('chain', 'id'),)", 'object_name': 'ProjectApplication'},
467
            'applicant': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projects_applied'", 'to': "orm['im.AstakosUser']"}),
468
            'chain': ('django.db.models.fields.IntegerField', [], {}),
469
            'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
470
            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
471
            'end_date': ('django.db.models.fields.DateTimeField', [], {}),
472
            'homepage': ('django.db.models.fields.URLField', [], {'max_length': '255', 'null': 'True'}),
473
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
474
            'issue_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
475
            'limit_on_members_number': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
476
            'member_join_policy': ('django.db.models.fields.IntegerField', [], {}),
477
            'member_leave_policy': ('django.db.models.fields.IntegerField', [], {}),
478
            'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
479
            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projects_owned'", 'to': "orm['im.AstakosUser']"}),
480
            'precursor_application': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['im.ProjectApplication']", 'unique': 'True', 'null': 'True', 'blank': 'True'}),
481
            'resource_grants': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['im.Resource']", 'null': 'True', 'through': "orm['im.ProjectResourceGrant']", 'blank': 'True'}),
482
            'start_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
483
            'state': ('django.db.models.fields.IntegerField', [], {'default': '0'})
484
        },
485
        'im.projectmembership': {
486
            'Meta': {'unique_together': "(('person', 'project'),)", 'object_name': 'ProjectMembership'},
487
            'acceptance_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'db_index': 'True'}),
488
            'application': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'memberships'", 'null': 'True', 'to': "orm['im.ProjectApplication']"}),
489
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
490
            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
491
            'is_pending': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
492
            'leave_request_date': ('django.db.models.fields.DateField', [], {'null': 'True'}),
493
            'pending_application': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pending_memebrships'", 'null': 'True', 'to': "orm['im.ProjectApplication']"}),
494
            'pending_serial': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'db_index': 'True'}),
495
            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"}),
496
            'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Project']"}),
497
            'request_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2013, 1, 11, 12, 54, 30, 986304)'}),
498
            'state': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'})
499
        },
500
        'im.projectmembershiphistory': {
501
            'Meta': {'object_name': 'ProjectMembershipHistory'},
502
            'date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime.now'}),
503
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
504
            'person': ('django.db.models.fields.BigIntegerField', [], {}),
505
            'project': ('django.db.models.fields.BigIntegerField', [], {}),
506
            'reason': ('django.db.models.fields.IntegerField', [], {}),
507
            'serial': ('django.db.models.fields.BigIntegerField', [], {})
508
        },
509
        'im.projectresourcegrant': {
510
            'Meta': {'unique_together': "(('resource', 'project_application'),)", 'object_name': 'ProjectResourceGrant'},
511
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
512
            'member_capacity': ('snf_django.lib.db.fields.IntDecimalField', [], {'default': '100000000000000000000000000000000L', 'max_digits': '38', 'decimal_places': '0'}),
513
            'member_export_limit': ('snf_django.lib.db.fields.IntDecimalField', [], {'default': '100000000000000000000000000000000L', 'max_digits': '38', 'decimal_places': '0'}),
514
            'member_import_limit': ('snf_django.lib.db.fields.IntDecimalField', [], {'default': '100000000000000000000000000000000L', 'max_digits': '38', 'decimal_places': '0'}),
515
            'project_application': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.ProjectApplication']", 'null': 'True'}),
516
            'project_capacity': ('snf_django.lib.db.fields.IntDecimalField', [], {'default': '100000000000000000000000000000000L', 'max_digits': '38', 'decimal_places': '0'}),
517
            'project_export_limit': ('snf_django.lib.db.fields.IntDecimalField', [], {'default': '100000000000000000000000000000000L', 'max_digits': '38', 'decimal_places': '0'}),
518
            'project_import_limit': ('snf_django.lib.db.fields.IntDecimalField', [], {'default': '100000000000000000000000000000000L', 'max_digits': '38', 'decimal_places': '0'}),
519
            'resource': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Resource']"})
520
        },
521
        'im.resource': {
522
            'Meta': {'unique_together': "(('name', 'service'),)", 'object_name': 'Resource'},
523
            'desc': ('django.db.models.fields.TextField', [], {'null': 'True'}),
524
            'group': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
525
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
526
            'meta': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.ResourceMetadata']", 'symmetrical': 'False'}),
527
            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
528
            'service': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Service']"}),
529
            'unit': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'})
530
        },
531
        'im.resourcemetadata': {
532
            'Meta': {'object_name': 'ResourceMetadata'},
533
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
534
            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
535
            'value': ('django.db.models.fields.CharField', [], {'max_length': '255'})
536
        },
537
        'im.serial': {
538
            'Meta': {'object_name': 'Serial'},
539
            'serial': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
540
        },
541
        'im.service': {
542
            'Meta': {'ordering': "('order',)", 'object_name': 'Service'},
543
            'auth_token': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
544
            'auth_token_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
545
            'auth_token_expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
546
            'icon': ('django.db.models.fields.FilePathField', [], {'max_length': '100', 'blank': 'True'}),
547
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
548
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
549
            'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
550
            'url': ('django.db.models.fields.FilePathField', [], {'max_length': '100'})
551
        },
552
        'im.sessioncatalog': {
553
            'Meta': {'object_name': 'SessionCatalog'},
554
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
555
            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
556
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sessions'", 'null': 'True', 'to': "orm['im.AstakosUser']"})
557
        }
558
    }
559

    
560
    complete_apps = ['im']