Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / migrations / 0035_auto__add_memberjoinpolicy__add_projectmembershiphistory__add_unique_p.py @ ccab6eb5

History | View | Annotate | Download (30.7 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
        # Adding model 'MemberJoinPolicy'
12
        db.create_table('im_memberjoinpolicy', (
13
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
14
            ('policy', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255, db_index=True)),
15
            ('description', self.gf('django.db.models.fields.CharField')(max_length=80)),
16
        ))
17
        db.send_create_signal('im', ['MemberJoinPolicy'])
18

    
19
        # Adding model 'ProjectMembershipHistory'
20
        db.create_table('im_projectmembershiphistory', (
21
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
22
            ('person', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.AstakosUser'])),
23
            ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.Project'])),
24
            ('request_date', self.gf('django.db.models.fields.DateField')(default=datetime.datetime(2012, 12, 9, 11, 4, 41, 210148))),
25
            ('removal_date', self.gf('django.db.models.fields.DateField')(null=True)),
26
            ('rejection_date', self.gf('django.db.models.fields.DateField')(null=True)),
27
        ))
28
        db.send_create_signal('im', ['ProjectMembershipHistory'])
29

    
30
        # Adding unique constraint on 'ProjectMembershipHistory', fields ['person', 'project']
31
        db.create_unique('im_projectmembershiphistory', ['person_id', 'project_id'])
32

    
33
        # Adding model 'ProjectApplication'
34
        db.create_table('im_projectapplication', (
35
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
36
            ('applicant', self.gf('django.db.models.fields.related.ForeignKey')(related_name='my_project_applications', to=orm['im.AstakosUser'])),
37
            ('owner', self.gf('django.db.models.fields.related.ForeignKey')(related_name='own_project_applications', to=orm['im.AstakosUser'])),
38
            ('comments', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
39
            ('definition', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['im.ProjectDefinition'], unique=True)),
40
            ('issue_date', self.gf('django.db.models.fields.DateTimeField')()),
41
            ('precursor_application', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['im.ProjectApplication'], unique=True, null=True, blank=True)),
42
        ))
43
        db.send_create_signal('im', ['ProjectApplication'])
44

    
45
        # Adding model 'Project'
