Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / migrations / 0067_set_project_capacity.py @ 362dadaa

History | View | Annotate | Download (26.2 kB)

1 552df4cd Giorgos Korfiatis
# -*- coding: utf-8 -*-
2 552df4cd Giorgos Korfiatis
import datetime
3 552df4cd Giorgos Korfiatis
from south.db import db
4 552df4cd Giorgos Korfiatis
from south.v2 import DataMigration
5 552df4cd Giorgos Korfiatis
from django.db import models
6 552df4cd Giorgos Korfiatis
7 552df4cd Giorgos Korfiatis
APPROVED = 1
8 552df4cd Giorgos Korfiatis
ACTUALLY_ACCEPTED = [1, 5]
9 552df4cd Giorgos Korfiatis
10 552df4cd Giorgos Korfiatis
11 552df4cd Giorgos Korfiatis
class Migration(DataMigration):
12 552df4cd Giorgos Korfiatis
13 552df4cd Giorgos Korfiatis
    def forwards(self, orm):
14 552df4cd Giorgos Korfiatis
        objs = orm.ProjectResourceGrant.objects
15 552df4cd Giorgos Korfiatis
        grants = objs.select_related("project_application").all()
16 552df4cd Giorgos Korfiatis
        new_grants = []
17 552df4cd Giorgos Korfiatis
        for grant in grants:
18 552df4cd Giorgos Korfiatis
            application = grant.project_application
19 552df4cd Giorgos Korfiatis
            max_members = application.limit_on_members_number
20 552df4cd Giorgos Korfiatis
            if max_members is None:
21 552df4cd Giorgos Korfiatis
                if application.state != APPROVED:
22 552df4cd Giorgos Korfiatis
                    max_members = 1
23 552df4cd Giorgos Korfiatis
                else:
24 552df4cd Giorgos Korfiatis
                    objs = orm.ProjectMembership.objects
25 552df4cd Giorgos Korfiatis
                    members = objs.filter(project=application.chain,
26 552df4cd Giorgos Korfiatis
                                          state__in=ACTUALLY_ACCEPTED).count()
27 552df4cd Giorgos Korfiatis
                    max_members = max(2 * members, 1)
28 552df4cd Giorgos Korfiatis
29 552df4cd Giorgos Korfiatis
            project_capacity = max_members * grant.member_capacity
30 552df4cd Giorgos Korfiatis
            new_grant = orm.ProjectResourceGrant(
31 552df4cd Giorgos Korfiatis
                resource=grant.resource,
32 552df4cd Giorgos Korfiatis
                project_application=grant.project_application,
33 552df4cd Giorgos Korfiatis
                member_capacity=grant.member_capacity,
34 552df4cd Giorgos Korfiatis
                project_capacity=project_capacity)
35 552df4cd Giorgos Korfiatis
            new_grants.append(new_grant)
36 552df4cd Giorgos Korfiatis
        orm.ProjectResourceGrant.objects.all().delete()
37 552df4cd Giorgos Korfiatis
        orm.ProjectResourceGrant.objects.bulk_create(new_grants)
38 552df4cd Giorgos Korfiatis
39 552df4cd Giorgos Korfiatis
    def backwards(self, orm):
40 552df4cd Giorgos Korfiatis
        "Write your backwards methods here."
41 552df4cd Giorgos Korfiatis
42 552df4cd Giorgos Korfiatis
    models = {
43 552df4cd Giorgos Korfiatis
        'auth.group': {
44 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'Group'},
45 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
46 552df4cd Giorgos Korfiatis
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
47 552df4cd Giorgos Korfiatis
            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
48 552df4cd Giorgos Korfiatis
        },
49 552df4cd Giorgos Korfiatis
        'auth.permission': {
50 552df4cd Giorgos Korfiatis
            'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
51 552df4cd Giorgos Korfiatis
            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
52 552df4cd Giorgos Korfiatis
            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
53 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
54 552df4cd Giorgos Korfiatis
            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
55 552df4cd Giorgos Korfiatis
        },
56 552df4cd Giorgos Korfiatis
        'auth.user': {
57 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'User'},
58 552df4cd Giorgos Korfiatis
            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
59 552df4cd Giorgos Korfiatis
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
60 552df4cd Giorgos Korfiatis
            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
