Skip to content

Commit

Permalink
Update Student Resident (#233)
Browse files Browse the repository at this point in the history
MUWM-5352 - Future Term Resident Status
  • Loading branch information
fanglinfang authored Feb 7, 2025
1 parent 66f01b6 commit 02e9bbc
Show file tree
Hide file tree
Showing 10 changed files with 56 additions and 11 deletions.
16 changes: 13 additions & 3 deletions uw_sws/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,8 @@ class SwsPerson(models.Model):
permanent_phone = models.CharField(max_length=64, null=True, blank=True)
visa_type = models.CharField(max_length=2, null=True, blank=True)
veteran_code = models.CharField(max_length=2)
resident_code = models.SmallIntegerField(null=True)
resident_code = models.CharField(max_length=2, null=True)
resident_desc = models.CharField(max_length=64, null=True)

def is_veteran(self):
return self.veteran_code != "0"
Expand Down Expand Up @@ -135,9 +136,10 @@ def json_data(self):
'permanent_address': get_student_address_json(
self.permanent_address),
'permanent_phone': self.permanent_phone,
'visa_type': self.visa_type,
'resident_desc': self.resident_desc,
'resident_code': self.resident_code,
'veteran_code': self.veteran_code,
'resident_code': self.resident_code
'visa_type': self.visa_type
}

def __str__(self):
Expand Down Expand Up @@ -1397,6 +1399,8 @@ class Enrollment(models.Model):
is_registered = models.NullBooleanField()
has_pending_major_change = models.NullBooleanField()
has_pending_resident_change = models.NullBooleanField()
pending_resident_code = models.CharField(max_length=2, null=True)
pending_resident_desc = models.CharField(max_length=64, null=True)

def __init__(self, *args, **kwargs):
self.registrations = []
Expand Down Expand Up @@ -1425,6 +1429,10 @@ def __init__(self, *args, **kwargs):
json_data.get('Metadata', ''), ENROLLMENT_SOURCE_PCE)
self.has_pending_resident_change = json_data.get(
'PendingResidentChange', False)
self.pending_resident_code = json_data.get(
'PendingResident')
self.pending_resident_desc = json_data.get(
'PendingResidencyDescription')

self.term = kwargs.get("term")

Expand Down Expand Up @@ -1479,6 +1487,8 @@ def json_data(self):
'is_registered': self.is_registered,
'has_pending_major_change': self.has_pending_major_change,
'has_pending_resident_change': self.has_pending_resident_change,
'pending_resident_code': self.pending_resident_code,
'pending_resident_desc': self.pending_resident_desc,
'registrations': [r.json_data(
include_section_ref=True) for r in self.registrations],
'majors': [m.json_data() for m in self.majors],
Expand Down
1 change: 1 addition & 0 deletions uw_sws/person.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,5 +80,6 @@ def _process_json_data(person_data):
person.uwnetid = person_data.get("UWNetID")
person.visa_type = person_data.get("VisaType")
person.resident_code = person_data.get("Resident")
person.resident_desc = person_data.get("ResidencyDescription")