46
        db.create_table('im_project', (
47
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
48
            ('application', self.gf('django.db.models.fields.related.OneToOneField')(related_name='project', unique=True, to=orm['im.ProjectApplication'])),
49
            ('creation_date', self.gf('django.db.models.fields.DateTimeField')()),
50
            ('last_approval_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
51
            ('termination_start_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
52
            ('termination_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
53
            ('membership_dirty', self.gf('django.db.models.fields.BooleanField')(default=False)),
54
            ('last_application_synced', self.gf('django.db.models.fields.related.OneToOneField')(blank=True, related_name='last_project', unique=True, null=True, to=orm['im.ProjectApplication'])),
55
        ))
56
        db.send_create_signal('im', ['Project'])
57

    
58
        # Adding model 'ProjectMembership'
59
        db.create_table('im_projectmembership', (
60
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
61
            ('person', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.AstakosUser'])),
62
            ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.Project'])),
63
            ('request_date', self.gf('django.db.models.fields.DateField')(default=datetime.datetime(2012, 12, 9, 11, 4, 41, 209391))),
64
            ('acceptance_date', self.gf('django.db.models.fields.DateField')(null=True, db_index=True)),
65
        ))
66
        db.send_create_signal('im', ['ProjectMembership'])
67

    
68
        # Adding unique constraint on 'ProjectMembership', fields ['person', 'project']
69
        db.create_unique('im_projectmembership', ['person_id', 'project_id'])
70

    
71
        # Adding model 'ProjectDefinition'
72
        db.create_table('im_projectdefinition', (
73
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
74
            ('name', self.gf('django.db.models.fields.CharField')(max_length=80)),
75
            ('homepage', self.gf('django.db.models.fields.URLField')(max_length=255, null=True, blank=True)),
76
            ('description', self.gf('django.db.models.fields.TextField')(null=True)),
77
            ('start_date', self.gf('django.db.models.fields.DateTimeField')()),
78
            ('end_date', self.gf('django.db.models.fields.DateTimeField')()),
79
            ('member_join_policy', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.MemberJoinPolicy'])),
80
            ('member_leave_policy', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.MemberLeavePolicy'])),
81
            ('limit_on_members_number', self.gf('django.db.models.fields.PositiveIntegerField')(null=True, blank=True)),
82
        ))
83
        db.send_create_signal('im', ['ProjectDefinition'])
84

    
85
        # Adding model 'MemberLeavePolicy'
86
        db.create_table('im_memberleavepolicy', (
87
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
88
            ('policy', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255, db_index=True)),
89
            ('description', self.gf('django.db.models.fields.CharField')(max_length=80)),
90
        ))
91
        db.send_create_signal('im', ['MemberLeavePolicy'])
92

    
93
        # Adding model 'ProjectResourceGrant'
94
        db.create_table('im_projectresourcegrant', (
95
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
96
            ('member_limit', self.gf('django.db.models.fields.BigIntegerField')(null=True)),
97
            ('project_limit', self.gf('django.db.models.fields.BigIntegerField')(null=True)),
98
            ('resource', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.Resource'])),
99
            ('project_definition', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.ProjectDefinition'], blank=True)),
100
        ))
101
        db.send_create_signal('im', ['ProjectResourceGrant'])
102

    
103
        # Adding unique constraint on 'ProjectResourceGrant', fields ['resource', 'project_definition']
104
        db.create_unique('im_projectresourcegrant', ['resource_id', 'project_definition_id'])
105

    
106

    
107
    def backwards(self, orm):
108
        
109
        # Removing unique constraint on 'ProjectResourceGrant', fields ['resource', 'project_definition']
110
        db.delete_unique('im_projectresourcegrant', ['resource_id', 'project_definition_id'])
111

    
112
        # Removing unique constraint on 'ProjectMembership', fields ['person', 'project']
113
        db.delete_unique('im_projectmembership', ['person_id', 'project_id'])
114

    
115
        # Removing unique constraint on 'ProjectMembershipHistory', fields ['person', 'project']
116
        db.delete_unique('im_projectmembershiphistory', ['person_id', 'project_id'])
117

    
118
        # Deleting model 'MemberJoinPolicy'
119
        db.delete_table('im_memberjoinpolicy')
120

    
121
        # Deleting model 'ProjectMembershipHistory'
122
        db.delete_table('im_projectmembershiphistory')
123

    
124
        # Deleting model 'ProjectApplication'
125
        db.delete_table('im_projectapplication')
126

    
127
        # Deleting model 'Project'
128
        db.delete_table('im_project')
129

    
130
        # Deleting model 'ProjectMembership'
131
        db.delete_table('im_projectmembership')
132

    
133
        # Deleting model 'ProjectDefinition'
134
        db.delete_table('im_projectdefinition')
135

    
136
        # Deleting model 'MemberLeavePolicy'
137
        db.delete_table('im_memberleavepolicy')
138

    
139
        # Deleting model 'ProjectResourceGrant'
140
        db.delete_table('im_projectresourcegrant')
141

    
142

    
143
    models = {
144
        'auth.group': {
145
            'Meta': {'object_name': 'Group'},
146
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
147
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
148
            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
149
        },
150
        'auth.permission': {
151
            'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
152
            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
153
            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
154
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
155
            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
156
        },
157
        'auth.user': {
158
            'Meta': {'object_name': 'User'},
159
            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
160
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
161
            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
162
            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
163
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
164
            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
165
            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
166
            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
167
            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
168
            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
169
            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
170
            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
171
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
172
        },
173
        'contenttypes.contenttype': {
174
            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
175
            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
176
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
177
            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
178
            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
179
        },
180
        'im.additionalmail': {
181
            'Meta': {'object_name': 'AdditionalMail'},
182
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
183
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
184
            'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
185
        },
186
        'im.approvalterms': {
187
            'Meta': {'object_name': 'ApprovalTerms'},
188
            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 12, 9, 11, 4, 41, 198398)', 'db_index': 'True'}),
189
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
190
            'location': ('django.db.models.fields.CharField', [], {'max_length': '255'})
191
        },
192
        'im.astakosgroup': {
193
            'Meta': {'object_name': 'AstakosGroup', '_ormbases': ['auth.Group']},
194
            'approval_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
195
            'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 12, 9, 11, 4, 41, 189261)'}),
196
            'desc': ('django.db.models.fields.TextField', [], {'null': 'True'}),
197
            'estimated_participants': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
198
            'expiration_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
199
            'group_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.Group']", 'unique': 'True', 'primary_key': 'True'}),
200
            'homepage': ('django.db.models.fields.URLField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
201
            'issue_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
202
            'kind': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.GroupKind']"}),
203
            'max_participants': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
204
            'moderation_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
205
            'policy': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['im.Resource']", 'null': 'True', 'through': "orm['im.AstakosGroupQuota']", 'blank': 'True'})
206
        },
207
        'im.astakosgroupquota': {
208
            'Meta': {'unique_together': "(('resource', 'group'),)", 'object_name': 'AstakosGroupQuota'},
209
            'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosGroup']", 'blank': 'True'}),
210
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
211
            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
212
            'resource': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Resource']"}),
213
            'uplimit': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'})
214
        },
215
        'im.astakosuser': {
216
            'Meta': {'unique_together': "(('provider', 'third_party_identifier'),)", 'object_name': 'AstakosUser', '_ormbases': ['auth.User']},
217
            'activation_sent': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
218
            'affiliation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
219
            'astakos_groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.AstakosGroup']", 'symmetrical': 'False', 'through': "orm['im.Membership']", 'blank': 'True'}),
220
            'auth_token': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
221
            'auth_token_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
222
            'auth_token_expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
223
            'date_signed_terms': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
224
            'disturbed_quota': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
225
            'email_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
226
            'has_credits': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
227
            'has_signed_terms': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
228
            'invitations': ('django.db.models.fields.IntegerField', [], {'default': '100'}),
229
            'is_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
230
            'level': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
231
            'owner': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'owner'", 'null': 'True', 'to': "orm['im.AstakosGroup']"}),
232
            'policy': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.Resource']", 'null': 'True', 'through': "orm['im.AstakosUserQuota']", 'symmetrical': 'False'}),
233
            'provider': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
234
            'third_party_identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
235
            'updated': ('django.db.models.fields.DateTimeField', [], {}),
236
            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
237
        },
238
        'im.astakosuserauthprovider': {
239
            'Meta': {'unique_together': "(('identifier', 'module', 'user'),)", 'object_name': 'AstakosUserAuthProvider'},
240
            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
241
            'affiliation': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True', 'blank': 'True'}),
242
            'auth_backend': ('django.db.models.fields.CharField', [], {'default': "'astakos'", 'max_length': '255'}),
243
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
244
            'identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
245
            'module': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '255'}),
246
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_providers'", 'to': "orm['im.AstakosUser']"})
247
        },
248
        'im.astakosuserquota': {
249
            'Meta': {'unique_together': "(('resource', 'user'),)", 'object_name': 'AstakosUserQuota'},
250
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
251
            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
252
            'resource': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Resource']"}),
253
            'uplimit': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}),