61 552df4cd Giorgos Korfiatis
            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
62 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
63 552df4cd Giorgos Korfiatis
            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
64 552df4cd Giorgos Korfiatis
            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
65 552df4cd Giorgos Korfiatis
            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
66 552df4cd Giorgos Korfiatis
            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
67 552df4cd Giorgos Korfiatis
            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
68 552df4cd Giorgos Korfiatis
            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
69 552df4cd Giorgos Korfiatis
            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
70 552df4cd Giorgos Korfiatis
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
71 552df4cd Giorgos Korfiatis
        },
72 552df4cd Giorgos Korfiatis
        'contenttypes.contenttype': {
73 552df4cd Giorgos Korfiatis
            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
74 552df4cd Giorgos Korfiatis
            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
75 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
76 552df4cd Giorgos Korfiatis
            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
77 552df4cd Giorgos Korfiatis
            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
78 552df4cd Giorgos Korfiatis
        },
79 552df4cd Giorgos Korfiatis
        'im.additionalmail': {
80 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'AdditionalMail'},
81 552df4cd Giorgos Korfiatis
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
82 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
83 552df4cd Giorgos Korfiatis
            'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
84 552df4cd Giorgos Korfiatis
        },
85 552df4cd Giorgos Korfiatis
        'im.approvalterms': {
86 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'ApprovalTerms'},
87 552df4cd Giorgos Korfiatis
            'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'db_index': 'True', 'blank': 'True'}),
88 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
89 552df4cd Giorgos Korfiatis
            'location': ('django.db.models.fields.CharField', [], {'max_length': '255'})
90 552df4cd Giorgos Korfiatis
        },
91 552df4cd Giorgos Korfiatis
        'im.astakosuser': {
92 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'AstakosUser', '_ormbases': ['auth.User']},
93 552df4cd Giorgos Korfiatis
            'accepted_email': ('django.db.models.fields.EmailField', [], {'default': 'None', 'max_length': '75', 'null': 'True', 'blank': 'True'}),
94 552df4cd Giorgos Korfiatis
            'accepted_policy': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True', 'blank': 'True'}),
95 552df4cd Giorgos Korfiatis
            'activation_sent': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
96 552df4cd Giorgos Korfiatis
            'affiliation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
97 552df4cd Giorgos Korfiatis
            'auth_token': ('django.db.models.fields.CharField', [], {'max_length': '64', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
98 552df4cd Giorgos Korfiatis
            'auth_token_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
99 552df4cd Giorgos Korfiatis
            'auth_token_expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
100 552df4cd Giorgos Korfiatis
            'date_signed_terms': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
101 552df4cd Giorgos Korfiatis
            'deactivated_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
102 552df4cd Giorgos Korfiatis
            'deactivated_reason': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True'}),
103 552df4cd Giorgos Korfiatis
            'disturbed_quota': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
104 552df4cd Giorgos Korfiatis
            'email_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
105 552df4cd Giorgos Korfiatis
            'has_credits': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
106 552df4cd Giorgos Korfiatis
            'has_signed_terms': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
107 552df4cd Giorgos Korfiatis
            'invitations': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
108 552df4cd Giorgos Korfiatis
            'is_rejected': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
109 552df4cd Giorgos Korfiatis
            'is_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
110 552df4cd Giorgos Korfiatis
            'level': ('django.db.models.fields.IntegerField', [], {'default': '4'}),
111 552df4cd Giorgos Korfiatis
            'moderated': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
112 552df4cd Giorgos Korfiatis
            'moderated_at': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
113 552df4cd Giorgos Korfiatis
            'moderated_data': ('django.db.models.fields.TextField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
114 552df4cd Giorgos Korfiatis
            'policy': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.Resource']", 'null': 'True', 'through': "orm['im.AstakosUserQuota']", 'symmetrical': 'False'}),
115 552df4cd Giorgos Korfiatis
            'rejected_reason': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
116 552df4cd Giorgos Korfiatis
            'updated': ('django.db.models.fields.DateTimeField', [], {}),
117 552df4cd Giorgos Korfiatis
            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
118 552df4cd Giorgos Korfiatis
            'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
119 552df4cd Giorgos Korfiatis
            'verification_code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True'}),
120 552df4cd Giorgos Korfiatis
            'verified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
121 552df4cd Giorgos Korfiatis
        },
