|
10 | 10 | class Migration(DataMigration):
|
11 | 11 |
|
12 | 12 | def forwards(self, orm):
|
13 |
| - def end(bit): |
14 |
| - date = bit.enddate |
15 |
| - if date > datetime.datetime(3000,1,1): |
16 |
| - return None |
17 |
| - return date |
18 |
| - |
19 |
| - #Administer |
20 |
| - adm_bits=orm['users.UserBit'].objects.filter(verb__uri="V/Administer",qsc__uri__startswith="Q/Programs") |
21 |
| - for bit in adm_bits: |
22 |
| - try: |
23 |
| - p=orm['program.Program'].objects.get(anchor=bit.qsc) |
24 |
| - except orm['program.Program'].DoesNotExist: |
25 |
| - continue |
26 |
| - orm['users.Permission'](permission_type="Administer", program=p, user=bit.user, startdate=bit.startdate, enddate=end(bit)).save() |
27 |
| - |
28 |
| - # Administer all programs, but with an enddate. |
29 |
| - # Adds users that we didn't add to the Administrator group in 0019_userrole. |
30 |
| - for bit in orm['users.UserBit'].objects.filter(verb__uri="V/Administer", qsc__uri="Q", user__isnull=False, enddate__lt=datetime.datetime(3000,1,1)): |
31 |
| - orm['users.Permission'](permission_type="Administer", program=None, user=bit.user, startdate=bit.startdate, enddate=end(bit)).save() |
32 |
| - |
33 |
| - #view programs |
34 |
| - program_anchors=orm['program.Program'].objects.all().values_list("anchor",flat=True) |
35 |
| - view_program_bits=orm['users.UserBit'].objects.filter(verb__uri="V/Flags/Public", qsc__id__in=program_anchors) |
36 |
| - for bit in view_program_bits: |
37 |
| - try: |
38 |
| - p=orm['program.Program'].objects.get(anchor=bit.qsc) |
39 |
| - except orm['program.Program'].DoesNotExist: |
40 |
| - continue |
41 |
| - if bit.user is not None: |
42 |
| - orm['users.Permission'](permission_type=bit.verb.uri[24:], |
43 |
| - user=bit.user, |
44 |
| - program=p, |
45 |
| - startdate=bit.startdate, |
46 |
| - enddate=end(bit)).save() |
47 |
| - else: |
48 |
| - for x in ESPUser.getTypes(): |
49 |
| - orm['users.Permission'](permission_type=bit.verb.uri[24:], |
50 |
| - role=orm['auth.Group'].objects.get(name=x), |
51 |
| - program=p, |
52 |
| - startdate=bit.startdate, |
53 |
| - enddate=end(bit)).save() |
54 |
| - |
55 |
| - #gradeoverride |
56 |
| - go_bits=orm['users.UserBit'].objects.filter(verb__uri="V/Flags/Registration/GradeOverride",qsc__uri__startswith="Q/Programs") |
57 |
| - for bit in go_bits: |
58 |
| - try: |
59 |
| - p=orm['program.Program'].objects.get(anchor=bit.qsc) |
60 |
| - except orm['program.Program'].DoesNotExist: |
61 |
| - continue |
62 |
| - orm['users.Permission'](permission_type="GradeOverride", program=p,user=bit.user, startdate=bit.startdate, enddate=end(bit)).save() |
63 |
| - |
64 |
| - #onsite |
65 |
| - onsite_bits=orm['users.UserBit'].objects.filter(verb__uri="V/Registration/Onsite") |
66 |
| - for bit in onsite_bits: |
67 |
| - try: |
68 |
| - p=orm['program.Program'].objects.get(anchor=bit.qsc) |
69 |
| - except orm['program.Program'].DoesNotExist: |
70 |
| - continue |
71 |
| - orm['users.Permission'](permission_type="Onsite", |
72 |
| - user=bit.user, |
73 |
| - program=p, |
74 |
| - startdate=bit.startdate, |
75 |
| - enddate=end(bit)).save() |
76 |
| - |
77 |
| - #deadlines |
78 |
| - deadline_bits = orm['users.UserBit'].objects.filter(verb__uri__startswith="V/Deadline/Registration") |
79 |
| - for bit in deadline_bits: |
80 |
| - try: |
81 |
| - p=orm['program.Program'].objects.get(anchor=bit.qsc) |
82 |
| - except orm['program.Program'].DoesNotExist: |
83 |
| - continue |
84 |
| - |
85 |
| - name = bit.verb.uri[24:] |
86 |
| - if bit.recursive and bit.verb.name in ["Classes", "Teacher", "Student"]: |
87 |
| - name += "/All" |
88 |
| - if bit.user is not None: |
89 |
| - orm['users.Permission'](permission_type=name, |
90 |
| - user=bit.user, |
91 |
| - program=p, |
92 |
| - startdate=bit.startdate, |
93 |
| - enddate=end(bit)).save() |
94 |
| - elif bit.verb.uri[24:31]=="Teacher": |
95 |
| - orm['users.Permission'](permission_type=name, |
96 |
| - role=orm['auth.Group'].objects.get(name="Teacher"), |
97 |
| - program=p, |
98 |
| - startdate=bit.startdate, |
99 |
| - enddate=end(bit)).save() |
100 |
| - elif bit.verb.uri[24:31]=="Student": |
101 |
| - orm['users.Permission'](permission_type=name, |
102 |
| - role=orm['auth.Group'].objects.get(name="Student"), |
103 |
| - program=p, |
104 |
| - startdate=bit.startdate, |
105 |
| - enddate=end(bit)).save() |
| 13 | + pass |
106 | 14 |
|
107 | 15 | def backwards(self, orm):
|
108 | 16 | orm['users.Permission'].objects.all().delete()
|
|
0 commit comments