254
            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
255
        },
256
        'im.emailchange': {
257
            'Meta': {'object_name': 'EmailChange'},
258
            'activation_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40', 'db_index': 'True'}),
259
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
260
            'new_email_address': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
261
            'requested_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 12, 9, 11, 4, 41, 200303)'}),
262
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emailchange_user'", 'unique': 'True', 'to': "orm['im.AstakosUser']"})
263
        },
264
        'im.groupkind': {
265
            'Meta': {'object_name': 'GroupKind'},
266
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
267
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'})
268
        },
269
        'im.invitation': {
270
            'Meta': {'object_name': 'Invitation'},
271
            'code': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True'}),
272
            'consumed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
273
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
274
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
275
            'inviter': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invitations_sent'", 'null': 'True', 'to': "orm['im.AstakosUser']"}),
276
            'is_consumed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
277
            'realname': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
278
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
279
        },
280
        'im.memberjoinpolicy': {
281
            'Meta': {'object_name': 'MemberJoinPolicy'},
282
            'description': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
283
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
284
            'policy': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'})
285
        },
286
        'im.memberleavepolicy': {
287
            'Meta': {'object_name': 'MemberLeavePolicy'},
288
            'description': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
289
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
290
            'policy': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'})
291
        },
292
        'im.membership': {
293
            'Meta': {'unique_together': "(('person', 'group'),)", 'object_name': 'Membership'},
294
            'date_joined': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
295
            'date_requested': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2012, 12, 9, 11, 4, 41, 196071)', 'blank': 'True'}),
296
            'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosGroup']"}),
297
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
298
            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
299
        },
300
        'im.pendingthirdpartyuser': {
301
            'Meta': {'unique_together': "(('provider', 'third_party_identifier'),)", 'object_name': 'PendingThirdPartyUser'},
302
            'affiliation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
303
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
304
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
305
            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
306
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
307
            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
308
            'provider': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
309
            'third_party_identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
310
            'token': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
311
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
312
        },