122 552df4cd Giorgos Korfiatis
        'im.astakosuserauthprovider': {
123 552df4cd Giorgos Korfiatis
            'Meta': {'ordering': "('module', 'created')", 'unique_together': "(('identifier', 'module', 'user'),)", 'object_name': 'AstakosUserAuthProvider'},
124 552df4cd Giorgos Korfiatis
            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
125 552df4cd Giorgos Korfiatis
            'affiliation': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True', 'blank': 'True'}),
126 552df4cd Giorgos Korfiatis
            'auth_backend': ('django.db.models.fields.CharField', [], {'default': "'astakos'", 'max_length': '255'}),
127 552df4cd Giorgos Korfiatis
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
128 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
129 552df4cd Giorgos Korfiatis
            'identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
130 552df4cd Giorgos Korfiatis
            'info_data': ('django.db.models.fields.TextField', [], {'default': "''", 'null': 'True', 'blank': 'True'}),
131 552df4cd Giorgos Korfiatis
            'module': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '255'}),
132 552df4cd Giorgos Korfiatis
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_providers'", 'to': "orm['im.AstakosUser']"})
133 552df4cd Giorgos Korfiatis
        },
134 552df4cd Giorgos Korfiatis
        'im.astakosuserquota': {
135 552df4cd Giorgos Korfiatis
            'Meta': {'unique_together': "(('resource', 'user'),)", 'object_name': 'AstakosUserQuota'},
136 552df4cd Giorgos Korfiatis
            'capacity': ('django.db.models.fields.BigIntegerField', [], {}),
137 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
138 552df4cd Giorgos Korfiatis
            'resource': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Resource']"}),
139 552df4cd Giorgos Korfiatis
            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
140 552df4cd Giorgos Korfiatis
        },
