source: asadb/forms/migrations/0012_add_group_cycle.py

space-accessstablestage
Last change on this file was bda4d86, checked in by Alex Dehnert <adehnert@…>, 13 years ago

Finish support for group membership update cycles

The revised workflow is that you visit a group selection page, and select a
group to update. That checks authz (ASA-#169) and then loads any old update in
the appropriate cycle (ASA-#27).

  • Property mode set to 100644
File size: 11.7 KB
Line 
1# encoding: utf-8
2import datetime
3from south.db import db
4from south.v2 import SchemaMigration
5from django.db import models
6
7class Migration(SchemaMigration):
8
9    def forwards(self, orm):
10       
11        # Adding field 'GroupMembershipUpdate.cycle'
12        db.add_column('forms_groupmembershipupdate', 'cycle', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['forms.GroupConfirmationCycle']), keep_default=False)
13
14
15    def backwards(self, orm):
16       
17        # Deleting field 'GroupMembershipUpdate.cycle'
18        db.delete_column('forms_groupmembershipupdate', 'cycle_id')
19
20
21    models = {
22        'forms.fysm': {
23            'Meta': {'object_name': 'FYSM'},
24            'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['forms.FYSMCategory']", 'symmetrical': 'False', 'blank': 'True'}),
25            'contact_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
26            'description': ('django.db.models.fields.TextField', [], {}),
27            'display_name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
28            'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['groups.Group']"}),
29            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
30            'join_preview': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forms.PagePreview']", 'null': 'True'}),
31            'join_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
32            'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
33            'slide': ('django.db.models.fields.files.ImageField', [], {'default': "''", 'max_length': '100'}),
34            'tags': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
35            'website': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
36            'year': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'})
37        },
38        'forms.fysmcategory': {
39            'Meta': {'ordering': "['name']", 'object_name': 'FYSMCategory'},
40            'blurb': ('django.db.models.fields.TextField', [], {}),
41            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
42            'name': ('django.db.models.fields.CharField', [], {'max_length': '25'}),
43            'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'})
44        },
45        'forms.fysmview': {
46            'Meta': {'object_name': 'FYSMView'},
47            'fysm': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forms.FYSM']", 'null': 'True', 'blank': 'True'}),
48            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
49            'page': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}),
50            'referer': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True'}),
51            'source_ip': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
52            'source_user': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
53            'user_agent': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
54            'when': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
55            'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
56        },
57        'forms.groupconfirmationcycle': {
58            'Meta': {'object_name': 'GroupConfirmationCycle'},
59            'create_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
60            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
61            'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
62            'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'})
63        },
64        'forms.groupmembershipupdate': {
65            'Meta': {'object_name': 'GroupMembershipUpdate'},
66            'cycle': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forms.GroupConfirmationCycle']"}),
67            'email_preface': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
68            'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['groups.Group']"}),
69            'group_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
70            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
71            'membership_definition': ('django.db.models.fields.TextField', [], {}),
72            'membership_list': ('django.db.models.fields.TextField', [], {}),
73            'no_discrimination': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
74            'no_hazing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
75            'num_alum': ('django.db.models.fields.IntegerField', [], {}),
76            'num_grads': ('django.db.models.fields.IntegerField', [], {}),
77            'num_other': ('django.db.models.fields.IntegerField', [], {}),
78            'num_other_affiliate': ('django.db.models.fields.IntegerField', [], {}),
79            'num_undergrads': ('django.db.models.fields.IntegerField', [], {}),
80            'officer_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
81            'update_time': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(1970, 1, 1, 0, 0)'}),
82            'updater_name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
83            'updater_title': ('django.db.models.fields.CharField', [], {'max_length': '30'})
84        },
85        'forms.pagepreview': {
86            'Meta': {'object_name': 'PagePreview'},
87            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
88            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
89            'update_time': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(1970, 1, 1, 0, 0)'}),
90            'url': ('django.db.models.fields.URLField', [], {'max_length': '200'})
91        },
92        'forms.personmembershipupdate': {
93            'Meta': {'object_name': 'PersonMembershipUpdate'},
94            'cycle': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forms.GroupConfirmationCycle']"}),
95            'deleted': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
96            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['groups.Group']", 'symmetrical': 'False'}),
97            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
98            'update_time': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(1970, 1, 1, 0, 0)'}),
99            'username': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
100            'valid': ('django.db.models.fields.IntegerField', [], {'default': '0'})
101        },
102        'groups.activitycategory': {
103            'Meta': {'object_name': 'ActivityCategory'},
104            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
105            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
106        },
107        'groups.group': {
108            'Meta': {'ordering': "('name',)", 'object_name': 'Group'},
109            'abbreviation': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '10', 'blank': 'True'}),
110            'activity_category': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['groups.ActivityCategory']", 'null': 'True', 'blank': 'True'}),
111            'advisor_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
112            'athena_locker': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}),
113            'constitution_url': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
114            'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
115            'funding_account_id': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
116            'group_class': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['groups.GroupClass']"}),
117            'group_email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
118            'group_funding': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['groups.GroupFunding']", 'null': 'True', 'blank': 'True'}),
119            'group_status': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['groups.GroupStatus']"}),
120            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
121            'main_account_id': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
122            'meeting_times': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
123            'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'db_index': 'True'}),
124            'num_community': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
125            'num_grads': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
126            'num_other': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
127            'num_undergrads': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
128            'officer_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
129            'recognition_date': ('django.db.models.fields.DateTimeField', [], {}),
130            'update_date': ('django.db.models.fields.DateTimeField', [], {}),
131            'updater': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True'}),
132            'website_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
133        },
134        'groups.groupclass': {
135            'Meta': {'object_name': 'GroupClass'},
136            'description': ('django.db.models.fields.TextField', [], {}),
137            'gets_publicity': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
138            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
139            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
140            'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'})
141        },
142        'groups.groupfunding': {
143            'Meta': {'object_name': 'GroupFunding'},
144            'contact_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
145            'funding_list': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}),
146            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
147            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
148            'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'})
149        },
150        'groups.groupstatus': {
151            'Meta': {'object_name': 'GroupStatus'},
152            'description': ('django.db.models.fields.TextField', [], {}),
153            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
154            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
155            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
156            'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'})
157        }
158    }
159
160    complete_apps = ['forms']
Note: See TracBrowser for help on using the repository browser.