Fix remaining controller serialization and model mismatches

- Replace all _serialize_group/exam/assignment/stat/session calls with _serialize
- Fix sessions controller to use exam_data JSON field instead of nonexistent columns
- Fix stats controller to use correct model fields (score_correct/total/missing, solutions)

Made-with: Cursor
This commit is contained in:
Talal Sharabi
2026-03-15 01:12:17 +04:00
parent bf3981028b
commit fa538a1f12
5 changed files with 42 additions and 40 deletions

View File

@@ -47,7 +47,7 @@ class AssignmentsController(EncoachMixin, http.Controller):
records = Assignment.search(domain, offset=offset, limit=limit, order='create_date desc')
return self._json_response({
'assignments': [self._serialize_assignment(a) for a in records],
'assignments': [self._serialize(a) for a in records],
'total': total,
'page': page,
'limit': limit,
@@ -84,7 +84,7 @@ class AssignmentsController(EncoachMixin, http.Controller):
vals['duration'] = int(body['duration'])
assignment = request.env['encoach.assignment'].sudo().with_user(user).create(vals)
return self._json_response(self._serialize_assignment(assignment), status=201)
return self._json_response(self._serialize(assignment), status=201)
except Exception:
_logger.exception("Create assignment error")
return self._error_response('Internal server error', 500)
@@ -124,7 +124,7 @@ class AssignmentsController(EncoachMixin, http.Controller):
if vals:
assignment.write(vals)
return self._json_response(self._serialize_assignment(assignment))
return self._json_response(self._serialize(assignment))
except Exception:
_logger.exception("Update assignment error")
return self._error_response('Internal server error', 500)
@@ -166,7 +166,7 @@ class AssignmentsController(EncoachMixin, http.Controller):
return self._error_response('Assignment not found', 404)
assignment.action_start()
return self._json_response(self._serialize_assignment(assignment))
return self._json_response(self._serialize(assignment))
except Exception as exc:
_logger.exception("Start assignment error")
return self._error_response(str(exc) if str(exc) != '' else 'Internal server error', 500)
@@ -187,7 +187,7 @@ class AssignmentsController(EncoachMixin, http.Controller):
return self._error_response('Assignment not found', 404)
assignment.action_release()
return self._json_response(self._serialize_assignment(assignment))
return self._json_response(self._serialize(assignment))
except Exception as exc:
_logger.exception("Release assignment error")
return self._error_response(str(exc) if str(exc) != '' else 'Internal server error', 500)
@@ -208,7 +208,7 @@ class AssignmentsController(EncoachMixin, http.Controller):
return self._error_response('Assignment not found', 404)
assignment.write({'is_archived': True})
return self._json_response(self._serialize_assignment(assignment))
return self._json_response(self._serialize(assignment))
except Exception:
_logger.exception("Archive assignment error")
return self._error_response('Internal server error', 500)
@@ -229,7 +229,7 @@ class AssignmentsController(EncoachMixin, http.Controller):
return self._error_response('Assignment not found', 404)
assignment.write({'is_archived': False})
return self._json_response(self._serialize_assignment(assignment))
return self._json_response(self._serialize(assignment))
except Exception:
_logger.exception("Unarchive assignment error")
return self._error_response('Internal server error', 500)