141 552df4cd Giorgos Korfiatis
        'im.authproviderpolicyprofile': {
142 552df4cd Giorgos Korfiatis
            'Meta': {'ordering': "['priority']", 'object_name': 'AuthProviderPolicyProfile'},
143 552df4cd Giorgos Korfiatis
            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
144 552df4cd Giorgos Korfiatis
            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'authpolicy_profiles'", 'symmetrical': 'False', 'to': "orm['auth.Group']"}),
145 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
146 552df4cd Giorgos Korfiatis
            'is_exclusive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
147 552df4cd Giorgos Korfiatis
            'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}),
148 552df4cd Giorgos Korfiatis
            'policy_add': ('django.db.models.fields.NullBooleanField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
149 552df4cd Giorgos Korfiatis
            'policy_automoderate': ('django.db.models.fields.NullBooleanField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
150 552df4cd Giorgos Korfiatis
            'policy_create': ('django.db.models.fields.NullBooleanField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
151 552df4cd Giorgos Korfiatis
            'policy_limit': ('django.db.models.fields.IntegerField', [], {'default': 'None', 'null': 'True'}),
152 552df4cd Giorgos Korfiatis
            'policy_login': ('django.db.models.fields.NullBooleanField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
153 552df4cd Giorgos Korfiatis
            'policy_remove': ('django.db.models.fields.NullBooleanField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
154 552df4cd Giorgos Korfiatis
            'policy_required': ('django.db.models.fields.NullBooleanField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
155 552df4cd Giorgos Korfiatis
            'policy_switch': ('django.db.models.fields.NullBooleanField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
156 552df4cd Giorgos Korfiatis
            'priority': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
157 552df4cd Giorgos Korfiatis
            'provider': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
158 552df4cd Giorgos Korfiatis
            'users': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'authpolicy_profiles'", 'symmetrical': 'False', 'to': "orm['im.AstakosUser']"})
159 552df4cd Giorgos Korfiatis
        },
160 552df4cd Giorgos Korfiatis
        'im.chain': {
161 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'Chain'},
162 552df4cd Giorgos Korfiatis
            'chain': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
163 552df4cd Giorgos Korfiatis
        },
164 552df4cd Giorgos Korfiatis
        'im.component': {
165 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'Component'},
166 552df4cd Giorgos Korfiatis
            'auth_token': ('django.db.models.fields.CharField', [], {'max_length': '64', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
167 552df4cd Giorgos Korfiatis
            'auth_token_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
168 552df4cd Giorgos Korfiatis
            'auth_token_expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
169 552df4cd Giorgos Korfiatis
            'base_url': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True'}),
170 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
171 552df4cd Giorgos Korfiatis
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
172 552df4cd Giorgos Korfiatis
            'url': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True'})
173 552df4cd Giorgos Korfiatis
        },
174 552df4cd Giorgos Korfiatis
        'im.emailchange': {
175 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'EmailChange'},
176 552df4cd Giorgos Korfiatis
            'activation_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40', 'db_index': 'True'}),
177 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
178 552df4cd Giorgos Korfiatis
            'new_email_address': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
179 552df4cd Giorgos Korfiatis
            'requested_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
180 552df4cd Giorgos Korfiatis
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emailchanges'", 'unique': 'True', 'to': "orm['im.AstakosUser']"})
181 552df4cd Giorgos Korfiatis
        },
182 552df4cd Giorgos Korfiatis
        'im.endpoint': {
183 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'Endpoint'},
184 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
185 552df4cd Giorgos Korfiatis
            'service': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'endpoints'", 'to': "orm['im.Service']"})
186 552df4cd Giorgos Korfiatis
        },
187 552df4cd Giorgos Korfiatis
        'im.endpointdata': {
188 552df4cd Giorgos Korfiatis
            'Meta': {'unique_together': "(('endpoint', 'key'),)", 'object_name': 'EndpointData'},
189 552df4cd Giorgos Korfiatis
            'endpoint': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'data'", 'to': "orm['im.Endpoint']"}),
190 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
191 552df4cd Giorgos Korfiatis
            'key': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
192 552df4cd Giorgos Korfiatis
            'value': ('django.db.models.fields.CharField', [], {'max_length': '1024'})
193 552df4cd Giorgos Korfiatis
        },
194 552df4cd Giorgos Korfiatis
        'im.invitation': {
195 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'Invitation'},
196 552df4cd Giorgos Korfiatis
            'code': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True'}),
197 552df4cd Giorgos Korfiatis
            'consumed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
198 552df4cd Giorgos Korfiatis
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
199 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
200 552df4cd Giorgos Korfiatis
            'inviter': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invitations_sent'", 'null': 'True', 'to': "orm['im.AstakosUser']"}),
201 552df4cd Giorgos Korfiatis
            'is_consumed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
202 552df4cd Giorgos Korfiatis
            'realname': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
203 552df4cd Giorgos Korfiatis
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
204 552df4cd Giorgos Korfiatis
        },
205 552df4cd Giorgos Korfiatis
        'im.pendingthirdpartyuser': {
206 552df4cd Giorgos Korfiatis
            'Meta': {'unique_together': "(('provider', 'third_party_identifier'),)", 'object_name': 'PendingThirdPartyUser'},
207 552df4cd Giorgos Korfiatis
            'affiliation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
208 552df4cd Giorgos Korfiatis
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
209 552df4cd Giorgos Korfiatis
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
210 552df4cd Giorgos Korfiatis
            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
211 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
212 552df4cd Giorgos Korfiatis
            'info': ('django.db.models.fields.TextField', [], {'default': "''", 'null': 'True', 'blank': 'True'}),
213 552df4cd Giorgos Korfiatis
            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
214 552df4cd Giorgos Korfiatis
            'provider': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
215 552df4cd Giorgos Korfiatis
            'third_party_identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
216 552df4cd Giorgos Korfiatis
            'token': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
217 552df4cd Giorgos Korfiatis
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
218 552df4cd Giorgos Korfiatis
        },
219 552df4cd Giorgos Korfiatis
        'im.project': {
220 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'Project'},
221 552df4cd Giorgos Korfiatis
            'application': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'project'", 'unique': 'True', 'to': "orm['im.ProjectApplication']"}),
222 552df4cd Giorgos Korfiatis
            'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
223 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.BigIntegerField', [], {'primary_key': 'True', 'db_column': "'id'"}),
224 552df4cd Giorgos Korfiatis
            'members': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.AstakosUser']", 'through': "orm['im.ProjectMembership']", 'symmetrical': 'False'}),
225 552df4cd Giorgos Korfiatis
            'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True', 'null': 'True', 'db_index': 'True'}),
