Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / migrations / 0035_auto__add_memberjoinpolicy__add_projectmembershiphistory__add_projecta.py @ bfe23b13

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, 10, 13, 48, 24, 819868))),
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 model 'ProjectApplication'
31
        db.create_table('im_projectapplication', (
32
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
33
            ('applicant', self.gf('django.db.models.fields.related.ForeignKey')(related_name='my_project_applications', to=orm['im.AstakosUser'])),
34
            ('owner', self.gf('django.db.models.fields.related.ForeignKey')(related_name='own_project_applications', to=orm['im.AstakosUser'])),
35
            ('comments', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
36
            ('definition', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['im.ProjectDefinition'], unique=True)),
37
            ('issue_date', self.gf('django.db.models.fields.DateTimeField')()),
38
            ('precursor_application', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['im.ProjectApplication'], unique=True, null=True, blank=True)),
39
            ('state', self.gf('django.db.models.fields.CharField')(default='Unknown', max_length=80)),
40
        ))
41
        db.send_create_signal('im', ['ProjectApplication'])
42

    
43
        # Adding model 'Project'
44
        db.create_table('im_project', (
45
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
46
            ('application', self.gf('django.db.models.fields.related.OneToOneField')(related_name='project', unique=True, to=orm['im.ProjectApplication'])),
47
            ('creation_date', self.gf('django.db.models.fields.DateTimeField')()),
48
            ('last_approval_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
49
            ('termination_start_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
50
            ('termination_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
51
            ('membership_dirty', self.gf('django.db.models.fields.BooleanField')(default=False)),
52
            ('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'])),
53
        ))
54
        db.send_create_signal('im', ['Project'])
55

    
56
        # Adding model 'ProjectMembership'
57
        db.create_table('im_projectmembership', (
58
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
59
            ('person', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.AstakosUser'])),
60
            ('project', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.Project'])),
61
            ('request_date', self.gf('django.db.models.fields.DateField')(default=datetime.datetime(2012, 12, 10, 13, 48, 24, 819045))),
62
            ('acceptance_date', self.gf('django.db.models.fields.DateField')(null=True, db_index=True)),
63
            ('leave_request_date', self.gf('django.db.models.fields.DateField')(null=True)),
64
        ))
65
        db.send_create_signal('im', ['ProjectMembership'])
66

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

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

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

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

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

    
105

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

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

    
114
        # Deleting model 'MemberJoinPolicy'
115
        db.delete_table('im_memberjoinpolicy')
116

    
117
        # Deleting model 'ProjectMembershipHistory'
118
        db.delete_table('im_projectmembershiphistory')
119

    
120
        # Deleting model 'ProjectApplication'
121
        db.delete_table('im_projectapplication')
122

    
123
        # Deleting model 'Project'
124
        db.delete_table('im_project')
125

    
126
        # Deleting model 'ProjectMembership'
127
        db.delete_table('im_projectmembership')
128

    
129
        # Deleting model 'ProjectDefinition'
130
        db.delete_table('im_projectdefinition')
131

    
132
        # Deleting model 'MemberLeavePolicy'
133
        db.delete_table('im_memberleavepolicy')
134

    
135
        # Deleting model 'ProjectResourceGrant'
136
        db.delete_table('im_projectresourcegrant')
137

    
138

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

    
405
    complete_apps = ['im']