Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / migrations / 0038_auth_tokens.py @ 62d30634

History | View | Annotate | Download (24.8 kB)

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