226 552df4cd Giorgos Korfiatis
            'state': ('django.db.models.fields.IntegerField', [], {'default': '1', 'db_index': 'True'}),
227 552df4cd Giorgos Korfiatis
            'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
228 552df4cd Giorgos Korfiatis
        },
229 552df4cd Giorgos Korfiatis
        'im.projectapplication': {
230 552df4cd Giorgos Korfiatis
            'Meta': {'unique_together': "(('chain', 'id'),)", 'object_name': 'ProjectApplication'},
231 552df4cd Giorgos Korfiatis
            'applicant': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projects_applied'", 'to': "orm['im.AstakosUser']"}),
232 552df4cd Giorgos Korfiatis
            'chain': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'chained_apps'", 'db_column': "'chain'", 'to': "orm['im.Project']"}),
233 552df4cd Giorgos Korfiatis
            'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
234 552df4cd Giorgos Korfiatis
            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
235 552df4cd Giorgos Korfiatis
            'end_date': ('django.db.models.fields.DateTimeField', [], {}),
236 552df4cd Giorgos Korfiatis
            'homepage': ('django.db.models.fields.URLField', [], {'max_length': '255', 'null': 'True'}),
237 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
238 552df4cd Giorgos Korfiatis
            'issue_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
239 552df4cd Giorgos Korfiatis
            'limit_on_members_number': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
240 552df4cd Giorgos Korfiatis
            'member_join_policy': ('django.db.models.fields.IntegerField', [], {}),
241 552df4cd Giorgos Korfiatis
            'member_leave_policy': ('django.db.models.fields.IntegerField', [], {}),
242 552df4cd Giorgos Korfiatis
            'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
243 552df4cd Giorgos Korfiatis
            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'projects_owned'", 'to': "orm['im.AstakosUser']"}),
244 552df4cd Giorgos Korfiatis
            'private': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
245 552df4cd Giorgos Korfiatis
            'resource_grants': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['im.Resource']", 'null': 'True', 'through': "orm['im.ProjectResourceGrant']", 'blank': 'True'}),
246 552df4cd Giorgos Korfiatis
            'response': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
247 552df4cd Giorgos Korfiatis
            'response_actor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'responded_apps'", 'null': 'True', 'to': "orm['im.AstakosUser']"}),
248 552df4cd Giorgos Korfiatis
            'response_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
249 552df4cd Giorgos Korfiatis
            'start_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
250 552df4cd Giorgos Korfiatis
            'state': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
251 552df4cd Giorgos Korfiatis
            'waive_actor': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'waived_apps'", 'null': 'True', 'to': "orm['im.AstakosUser']"}),
252 552df4cd Giorgos Korfiatis
            'waive_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
253 552df4cd Giorgos Korfiatis
            'waive_reason': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
254 552df4cd Giorgos Korfiatis
        },
255 552df4cd Giorgos Korfiatis
        'im.projectlock': {
256 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'ProjectLock'},
257 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
258 552df4cd Giorgos Korfiatis
        },
259 552df4cd Giorgos Korfiatis
        'im.projectlog': {
260 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'ProjectLog'},
261 552df4cd Giorgos Korfiatis
            'actor': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']", 'null': 'True'}),
262 552df4cd Giorgos Korfiatis
            'comments': ('django.db.models.fields.TextField', [], {'null': 'True'}),
263 552df4cd Giorgos Korfiatis
            'date': ('django.db.models.fields.DateTimeField', [], {}),
264 552df4cd Giorgos Korfiatis
            'from_state': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
265 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
266 552df4cd Giorgos Korfiatis
            'project': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'log'", 'to': "orm['im.Project']"}),
267 552df4cd Giorgos Korfiatis
            'reason': ('django.db.models.fields.TextField', [], {'null': 'True'}),
268 552df4cd Giorgos Korfiatis
            'to_state': ('django.db.models.fields.IntegerField', [], {})
269 552df4cd Giorgos Korfiatis
        },
270 552df4cd Giorgos Korfiatis
        'im.projectmembership': {
271 552df4cd Giorgos Korfiatis
            'Meta': {'unique_together': "(('person', 'project'),)", 'object_name': 'ProjectMembership'},
272 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
273 552df4cd Giorgos Korfiatis
            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"}),
274 552df4cd Giorgos Korfiatis
            'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Project']"}),