return person
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
"PendingHonorsChange": false,
"PendingMajorChange": false,
"PendingResidentChange": false,
"PendingResident": "0",
"PendingResidencyDescription": null,
"PendingSpecialProgramChange": false,
"Person": {
"Href": "/student/v4/person/9136CCB8F66711D5BE060004AC494FFE.json",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
"PendingHonorsChange": false,
"PendingMajorChange": false,
"PendingResidentChange": false,
"PendingResidencyDescription": null,
"PendingResident": "0",
"PendingSpecialProgramChange": false,
"Person": {
"Href": "/student/v5/person/9136CCB8F66711D5BE060004AC494FFE.json",
Expand Down Expand Up @@ -249,6 +251,8 @@
"PendingHonorsChange": false,
"PendingMajorChange": false,
"PendingResidentChange": false,
"PendingResidencyDescription": null,
"PendingResident": "0",
"PendingSpecialProgramChange": false,
"Person": {
"Href": "/student/v5/person/9136CCB8F66711D5BE060004AC494FFE.json",
Expand Down Expand Up @@ -503,6 +507,8 @@
"PendingHonorsChange": false,
"PendingMajorChange": false,
"PendingResidentChange": false,
"PendingResidencyDescription": null,
"PendingResident": "0",
"PendingSpecialProgramChange": false,
"Person": {
"Href": "/student/v5/person/9136CCB8F66711D5BE060004AC494FFE.json",
Expand Down Expand Up @@ -725,6 +731,8 @@
"PendingHonorsChange": false,
"PendingMajorChange": false,
"PendingResidentChange": false,
"PendingResidencyDescription": null,
"PendingResident": "0",
"PendingSpecialProgramChange": false,
"Person": {
"Href": "/student/v5/person/9136CCB8F66711D5BE060004AC494FFE.json",
Expand Down Expand Up @@ -901,6 +909,8 @@
"PendingHonorsChange": false,
"PendingMajorChange": false,
"PendingResidentChange": false,
"PendingResidencyDescription": null,
"PendingResident": "0",
"PendingSpecialProgramChange": false,
"Person": {
"Href": "/student/v5/person/9136CCB8F66711D5BE060004AC494FFE.json",
Expand Down Expand Up @@ -1106,7 +1116,9 @@
"PendingClassChange": false,
"PendingHonorsChange": false,
"PendingMajorChange": true,
"PendingResidentChange": true,
"PendingResidentChange": false,
"PendingResidencyDescription": null,
"PendingResident": "0",
"PendingSpecialProgramChange": false,
"Person": {
"Href": "/student/v5/person/9136CCB8F66711D5BE060004AC494FFE.json",
Expand Down Expand Up @@ -1313,6 +1325,8 @@
"PendingHonorsChange": false,
"PendingMajorChange": false,
"PendingResidentChange": false,
"PendingResidencyDescription": null,
"PendingResident": "0",
"PendingSpecialProgramChange": false,
"Person": {
"Href": "/student/v5/person/9136CCB8F66711D5BE060004AC494FFE.json",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"PermanentPhone":null,
"RegID":"00000000000000000000000000000001",
"RegisteredName":null,
"ResidencyDescription": null,
"Resident":null,
"StudentName":"SYSTEM OVERHEAD",
"StudentNumber":null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
"PermanentPhone":null,
"RegID":"12345678901234567890123456789012",
"RegisteredName":"EIGHT STUDENT",
"Resident":"5",
"ResidencyDescription": "NONRESIDENT CITIZEN",
"Resident": "3",
"StudentName":"Eight Student",
"StudentNumber":"1443336",
"StudentSystemKey":"000083857",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
"Zip":""},
"PermanentPhone":null,
"RegID":"9136CCB8F66711D5BE060004AC494F31",
"Resident":null,
"ResidencyDescription": "NONRESIDENT STUDENT VISA",
"Resident": "5",
"StudentName":"Chakrabarti,Japendra",
"StudentNumber":"1233334",
"StudentSystemKey":"000018235",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"Zip":"98005-1234"},
"PermanentPhone":"2065555555",
"RegID":"9136CCB8F66711D5BE060004AC494FFE",
"Resident":1,
"Resident":"1",
"ResidencyDescription": "RESIDENT",
"StudentName":"John Joseph Average",
"StudentNumber":"1033334",
Expand Down
8 changes: 7 additions & 1 deletion uw_sws/tests/test_enrollment.py
Original file line number Diff line number Diff line change
Expand Up @@ -291,4 +291,10 @@ def test_pending_resident(self):
result_dict = enrollment_search_by_regid(
'9136CCB8F66711D5BE060004AC494FFE')
self.assertFalse(result_dict[t1].has_pending_resident_change)
self.assertTrue(result_dict[t2].has_pending_resident_change)
self.assertIsNone(result_dict[t2].pending_resident_desc)
self.assertEqual(result_dict[t1].pending_resident_code, "0")
self.assertFalse(result_dict[t2].has_pending_resident_change)
self.assertEqual(
result_dict[t2].json_data()["pending_resident_code"], "0")
self.assertIsNone(
result_dict[t2].json_data()["pending_resident_desc"])
15 changes: 12 additions & 3 deletions uw_sws/tests/test_person.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ def test_person_resource(self):
"/student/v5/term/2013,autumn.json")
self.assertEqual(data.last_enrolled.quarter, "autumn")
self.assertEqual(data.last_enrolled.year, 2013)
self.assertEqual(data.resident_code, 1)
self.assertEqual(data.resident_code, "1")
self.assertEqual(data.resident_desc, "RESIDENT")

def test_person_jinter(self):
data = get_person_by_regid("9136CCB8F66711D5BE060004AC494F31")
Expand Down Expand Up @@ -89,7 +90,8 @@ def test_person_jinter(self):
self.assertEqual(data.permanent_address.postal_code, "400001")
self.assertEqual(data.permanent_address.state, "Mumbai")
self.assertEqual(data.permanent_address.zip_code, "")
self.assertIsNone(data.resident_code)
self.assertEqual(data.resident_code, "5")
self.assertEqual(data.resident_desc, "NONRESIDENT STUDENT VISA")

data = get_person_by_regid("12345678901234567890123456789012")
self.assertTrue(data.is_J1())
Expand Down Expand Up @@ -118,8 +120,15 @@ def test_person_none(self):
self.assertIsNone(data.permanent_phone)
self.assertIsNone(data.permanent_address)
self.assertIsNone(data.resident_code)
self.assertIsNone(data.resident_desc)

def test_json_datat(self):
def test_json_data(self):
data = get_person_by_regid("9136CCB8F66711D5BE060004AC494FFE")
self.assertEqual(data.json_data()['email'],
"[email protected]")
self.assertEqual(data.json_data()['resident_code'],
"1")
self.assertEqual(data.json_data()['resident_desc'],
"RESIDENT")
self.assertEqual(data.json_data()['visa_type'],
"")

0 comments on commit 02e9bbc

Please sign in to comment.