Skip to content

Commit

Permalink
Fix read-open having wrong name in json output
Browse files Browse the repository at this point in the history
pydantic .dict() uses the field name instead of the alias name in the
output by default. Use by_alias=True to use the alias name.
  • Loading branch information
lainets authored and markkuriekkinen committed Aug 11, 2022
1 parent ba22bed commit a5a753f
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
8 changes: 4 additions & 4 deletions access/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ def exercise_template(request, course_key, exercise_key, basename):


@login_required
def aplus_json(request: HttpRequest, course_key: str):
def aplus_json(request: HttpRequest, course_key: str) -> HttpResponse:
'''
Delivers the configuration as JSON for A+.
'''
Expand Down Expand Up @@ -221,13 +221,13 @@ def aplus_json(request: HttpRequest, course_key: str):
errors.append("Could not find exercise defaults file. Try rebuilding the course")
exercise_defaults = {}

data = config.data.dict(exclude={"modules", "static_dir", "unprotected_paths"})
data = config.data.dict(exclude={"modules", "static_dir", "unprotected_paths"}, by_alias=True)

# TODO: this should really be done before the course validation happens
def children_recursion(config: CourseConfig, parent: Parent) -> List[Dict[str, Any]]:
result: List[Dict[str, Any]] = []
for o in parent.children:
of = o.dict(exclude={"children"})
of = o.dict(exclude={"children"}, by_alias=True)
if isinstance(o, Exercise) and o.config:
try:
exercise = config.exercise_config(o.key)
Expand All @@ -246,7 +246,7 @@ def children_recursion(config: CourseConfig, parent: Parent) -> List[Dict[str, A

modules = []
for m in config.data.modules:
mf = m.dict(exclude={"children"})
mf = m.dict(exclude={"children"}, by_alias=True)
mf["children"] = children_recursion(config, m)
modules.append(mf)
data["modules"] = modules
Expand Down
8 changes: 4 additions & 4 deletions builder/configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ def configure_url(
return response, None


def configure_graders(config: CourseConfig):
def configure_graders(config: CourseConfig) -> Tuple[Dict[str, Any], List[Union[str, Dict[str,str]]]]:
course_key = config.key

configures: Dict[str, Tuple[Dict[str,str], List[Exercise]]] = {}
Expand All @@ -115,16 +115,16 @@ def configure_graders(config: CourseConfig):
if course_id is None and configures:
raise ValueError("Remote id not set: cannot configure")

course_spec = config.data.dict(exclude={"static_dir", "configures", "unprotected_paths"})
course_spec = config.data.dict(exclude={"static_dir", "configures", "unprotected_paths"}, by_alias=True)

exercise_defaults: Dict[str, Any] = {}
errors = []
errors: List[Union[str, Dict[str,str]]] = []
for url, (course_files, exercises) in configures.items():
exercise_data: List[Dict[str, Any]] = []
for exercise in exercises:
exercise_data.append({
"key": exercise.key,
"spec": exercise.dict(exclude={"config", "configure"}),
"spec": exercise.dict(exclude={"config", "configure"}, by_alias=True),
"config": exercise._config_obj.data if exercise._config_obj else None,
"files": list(exercise.configure.files.keys()),
})
Expand Down

0 comments on commit a5a753f

Please sign in to comment.