275 552df4cd Giorgos Korfiatis
            'state': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'})
276 552df4cd Giorgos Korfiatis
        },
277 552df4cd Giorgos Korfiatis
        'im.projectmembershiplog': {
278 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'ProjectMembershipLog'},
279 552df4cd Giorgos Korfiatis
            'actor': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']", 'null': 'True'}),
280 552df4cd Giorgos Korfiatis
            'comments': ('django.db.models.fields.TextField', [], {'null': 'True'}),
281 552df4cd Giorgos Korfiatis
            'date': ('django.db.models.fields.DateTimeField', [], {}),
282 552df4cd Giorgos Korfiatis
            'from_state': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
283 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
284 552df4cd Giorgos Korfiatis
            'membership': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'log'", 'to': "orm['im.ProjectMembership']"}),
285 552df4cd Giorgos Korfiatis
            'reason': ('django.db.models.fields.TextField', [], {'null': 'True'}),
286 552df4cd Giorgos Korfiatis
            'to_state': ('django.db.models.fields.IntegerField', [], {})
287 552df4cd Giorgos Korfiatis
        },
288 552df4cd Giorgos Korfiatis
        'im.projectresourcegrant': {
289 552df4cd Giorgos Korfiatis
            'Meta': {'unique_together': "(('resource', 'project_application'),)", 'object_name': 'ProjectResourceGrant'},
290 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
291 552df4cd Giorgos Korfiatis
            'member_capacity': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}),
292 552df4cd Giorgos Korfiatis
            'project_application': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.ProjectApplication']", 'null': 'True'}),
293 552df4cd Giorgos Korfiatis
            'project_capacity': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}),
294 552df4cd Giorgos Korfiatis
            'resource': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Resource']"})
295 552df4cd Giorgos Korfiatis
        },
296 552df4cd Giorgos Korfiatis
        'im.resource': {
297 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'Resource'},
298 552df4cd Giorgos Korfiatis
            'api_visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
299 552df4cd Giorgos Korfiatis
            'desc': ('django.db.models.fields.TextField', [], {'null': 'True'}),
300 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
301 552df4cd Giorgos Korfiatis
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
302 552df4cd Giorgos Korfiatis
            'service_origin': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}),
303 552df4cd Giorgos Korfiatis
            'service_type': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
304 552df4cd Giorgos Korfiatis
            'ui_visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
305 552df4cd Giorgos Korfiatis
            'unit': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
306 552df4cd Giorgos Korfiatis
            'uplimit': ('django.db.models.fields.BigIntegerField', [], {'default': '0'})
307 552df4cd Giorgos Korfiatis
        },
308 552df4cd Giorgos Korfiatis
        'im.service': {
309 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'Service'},
310 552df4cd Giorgos Korfiatis
            'component': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Component']"}),
311 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
312 552df4cd Giorgos Korfiatis
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
313 552df4cd Giorgos Korfiatis
            'type': ('django.db.models.fields.CharField', [], {'max_length': '255'})
314 552df4cd Giorgos Korfiatis
        },
315 552df4cd Giorgos Korfiatis
        'im.sessioncatalog': {
316 552df4cd Giorgos Korfiatis
            'Meta': {'object_name': 'SessionCatalog'},
317 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
318 552df4cd Giorgos Korfiatis
            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
319 552df4cd Giorgos Korfiatis
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sessions'", 'null': 'True', 'to': "orm['im.AstakosUser']"})
320 552df4cd Giorgos Korfiatis
        },
321 552df4cd Giorgos Korfiatis
        'im.usersetting': {
322 552df4cd Giorgos Korfiatis
            'Meta': {'unique_together': "(('user', 'setting'),)", 'object_name': 'UserSetting'},
323 552df4cd Giorgos Korfiatis
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
324 552df4cd Giorgos Korfiatis
            'setting': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
325 552df4cd Giorgos Korfiatis
            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"}),
326 552df4cd Giorgos Korfiatis
            'value': ('django.db.models.fields.IntegerField', [], {})
327 552df4cd Giorgos Korfiatis
        }
328 552df4cd Giorgos Korfiatis
    }
329 552df4cd Giorgos Korfiatis
330 552df4cd Giorgos Korfiatis
    complete_apps = ['im']
331 552df4cd Giorgos Korfiatis
    symmetrical = True