313
        'im.project': {
314
            'Meta': {'object_name': 'Project'},
315
            'application': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'project'", 'unique': 'True', 'to': "orm['im.ProjectApplication']"}),
316
            'creation_date': ('django.db.models.fields.DateTimeField', [], {}),
317
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
318
            'last_application_synced': ('django.db.models.fields.related.OneToOneField', [], {'blank': 'True', 'related_name': "'last_project'", 'unique': 'True', 'null': 'True', 'to': "orm['im.ProjectApplication']"}),
319
            'last_approval_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
320
            'members': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.AstakosUser']", 'through': "orm['im.ProjectMembership']", 'symmetrical': 'False'}),
321
            'membership_dirty': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
322
            'termination_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
323
            'termination_start_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'})
324
        },
325
        'im.projectapplication': {
326
            'Meta': {'object_name': 'ProjectApplication'},
327
            'applicant': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'my_project_applications'", 'to': "orm['im.AstakosUser']"}),
328
            'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
329
            'definition': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['im.ProjectDefinition']", 'unique': 'True'}),
330
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
331
            'issue_date': ('django.db.models.fields.DateTimeField', [], {}),
332
            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'own_project_applications'", 'to': "orm['im.AstakosUser']"}),
333
            'precursor_application': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['im.ProjectApplication']", 'unique': 'True', 'null': 'True', 'blank': 'True'})
334
        },
335
        'im.projectdefinition': {
336
            'Meta': {'object_name': 'ProjectDefinition'},
337
            'description': ('django.db.models.fields.TextField', [], {'null': 'True'}),
338
            'end_date': ('django.db.models.fields.DateTimeField', [], {}),
339
            'homepage': ('django.db.models.fields.URLField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
340
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
341
            'limit_on_members_number': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
342
            'member_join_policy': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.MemberJoinPolicy']"}),
343
            'member_leave_policy': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.MemberLeavePolicy']"}),
344
            'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
345
            'resource_grants': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['im.Resource']", 'null': 'True', 'through': "orm['im.ProjectResourceGrant']", 'blank': 'True'}),
346
            'start_date': ('django.db.models.fields.DateTimeField', [], {})
347
        },
348
        'im.projectmembership': {
349
            'Meta': {'unique_together': "(('person', 'project'),)", 'object_name': 'ProjectMembership'},
350
            'acceptance_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'db_index': 'True'}),
351
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
352
            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"}),
353
            'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Project']"}),
354
            'request_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2012, 12, 9, 11, 4, 41, 209391)'})
355
        },
356
        'im.projectmembershiphistory': {
357
            'Meta': {'unique_together': "(('person', 'project'),)", 'object_name': 'ProjectMembershipHistory'},
358
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
359
            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"}),
360
            'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Project']"}),
361
            'rejection_date': ('django.db.models.fields.DateField', [], {'null': 'True'}),
362
            'removal_date': ('django.db.models.fields.DateField', [], {'null': 'True'}),
363
            'request_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2012, 12, 9, 11, 4, 41, 210148)'})
364
        },
365
        'im.projectresourcegrant': {
366
            'Meta': {'unique_together': "(('resource', 'project_definition'),)", 'object_name': 'ProjectResourceGrant'},
367
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
368
            'member_limit': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}),
369
            'project_definition': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.ProjectDefinition']", 'blank': 'True'}),
370
            'project_limit': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}),
371
            'resource': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Resource']"})
372
        },
373
        'im.resource': {
374
            'Meta': {'object_name': 'Resource'},
375
            'desc': ('django.db.models.fields.TextField', [], {'null': 'True'}),
376
            'group': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
377
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
378
            'meta': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.ResourceMetadata']", 'symmetrical': 'False'}),
379
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
380
            'service': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Service']"}),
381
            'unit': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'})
382
        },
383
        'im.resourcemetadata': {
384
            'Meta': {'object_name': 'ResourceMetadata'},
385
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
386
            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
387
            'value': ('django.db.models.fields.CharField', [], {'max_length': '255'})
388
        },
389
        'im.service': {
390
            'Meta': {'object_name': 'Service'},
391
            'auth_token': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
392
            'auth_token_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
393
            'auth_token_expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
394
            'icon': ('django.db.models.fields.FilePathField', [], {'max_length': '100', 'blank': 'True'}),
395
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
396
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
397
            'url': ('django.db.models.fields.FilePathField', [], {'max_length': '100'})
398
        },
399
        'im.sessioncatalog': {
400
            'Meta': {'object_name': 'SessionCatalog'},
401
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
402
            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
403
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sessions'", 'null': 'True', 'to': "orm['im.AstakosUser']"})
404
        }
405
    }
406

    
407
    complete_apps = ['im']