Skip to content

Commit 3aa28cf

Browse files
committed
actually make scraping work
1 parent 4012dc7 commit 3aa28cf

3 files changed

Lines changed: 27 additions & 26 deletions

File tree

backend/degree/management/commands/fetch_degrees.py

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -88,24 +88,28 @@ def handle(self, *args, **kwargs):
8888

8989
for year in range(since_year, to_year + 1):
9090
for program in client.get_programs(year=year):
91-
if program not in program_code_to_name:
92-
continue
93-
for degree in client.degrees_of(program, year=year):
94-
try:
95-
with transaction.atomic():
96-
Degree.objects.filter(
97-
program=degree.program,
98-
degree=degree.degree + "_MANT" if "_MANT" in degree.program else degree.degree,
99-
major=degree.major,
100-
concentration=degree.concentration,
101-
year=degree.year,
102-
).delete()
103-
degree.save()
104-
if kwargs["verbosity"]:
105-
print(f"Saving degree {degree}...")
106-
parse_and_save_degreeworks(client.audit(degree), degree)
107-
except Exception as e:
108-
print(e)
91+
if program not in program_code_to_name:
92+
continue
93+
for degree in client.degrees_of(program, year=year):
94+
try:
95+
with transaction.atomic():
96+
Degree.objects.filter(
97+
program=degree.program,
98+
degree=(
99+
degree.degree + "_MANT"
100+
if "_MANT" in degree.program
101+
else degree.degree
102+
),
103+
major=degree.major,
104+
concentration=degree.concentration,
105+
year=degree.year,
106+
).delete()
107+
degree.save()
108+
if kwargs["verbosity"]:
109+
print(f"Saving degree {degree}...")
110+
parse_and_save_degreeworks(client.audit(degree), degree)
111+
except Exception as e:
112+
print(e)
109113

110114
if kwargs["deduplicate_rules"]:
111115
if kwargs["verbosity"]:

backend/degree/utils/parse_degreeworks.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,8 @@ def parse_and_save_degreeworks(json: dict, degree: Degree) -> bool:
341341
rules = parse_degreeworks(json, degree)
342342
if rules is None:
343343
return False
344-
344+
if "_MANT" in degree.program:
345+
degree.degree = degree.degree + "_MANT"
345346
degree.save()
346347
for rule in rules:
347348
if rule.q:

backend/degree/views.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def create(self, request, *args, **kwargs):
9191
if DegreePlan.objects.filter(name=name, person=self.request.user).exists():
9292
return Response(
9393
{"warning": f"A degree plan with name {name} already exists."},
94-
status=status.HTTP_409_CONFLICT
94+
status=status.HTTP_409_CONFLICT,
9595
)
9696
new_degree_plan = DegreePlan(name=name, person=self.request.user)
9797
new_degree_plan.save()
@@ -312,18 +312,14 @@ def switch_rule(self, request, *args, **kwargs):
312312
other_unselected.add(target_rule)
313313

314314
if len(other_selected) == 0:
315-
displaced.append(
316-
{"full_code": other.full_code, "removed": True}
317-
)
315+
displaced.append({"full_code": other.full_code, "removed": True})
318316
other.delete()
319317
else:
320318
other.rules.set(other_selected)
321319
other.unselected_rules.set(other_unselected)
322320
other.legal = check_legal(other_selected, rule_to_degree)
323321
other.save()
324-
displaced.append(
325-
{"full_code": other.full_code, "removed": False}
326-
)
322+
displaced.append({"full_code": other.full_code, "removed": False})
327323

328324
data = self.get_serializer(fulfillment).data
329325
data["displaced"] = displaced

0 commit comments

Comments
 (0)