Skip to content

Commit f65ca85

Browse files
committed
Update membership types: merge Managing into Contributing
Update `membership_type` on `Membership` model to reflect 2024 Bylaws Change 1 (psf/bylaws#4) - Create data migration to merge `MANAGING` (3) into `CONTRIBUTING` (4). - Update `Membership` model, remove `MANAGING`. - Update all references: `MANAGING` to `CONTRIBUTING`. Left gap in `membership_type` choice values to ease data migration process. Closes #2566
1 parent 4e2bd04 commit f65ca85

File tree

5 files changed

+44
-4
lines changed

5 files changed

+44
-4
lines changed

users/actions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
def export_csv(modeladmin, request, queryset):
77
membership_name = {
8-
0: 'Basic', 1: 'Supporting', 2: 'Sponsor', 3: 'Managing',
8+
0: 'Basic', 1: 'Supporting', 2: 'Sponsor',
99
4: 'Contributing', 5: 'Fellow'
1010
}
1111
response = HttpResponse(content_type='text/csv')
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Generated by Django 4.2.17 on 2025-01-21 22:56
2+
3+
# Data migration: Merge MANAGING (3) membership_type into CONTRIBUTING (4)
4+
5+
from django.db import migrations
6+
7+
8+
def update_membership_level(apps, schema_editor):
9+
Membership = apps.get_model('users', 'Membership')
10+
Membership.objects.filter(membership_type=3).update(membership_type=4)
11+
12+
13+
class Migration(migrations.Migration):
14+
15+
dependencies = [
16+
('users', '0015_alter_user_first_name'),
17+
]
18+
19+
operations = [
20+
migrations.RunPython(
21+
update_membership_level,
22+
migrations.RunPython.noop
23+
)
24+
]
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 4.2.17 on 2025-01-22 03:20
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('users', '0016_auto_20250121_2256'),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name='membership',
15+
name='membership_type',
16+
field=models.IntegerField(choices=[(0, 'Basic Member'), (1, 'Supporting Member'), (2, 'Sponsor Member'), (4, 'Contributing Member'), (5, 'Fellow')], default=0),
17+
),
18+
]

users/models.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,13 @@ class Membership(models.Model):
7777
BASIC = 0
7878
SUPPORTING = 1
7979
SPONSOR = 2
80-
MANAGING = 3
8180
CONTRIBUTING = 4
8281
FELLOW = 5
8382

8483
MEMBERSHIP_CHOICES = (
8584
(BASIC, 'Basic Member'),
8685
(SUPPORTING, 'Supporting Member'),
8786
(SPONSOR, 'Sponsor Member'),
88-
(MANAGING, 'Managing Member'),
8987
(CONTRIBUTING, 'Contributing Member'),
9088
(FELLOW, 'Fellow'),
9189
)

users/tests/test_models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def test_membership(self):
3434

3535
def test_higher_level_member(self):
3636
member1 = MembershipFactory()
37-
member2 = MembershipFactory(membership_type=Membership.SPONSOR)
37+
member2 = MembershipFactory(membership_type=Membership.CONTRIBUTING)
3838

3939
self.assertFalse(member1.higher_level_member)
4040
self.assertTrue(member2.higher_level_member)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy