Skip to content

Commit acfbeb7

Browse files
authored
Merge pull request #827 from uw-it-aca/hotfix/MUWM-3783-MUWM-3921
Resolve MUWM-3921
2 parents 0090a36 + 10a13e1 commit acfbeb7

File tree

5 files changed

+47
-49
lines changed

5 files changed

+47
-49
lines changed

myuw/dao/calendar_mapping.py

+12-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import csv
22
import os
3-
from myuw.dao.enrollment import get_current_quarter_enrollment
3+
from myuw.dao.student_profile import get_cur_future_enrollments
44
from myuw.dao.gws import is_grad_student
55

66

@@ -33,15 +33,17 @@ def _get_enrollments(request):
3333
majors = []
3434
minors = []
3535
try:
36-
enrollment = get_current_quarter_enrollment(request)
37-
38-
if len(enrollment.majors) > 0:
39-
for major in enrollment.majors:
40-
majors.append(major.major_name)
41-
42-
if len(enrollment.minors) > 0:
43-
for minor in enrollment.minors:
44-
minors.append(minor.short_name)
36+
terms, enrollments = get_cur_future_enrollments(request)
37+
for enrollment in enrollments.values():
38+
if len(enrollment.majors) > 0:
39+
for major in enrollment.majors:
40+
if major.major_name and major.major_name not in majors:
41+
majors.append(major.major_name)
42+
43+
if len(enrollment.minors) > 0:
44+
for minor in enrollment.minors:
45+
if minor.short_name and minor.short_name not in minors:
46+
minors.append(minor.short_name)
4547
except Exception:
4648
pass
4749
return {'is_grad': is_grad_student(),

myuw/dao/student_profile.py

+14-16
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,10 @@
55

66
import logging
77
from uw_sws.person import get_person_by_regid
8+
from myuw.dao import get_netid_of_current_user
89
from myuw.dao.pws import get_regid_of_current_user
9-
from myuw.dao.enrollment import (get_current_quarter_enrollment,
10-
get_main_campus,
11-
get_enrollments_of_terms)
12-
from myuw.dao.term import (get_current_quarter,
13-
get_next_quarter,
14-
get_current_and_next_quarters)
10+
from myuw.dao.enrollment import get_main_campus, get_enrollments_of_terms
11+
from myuw.dao.term import get_current_and_next_quarters
1512
from myuw.dao.gws import is_grad_student
1613

1714

@@ -49,21 +46,22 @@ def get_student_profile(request):
4946
return response
5047

5148

49+
def get_cur_future_enrollments(request):
50+
try:
51+
terms = get_current_and_next_quarters(request, 4)
52+
return terms, get_enrollments_of_terms(terms)
53+
except Exception as ex:
54+
logger.error(
55+
"%s get_enrollments: %s" % (get_netid_of_current_user(), ex))
56+
return None
57+
58+
5259
def get_academic_info(request, response):
5360
"""
5461
Iterates through the student enrollments and populates the profile
5562
fields based upon data available
5663
"""
57-
58-
terms = get_current_and_next_quarters(request, 4)
59-
60-
try:
61-
enrollments = get_enrollments_of_terms(terms)
62-
except Exception as ex:
63-
logger.error(
64-
"%s get_academic_info: %s" %
65-
(netid, ex))
66-
return
64+
terms, enrollments = get_cur_future_enrollments(request)
6765

6866
if terms[0] in enrollments:
6967
enrollment = enrollments[terms[0]]

myuw/test/dao/calendar_mapping.py

+14-3
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@
33
get_calendars_for_minors, get_calendars_for_majors, \
44
get_calendars_for_gradmajors, _get_enrollments, \
55
_get_calendars, _get_calendar_ids_from_text
6-
from myuw.test import get_request
6+
from myuw.test import get_request_with_user, get_request_with_date
77

88

99
class TestCalendarMapping(TestCase):
10-
def setUp(self):
11-
get_request()
1210

1311
def test_get_by_major(self):
1412
enrollments = {'majors': ['NON MATRICULATED'],
@@ -67,3 +65,16 @@ def test_ids_from_text(self):
6765
ids = _get_calendar_ids_from_text(text)
6866
self.assertEqual(len(ids), 1)
6967
self.assertEqual(ids[0], "sea_art")
68+
69+
def test_get_cur_future_enrollments(self):
70+
req = get_request_with_user('javerage',
71+
get_request_with_date("2013-04-10"))
72+
enrollments = _get_enrollments(req)
73+
self.assertEqual(len(enrollments['majors']), 3)
74+
self.assertEqual(enrollments['majors'][0],
75+
'ENGLISH')
76+
self.assertEqual(enrollments['majors'][1],
77+
'ACMS (SOC & BEH SCI)')
78+
self.assertEqual(enrollments['majors'][2],
79+
'COMPUTER SCIENCE')
80+
self.assertEqual(len(enrollments['minors']), 2)

myuw/test/dao/test_student_profile.py

+6-19
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
from django.test import TestCase
2-
from restclients_core.exceptions import DataFailureException
3-
from myuw.dao.term import get_current_quarter,\
4-
get_next_quarter, get_term_before, get_term_after,\
5-
get_current_and_next_quarters
6-
from myuw.dao.enrollment import get_enrollment_for_term,\
7-
get_enrollments_of_terms, get_current_quarter_enrollment,\
8-
get_enrollments_of_terms
2+
from myuw.dao.student_profile import _get_degrees_for_terms,\
3+
get_cur_future_enrollments
94
from myuw.test import fdao_sws_override, fdao_pws_override,\
105
get_request_with_date, get_request_with_user
11-
from myuw.dao.student_profile import _get_degrees_for_terms
126

137

148
@fdao_pws_override
@@ -17,9 +11,7 @@ class TestStudentProfile(TestCase):
1711
def test_get_majors_for_terms(self):
1812
req = get_request_with_user('eight',
1913
get_request_with_date("2013-04-01"))
20-
terms = get_current_and_next_quarters(req, 4)
21-
enrollments = get_enrollments_of_terms(terms)
22-
14+
terms, enrollments = get_cur_future_enrollments(req)
2315
majors = _get_degrees_for_terms(terms, enrollments, "majors")
2416

2517
self.assertEquals(len(majors[0]['majors']), 2)
@@ -29,9 +21,7 @@ def test_get_majors_for_terms(self):
2921
def test_get_minors_for_terms(self):
3022
req = get_request_with_user('jbothell',
3123
get_request_with_date("2013-04-01"))
32-
terms = get_current_and_next_quarters(req, 4)
33-
enrollments = get_enrollments_of_terms(terms)
34-
24+
terms, enrollments = get_cur_future_enrollments(req)
3525
minors = _get_degrees_for_terms(terms, enrollments, "minors")
3626

3727
self.assertEquals(len(minors[0]['minors']), 1)
@@ -41,8 +31,7 @@ def test_get_minors_for_terms(self):
4131
def test_no_change(self):
4232
req = get_request_with_user('javg005',
4333
get_request_with_date("2013-04-01"))
44-
terms = get_current_and_next_quarters(req, 4)
45-
enrollments = get_enrollments_of_terms(terms)
34+
terms, enrollments = get_cur_future_enrollments(req)
4635

4736
majors = _get_degrees_for_terms(terms, enrollments, "majors")
4837
minors = _get_degrees_for_terms(terms, enrollments, "minors")
@@ -56,9 +45,7 @@ def test_no_change(self):
5645
def test_major_drop_empty(self):
5746
req = get_request_with_user('jeos',
5847
get_request_with_date("2013-01-10"))
59-
terms = get_current_and_next_quarters(req, 4)
60-
enrollments = get_enrollments_of_terms(terms)
61-
48+
terms, enrollments = get_cur_future_enrollments(req)
6249
majors = _get_degrees_for_terms(terms, enrollments, "majors")
6350
minors = _get_degrees_for_terms(terms, enrollments, "minors")
6451
self.assertEquals(len(minors), 4)

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
'UW-RestClients-Bookstore<1.0',
4949
'UW-RestClients-Mailman<1.0',
5050
'UW-RestClients-MyPlan<1.0',
51-
'UW-RestClients-Trumba<1.0',
51+
'UW-RestClients-Trumba<1.0,>=0.3',
5252
'UW-RestClients-Django-Utils<1.0',
5353
'Django-SupportTools',
5454
'django_mobileesp',

0 commit comments

Comments
 (0)