Revision 16cf0f73

b/snf-astakos-app/astakos/im/migrations/0015_auto__add_groupkind__add_astakosgroup__add_resourcemetadata__add_astak.py
4 4
from south.v2 import SchemaMigration
5 5
from django.db import models
6 6

  
7

  
8 7
class Migration(SchemaMigration):
9 8

  
10 9
    def forwards(self, orm):
11

  
10
        
12 11
        # Adding model 'GroupKind'
13 12
        db.create_table('im_groupkind', (
14
            ('id', self.gf(
15
                'django.db.models.fields.AutoField')(primary_key=True)),
16
            ('name', self.gf('django.db.models.fields.CharField')
17
             (unique=True, max_length=255, db_index=True)),
13
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
14
            ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255, db_index=True)),
18 15
        ))
19 16
        db.send_create_signal('im', ['GroupKind'])
20 17

  
21 18
        # Adding model 'AstakosGroup'
22 19
        db.create_table('im_astakosgroup', (
23 20
            ('group_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.Group'], unique=True, primary_key=True)),
24
            ('kind', self.gf('django.db.models.fields.related.ForeignKey')
25
             (to=orm['im.GroupKind'])),
21
            ('kind', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.GroupKind'])),
26 22
            ('desc', self.gf('django.db.models.fields.TextField')(null=True)),
27
            ('creation_date', self.gf('django.db.models.fields.DateTimeField')
28
             (default=datetime.datetime(2012, 8, 3, 11, 26, 47, 642626))),
29
            ('issue_date', self.gf(
30
                'django.db.models.fields.DateTimeField')(null=True)),
31
            ('expiration_date', self.gf(
32
                'django.db.models.fields.DateTimeField')(null=True)),
33
            ('moderation_enabled', self.gf(
34
                'django.db.models.fields.BooleanField')(default=False)),
35
            ('approval_date', self.gf('django.db.models.fields.DateTimeField')
36
             (null=True, blank=True)),
37
            ('estimated_participants', self.gf(
38
                'django.db.models.fields.PositiveIntegerField')(null=True)),
23
            ('creation_date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2012, 12, 4, 9, 50, 9, 334623))),
24
            ('issue_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
25
            ('expiration_date', self.gf('django.db.models.fields.DateTimeField')(null=True)),
26
            ('moderation_enabled', self.gf('django.db.models.fields.BooleanField')(default=False)),
27
            ('approval_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
28
            ('estimated_participants', self.gf('django.db.models.fields.PositiveIntegerField')(null=True)),
39 29
        ))
40 30
        db.send_create_signal('im', ['AstakosGroup'])
41 31

  
42 32
        # Adding model 'ResourceMetadata'
43 33
        db.create_table('im_resourcemetadata', (
44
            ('id', self.gf(
45
                'django.db.models.fields.AutoField')(primary_key=True)),
46
            ('key', self.gf('django.db.models.fields.CharField')
47
             (unique=True, max_length=255, db_index=True)),
48
            ('value', self.gf(
49
                'django.db.models.fields.CharField')(max_length=255)),
34
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
35
            ('key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255, db_index=True)),
36
            ('value', self.gf('django.db.models.fields.CharField')(max_length=255)),
50 37
        ))
51 38
        db.send_create_signal('im', ['ResourceMetadata'])
52 39

  
53 40
        # Adding model 'AstakosGroupQuota'
54 41
        db.create_table('im_astakosgroupquota', (
55
            ('id', self.gf(
56
                'django.db.models.fields.AutoField')(primary_key=True)),
57
            ('limit', self.gf(
58
                'django.db.models.fields.PositiveIntegerField')()),
59
            ('resource', self.gf('django.db.models.fields.related.ForeignKey')
60
             (to=orm['im.Resource'])),
61
            ('group', self.gf('django.db.models.fields.related.ForeignKey')
62
             (to=orm['im.AstakosGroup'], blank=True)),
42
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
43
            ('limit', self.gf('django.db.models.fields.PositiveIntegerField')()),
44
            ('resource', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.Resource'])),
45
            ('group', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.AstakosGroup'], blank=True)),
63 46
        ))
64 47
        db.send_create_signal('im', ['AstakosGroupQuota'])
65 48

  
......
68 51

  
69 52
        # Adding model 'Resource'
70 53
        db.create_table('im_resource', (
71
            ('id', self.gf(
72
                'django.db.models.fields.AutoField')(primary_key=True)),
73
            ('name', self.gf('django.db.models.fields.CharField')
74
             (unique=True, max_length=255, db_index=True)),
75
            ('service', self.gf('django.db.models.fields.related.ForeignKey')
76
             (to=orm['im.Service'])),
54
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
55
            ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255, db_index=True)),
56
            ('service', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.Service'])),
77 57
        ))
78 58
        db.send_create_signal('im', ['Resource'])
79 59

  
80 60
        # Adding M2M table for field meta on 'Resource'
81 61
        db.create_table('im_resource_meta', (
82
            ('id', models.AutoField(
83
                verbose_name='ID', primary_key=True, auto_created=True)),
62
            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
84 63
            ('resource', models.ForeignKey(orm['im.resource'], null=False)),
85
            ('resourcemetadata', models.ForeignKey(orm[
86
             'im.resourcemetadata'], null=False))
64
            ('resourcemetadata', models.ForeignKey(orm['im.resourcemetadata'], null=False))
87 65
        ))
88
        db.create_unique(
89
            'im_resource_meta', ['resource_id', 'resourcemetadata_id'])
66
        db.create_unique('im_resource_meta', ['resource_id', 'resourcemetadata_id'])
90 67

  
91 68
        # Adding model 'Membership'
92 69
        db.create_table('im_membership', (
93
            ('id', self.gf(
94
                'django.db.models.fields.AutoField')(primary_key=True)),
95
            ('person', self.gf('django.db.models.fields.related.ForeignKey')
96
             (to=orm['im.AstakosUser'])),
97
            ('group', self.gf('django.db.models.fields.related.ForeignKey')
98
             (to=orm['im.AstakosGroup'])),
99
            ('date_requested', self.gf('django.db.models.fields.DateField')
100
             (default=datetime.datetime(2012, 8, 3, 11, 26, 47, 646518))),
101
            ('date_joined', self.gf('django.db.models.fields.DateField')
102
             (null=True, db_index=True)),
70
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
71
            ('person', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.AstakosUser'])),
72
            ('group', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.AstakosGroup'])),
73
            ('date_requested', self.gf('django.db.models.fields.DateField')(default=datetime.datetime(2012, 12, 4, 9, 50, 9, 338510))),
74
            ('date_joined', self.gf('django.db.models.fields.DateField')(null=True, db_index=True)),
103 75
        ))
104 76
        db.send_create_signal('im', ['Membership'])
105 77

  
......
108 80

  
109 81
        # Adding model 'AstakosUserQuota'
110 82
        db.create_table('im_astakosuserquota', (
111
            ('id', self.gf(
112
                'django.db.models.fields.AutoField')(primary_key=True)),
113
            ('limit', self.gf(
114
                'django.db.models.fields.PositiveIntegerField')()),
115
            ('resource', self.gf('django.db.models.fields.related.ForeignKey')
116
             (to=orm['im.Resource'])),
117
            ('user', self.gf('django.db.models.fields.related.ForeignKey')
118
             (to=orm['im.AstakosUser'])),
83
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
84
            ('limit', self.gf('django.db.models.fields.PositiveIntegerField')()),
85
            ('resource', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.Resource'])),
86
            ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['im.AstakosUser'])),
119 87
        ))
120 88
        db.send_create_signal('im', ['AstakosUserQuota'])
121 89

  
......
127 95

  
128 96
        # Adding M2M table for field owner on 'AstakosUser'
129 97
        db.create_table('im_astakosuser_owner', (
130
            ('id', models.AutoField(
131
                verbose_name='ID', primary_key=True, auto_created=True)),
132
            ('astakosuser', models.ForeignKey(orm[
133
             'im.astakosuser'], null=False)),
134
            ('astakosgroup', models.ForeignKey(orm[
135
             'im.astakosgroup'], null=False))
98
            ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
99
            ('astakosuser', models.ForeignKey(orm['im.astakosuser'], null=False)),
100
            ('astakosgroup', models.ForeignKey(orm['im.astakosgroup'], null=False))
136 101
        ))
137
        db.create_unique(
138
            'im_astakosuser_owner', ['astakosuser_id', 'astakosgroup_id'])
102
        db.create_unique('im_astakosuser_owner', ['astakosuser_id', 'astakosgroup_id'])
139 103

  
140
    def backwards(self, orm):
141 104

  
105
    def backwards(self, orm):
106
        
142 107
        # Removing index on 'Service', fields ['name']
143 108
        db.delete_index('im_service', ['name'])
144 109

  
......
178 143
        # Removing M2M table for field owner on 'AstakosUser'
179 144
        db.delete_table('im_astakosuser_owner')
180 145

  
146

  
181 147
    models = {
182 148
        'auth.group': {
183 149
            'Meta': {'object_name': 'Group'},
b/snf-astakos-app/astakos/im/migrations/0017_populate_resource_data.py
2 2

  
3 3
from south.v2 import DataMigration
4 4

  
5
from astakos.im.settings import SERVICES
6

  
7
import logging
8

  
9
logger = logging.getLogger(__name__)
5 10

  
6 11
class Migration(DataMigration):
7 12

  
8 13
    def forwards(self, orm):
9
        "Obsolete migration."
10
        return
14
        "Write your forwards methods here."
15

  
16
        try:
17
            default = orm.AstakosGroup.objects.get(name='default')
18
        except orm.AstakosGroup.DoesNotExist:
19
            return
20

  
21
        def create_policies(args):
22
            sn, dict = args
23
            url = dict.get('url')
24
            resources = dict.get('resources') or ()
25
            s, created = orm.Service.objects.get_or_create(
26
                name=sn,
27
                defaults={'url': url}
28
            )
29
            
30
            for r in resources:
31
                try:
32
                    rn = r.pop('name', '')
33
                    uplimit = r.pop('uplimit', None)
34
                    r, created = orm.Resource.objects.get_or_create(
35
                        service=s,
36
                        name=rn,
37
                        defaults=r)
38
                except Exception, e:
39
                    print "Cannot create resource ", rn
40
                    continue
41
                else:
42
                    q, created = orm.AstakosGroupQuota.objects.get_or_create(
43
                        group=default,
44
                        resource=r,
45
                        defaults={
46
                            'uplimit':uplimit,
47
                        }
48
                    )
49
        map(create_policies, SERVICES.iteritems())
11 50

  
12 51
    def backwards(self, orm):
13
        "Obsolete migration."
14
        return
52
        try:
53
            default = orm.AstakosGroup.objects.get(name='default')
54
        except orm.AstakosGroup.DoesNotExist:
55
            return
56

  
57
        def destroy_policies(args):
58
            sn, dict = args
59
            url = dict.get('url')
60
            resources = dict.get('resources') or ()
61
            for r in resources:
62
                rn = r.get('name', '')
63
                try:
64
                    q = orm.AstakosGroupQuota.objects.get(
65
                        group=default,
66
                        resource__name=rn)
67
                    q.delete()
68
                    q = orm.Resource.objects.get(service__name=sn, name=rn)
69
                    q.delete()
70
                except Exception, e:
71
                    print "Cannot create resource ", rn
72
                    continue
73

  
74
        map(destroy_policies, SERVICES.iteritems())
15 75

  
16 76
    models = {
17 77
        'auth.group': {
b/snf-astakos-app/astakos/im/migrations/0018_auto__add_field_astakosgroup_homepage.py
4 4
from south.v2 import SchemaMigration
5 5
from django.db import models
6 6

  
7

  
8 7
class Migration(SchemaMigration):
9 8

  
10 9
    def forwards(self, orm):
11

  
10
        
12 11
        # Adding field 'AstakosGroup.homepage'
13 12
        db.add_column('im_astakosgroup', 'homepage', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True), keep_default=False)
14 13

  
15
    def backwards(self, orm):
16 14

  
15
    def backwards(self, orm):
16
        
17 17
        # Deleting field 'AstakosGroup.homepage'
18 18
        db.delete_column('im_astakosgroup', 'homepage')
19 19

  
20

  
20 21
    models = {
21 22
        'auth.group': {
22 23
            'Meta': {'object_name': 'Group'},
b/snf-astakos-app/astakos/im/migrations/0020_auto__chg_field_astakosgroup_homepage.py
4 4
from south.v2 import SchemaMigration
5 5
from django.db import models
6 6

  
7

  
8 7
class Migration(SchemaMigration):
9 8

  
10 9
    def forwards(self, orm):
11

  
10
        
12 11
        # Changing field 'AstakosGroup.homepage'
13
        db.alter_column('im_astakosgroup', 'homepage', self.gf(
14
            'django.db.models.fields.URLField')(max_length=255, null=True))
12
        db.alter_column('im_astakosgroup', 'homepage', self.gf('django.db.models.fields.URLField')(max_length=255, null=True))
15 13

  
16
    def backwards(self, orm):
17 14

  
15
    def backwards(self, orm):
16
        
18 17
        # Changing field 'AstakosGroup.homepage'
19
        db.alter_column('im_astakosgroup', 'homepage', self.gf(
20
            'django.db.models.fields.CharField')(max_length=255, null=True))
18
        db.alter_column('im_astakosgroup', 'homepage', self.gf('django.db.models.fields.CharField')(max_length=255, null=True))
19

  
21 20

  
22 21
    models = {
23 22
        'auth.group': {
b/snf-astakos-app/astakos/im/migrations/0021_auto__add_field_astakosgroupquota_uplimit__add_field_astakosuserquota_.py
4 4
from south.v2 import SchemaMigration
5 5
from django.db import models
6 6

  
7

  
8 7
class Migration(SchemaMigration):
9 8

  
10 9
    def forwards(self, orm):
11

  
10
        
12 11
        # Adding field 'AstakosGroupQuota.uplimit'
13 12
        db.add_column('im_astakosgroupquota', 'uplimit', self.gf('django.db.models.fields.BigIntegerField')(null=True), keep_default=False)
14 13

  
15 14
        # Adding field 'AstakosUserQuota.uplimit'
16 15
        db.add_column('im_astakosuserquota', 'uplimit', self.gf('django.db.models.fields.BigIntegerField')(null=True), keep_default=False)
17 16

  
18
    def backwards(self, orm):
19 17

  
18
    def backwards(self, orm):
19
        
20 20
        # Deleting field 'AstakosGroupQuota.uplimit'
21 21
        db.delete_column('im_astakosgroupquota', 'uplimit')
22 22

  
23 23
        # Deleting field 'AstakosUserQuota.uplimit'
24 24
        db.delete_column('im_astakosuserquota', 'uplimit')
25 25

  
26

  
26 27
    models = {
27 28
        'auth.group': {
28 29
            'Meta': {'object_name': 'Group'},
b/snf-astakos-app/astakos/im/migrations/0024_auto__chg_field_astakosgroupquota_lim.py
4 4
from south.v2 import SchemaMigration
5 5
from django.db import models
6 6

  
7

  
8 7
class Migration(SchemaMigration):
9 8

  
10 9
    def forwards(self, orm):
11

  
10
        
12 11
        # Changing field 'AstakosGroupQuota.limit'
13
        db.alter_column('im_astakosgroupquota', 'limit', self.gf(
14
            'django.db.models.fields.PositiveIntegerField')(null=True))
12
        db.alter_column('im_astakosgroupquota', 'limit', self.gf('django.db.models.fields.PositiveIntegerField')(null=True))
15 13

  
16 14
        # Changing field 'AstakosUserQuota.limit'
17
        db.alter_column('im_astakosuserquota', 'limit', self.gf(
18
            'django.db.models.fields.PositiveIntegerField')(null=True))
15
        db.alter_column('im_astakosuserquota', 'limit', self.gf('django.db.models.fields.PositiveIntegerField')(null=True))
16

  
19 17

  
20 18
    def backwards(self, orm):
21
        pass
22
#        # Changing field 'AstakosGroupQuota.limit'
23
#         db.alter_column('im_astakosgroupquota', 'limit', self.gf(
24
#             'django.db.models.fields.PositiveIntegerField')(default=None))
25
#
26
#        # Changing field 'AstakosUserQuota.limit'
27
#         db.alter_column('im_astakosuserquota', 'limit', self.gf(
28
#             'django.db.models.fields.PositiveIntegerField')(default=None))
19
        
20
        # Changing field 'AstakosGroupQuota.limit'
21
        db.alter_column('im_astakosgroupquota', 'limit', self.gf('django.db.models.fields.PositiveIntegerField')(default=None))
22

  
23
        # Changing field 'AstakosUserQuota.limit'
24
        db.alter_column('im_astakosuserquota', 'limit', self.gf('django.db.models.fields.PositiveIntegerField')(default=None))
25

  
29 26

  
30 27
    models = {
31 28
        'auth.group': {
b/snf-astakos-app/astakos/im/migrations/0025_case_insensitive_emails.py
1 1
# encoding: utf-8
2 2
import datetime
3 3
from south.db import db
4
from south.v2 import DataMigration
4
from south.v2 import SchemaMigration
5 5
from django.db import models
6 6

  
7

  
8
class Migration(DataMigration):
7
class Migration(SchemaMigration):
9 8

  
10 9
    def forwards(self, orm):
11 10
        "Write your forwards methods here."
......
13 12
            u.email = u.email.lower()
14 13
            u.save()
15 14

  
15

  
16 16
    def backwards(self, orm):
17
        "Write your backwards methods here."
17
        pass
18

  
18 19

  
19 20
    models = {
20 21
        'auth.group': {
b/snf-astakos-app/astakos/im/migrations/0026_auto__add_field_resource_desc__add_field_resource_unit.py
4 4
from south.v2 import SchemaMigration
5 5
from django.db import models
6 6

  
7

  
8 7
class Migration(SchemaMigration):
9 8

  
10 9
    def forwards(self, orm):
11

  
10
        
12 11
        # Adding field 'Resource.desc'
13 12
        db.add_column('im_resource', 'desc', self.gf('django.db.models.fields.TextField')(null=True), keep_default=False)
14 13

  
15 14
        # Adding field 'Resource.unit'
16 15
        db.add_column('im_resource', 'unit', self.gf('django.db.models.fields.CharField')(max_length=255, null=True), keep_default=False)
17 16

  
18
    def backwards(self, orm):
19 17

  
18
    def backwards(self, orm):
19
        
20 20
        # Deleting field 'Resource.desc'
21 21
        db.delete_column('im_resource', 'desc')
22 22

  
23 23
        # Deleting field 'Resource.unit'
24 24
        db.delete_column('im_resource', 'unit')
25 25

  
26

  
26 27
    models = {
27 28
        'auth.group': {
28 29
            'Meta': {'object_name': 'Group'},
b/snf-astakos-app/astakos/im/migrations/0031_auto__add_sessioncatalog__add_pendingthirdpartyuser__add_unique_pendin.py
8 8

  
9 9
    def forwards(self, orm):
10 10
        
11
        # Adding model 'SessionCatalog'
12
        db.create_table('im_sessioncatalog', (
13
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
14
            ('session_key', self.gf('django.db.models.fields.CharField')(max_length=40)),
15
            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='sessions', null=True, to=orm['im.AstakosUser'])),
16
        ))
17
        db.send_create_signal('im', ['SessionCatalog'])
18

  
19 11
        # Adding model 'PendingThirdPartyUser'
20 12
        db.create_table('im_pendingthirdpartyuser', (
21 13
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
......
32 24
        # Adding unique constraint on 'PendingThirdPartyUser', fields ['provider', 'third_party_identifier']
33 25
        db.create_unique('im_pendingthirdpartyuser', ['provider', 'third_party_identifier'])
34 26

  
27
        # Adding model 'SessionCatalog'
28
        db.create_table('im_sessioncatalog', (
29
            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
30
            ('session_key', self.gf('django.db.models.fields.CharField')(max_length=40)),
31
            ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='sessions', null=True, to=orm['im.AstakosUser'])),
32
        ))
33
        db.send_create_signal('im', ['SessionCatalog'])
34

  
35 35

  
36 36
    def backwards(self, orm):
37 37
        
38 38
        # Removing unique constraint on 'PendingThirdPartyUser', fields ['provider', 'third_party_identifier']
39 39
        db.delete_unique('im_pendingthirdpartyuser', ['provider', 'third_party_identifier'])
40 40

  
41
        # Deleting model 'SessionCatalog'
42
        db.delete_table('im_sessioncatalog')
43

  
44 41
        # Deleting model 'PendingThirdPartyUser'
45 42
        db.delete_table('im_pendingthirdpartyuser')
46 43

  
44
        # Deleting model 'SessionCatalog'
45
        db.delete_table('im_sessioncatalog')
46

  
47 47

  
48 48
    models = {
49 49
        'auth.group': {
b/snf-astakos-app/astakos/im/migrations/0032_auto__add_astakosuserauthprovider__add_unique_astakosuserauthprovider_.py
45 45
        db.delete_table('im_astakosuserauthprovider')
46 46

  
47 47
        # Changing field 'AstakosUser.affiliation'
48
        db.alter_column('im_astakosuser', 'affiliation', self.gf('django.db.models.fields.CharField')(default='', max_length=255))
48
        db.alter_column('im_astakosuser', 'affiliation', self.gf('django.db.models.fields.CharField')(default='', max_length=255, null=True))
49 49

  
50 50
        # Changing field 'AstakosUser.provider'
51 51
        db.alter_column('im_astakosuser', 'provider', self.gf('django.db.models.fields.CharField')(default='', max_length=255))
b/snf-astakos-app/astakos/im/migrations/0033_multiple_auth_providers.py
27 27

  
28 28
            user.save()
29 29

  
30

  
30 31
    models = {
31 32
        'auth.group': {
32 33
            'Meta': {'object_name': 'Group'},
......
35 36
            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
36 37
        },
37 38
        'auth.permission': {
38
            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
39
            'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
39 40
            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
40 41
            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
41 42
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
......
48 49
            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
49 50
            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
50 51
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
51
            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
52
            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
53
            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
52
            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
53
            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
54
            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
54 55
            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
55 56
            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
56 57
            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
......
58 59
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
59 60
        },
60 61
        'contenttypes.contenttype': {
61
            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
62
            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
62 63
            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
63 64
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
64 65
            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
......
72 73
        },
73 74
        'im.approvalterms': {
74 75
            'Meta': {'object_name': 'ApprovalTerms'},
75
            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 11, 29, 13, 58, 8, 395739)', 'db_index': 'True'}),
76
            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 12, 4, 11, 35, 14, 103893)', 'db_index': 'True'}),
76 77
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
77 78
            'location': ('django.db.models.fields.CharField', [], {'max_length': '255'})
78 79
        },
80
        'im.astakosgroup': {
81
            'Meta': {'object_name': 'AstakosGroup', '_ormbases': ['auth.Group']},
82
            'approval_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
83
            'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 12, 4, 11, 35, 14, 96747)'}),
84
            'desc': ('django.db.models.fields.TextField', [], {'null': 'True'}),
85
            'estimated_participants': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
86
            'expiration_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
87
            'group_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.Group']", 'unique': 'True', 'primary_key': 'True'}),
88
            'homepage': ('django.db.models.fields.URLField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
89
            'issue_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
90
            'kind': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.GroupKind']"}),
91
            'max_participants': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
92
            'moderation_enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
93
            'policy': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['im.Resource']", 'null': 'True', 'through': "orm['im.AstakosGroupQuota']", 'blank': 'True'})
94
        },
95
        'im.astakosgroupquota': {
96
            'Meta': {'unique_together': "(('resource', 'group'),)", 'object_name': 'AstakosGroupQuota'},
97
            'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosGroup']", 'blank': 'True'}),
98
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
99
            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
100
            'resource': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Resource']"}),
101
            'uplimit': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'})
102
        },
79 103
        'im.astakosuser': {
80
            'Meta': {'object_name': 'AstakosUser', '_ormbases': ['auth.User']},
104
            'Meta': {'unique_together': "(('provider', 'third_party_identifier'),)", 'object_name': 'AstakosUser', '_ormbases': ['auth.User']},
81 105
            'activation_sent': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
82 106
            'affiliation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
107
            'astakos_groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.AstakosGroup']", 'symmetrical': 'False', 'through': "orm['im.Membership']", 'blank': 'True'}),
83 108
            'auth_token': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
84 109
            'auth_token_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
85 110
            'auth_token_expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
86 111
            'date_signed_terms': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
87
            'email_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
88
            'has_credits': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
89
            'has_signed_terms': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
90
            'invitations': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
91
            'is_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
92
            'level': ('django.db.models.fields.IntegerField', [], {'default': '4'}),
112
            'disturbed_quota': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
113
            'email_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
114
            'has_credits': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
115
            'has_signed_terms': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
116
            'invitations': ('django.db.models.fields.IntegerField', [], {'default': '100'}),
117
            'is_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
118
            'level': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
119
            'owner': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'owner'", 'null': 'True', 'to': "orm['im.AstakosGroup']"}),
120
            'policy': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.Resource']", 'null': 'True', 'through': "orm['im.AstakosUserQuota']", 'symmetrical': 'False'}),
93 121
            'provider': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
94 122
            'third_party_identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
95 123
            'updated': ('django.db.models.fields.DateTimeField', [], {}),
......
97 125
        },
98 126
        'im.astakosuserauthprovider': {
99 127
            'Meta': {'unique_together': "(('identifier', 'module', 'user'),)", 'object_name': 'AstakosUserAuthProvider'},
100
            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
128
            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
101 129
            'affiliation': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True', 'blank': 'True'}),
102 130
            'auth_backend': ('django.db.models.fields.CharField', [], {'default': "'astakos'", 'max_length': '255'}),
103 131
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
......
105 133
            'module': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '255'}),
106 134
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_providers'", 'to': "orm['im.AstakosUser']"})
107 135
        },
136
        'im.astakosuserquota': {
137
            'Meta': {'unique_together': "(('resource', 'user'),)", 'object_name': 'AstakosUserQuota'},
138
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
139
            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}),
140
            'resource': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Resource']"}),
141
            'uplimit': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}),
142
            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
143
        },
108 144
        'im.emailchange': {
109 145
            'Meta': {'object_name': 'EmailChange'},
110 146
            'activation_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40', 'db_index': 'True'}),
111 147
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
112 148
            'new_email_address': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
113
            'requested_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 11, 29, 13, 58, 8, 396491)'}),
149
            'requested_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 12, 4, 11, 35, 14, 105406)'}),
114 150
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emailchange_user'", 'unique': 'True', 'to': "orm['im.AstakosUser']"})
115 151
        },
152
        'im.groupkind': {
153
            'Meta': {'object_name': 'GroupKind'},
154
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
155
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'})
156
        },
116 157
        'im.invitation': {
117 158
            'Meta': {'object_name': 'Invitation'},
118 159
            'code': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True'}),
......
120 161
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
121 162
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
122 163
            'inviter': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invitations_sent'", 'null': 'True', 'to': "orm['im.AstakosUser']"}),
123
            'is_consumed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
164
            'is_consumed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
124 165
            'realname': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
125 166
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
126 167
        },
168
        'im.membership': {
169
            'Meta': {'unique_together': "(('person', 'group'),)", 'object_name': 'Membership'},
170
            'date_joined': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
171
            'date_requested': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2012, 12, 4, 11, 35, 14, 101611)', 'blank': 'True'}),
172
            'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosGroup']"}),
173
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
174
            'person': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
175
        },
127 176
        'im.pendingthirdpartyuser': {
128 177
            'Meta': {'unique_together': "(('provider', 'third_party_identifier'),)", 'object_name': 'PendingThirdPartyUser'},
129 178
            'affiliation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
......
137 186
            'token': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
138 187
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
139 188
        },
189
        'im.resource': {
190
            'Meta': {'object_name': 'Resource'},
191
            'desc': ('django.db.models.fields.TextField', [], {'null': 'True'}),
192
            'group': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
193
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
194
            'meta': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['im.ResourceMetadata']", 'symmetrical': 'False'}),
195
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
196
            'service': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.Service']"}),
197
            'unit': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'})
198
        },
199
        'im.resourcemetadata': {
200
            'Meta': {'object_name': 'ResourceMetadata'},
201
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
202
            'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
203
            'value': ('django.db.models.fields.CharField', [], {'max_length': '255'})
204
        },
140 205
        'im.service': {
141 206
            'Meta': {'object_name': 'Service'},
142 207
            'auth_token': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
......
144 209
            'auth_token_expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
145 210
            'icon': ('django.db.models.fields.FilePathField', [], {'max_length': '100', 'blank': 'True'}),
146 211
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
147
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
212
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}),
148 213
            'url': ('django.db.models.fields.FilePathField', [], {'max_length': '100'})
149 214
        },
150 215
        'im.sessioncatalog': {

Also available in: Unified diff