...
Call Chain | Query | Maps To New Query |
---|
FieldDataCache.__init__() / FieldDataCache.add_descriptor_descendants()
FieldDataCache.add_descriptors_to_cache()
FieldDataCache._retrieve_fields()
| return self._chunked_query( StudentModule, 'module_state_key__in', self._all_usage_ids(descriptors), course_id=self.course_id, student=self.user.pk, ) Ultimately, aan objects.filter() call. | |
Writes
...
Call Chain | Query | Maps to New Query |
---|
answer_distributions(course_key)
| for module in StudentModule.all_submitted_problems_read_only(course_key):
...which is: queryset = cls.objects.filter(
course_id=course_id,
module_type='problem',
grade__isnull=False
)
if "read_replica" in settings.DATABASES:
return queryset.using("read_replica")
else:
return queryset
| |
_grade(student, request, course, keep_raw_scores) | should_grade_section = StudentModule.objects.filter(
student=student,
module_state_key__in=[
descriptor.location for descriptor in section['xmoduledescriptors']
]
).exists()
| |
get_score(course_id, user, problem_descriptor,
module_creator, scores_cache=None)
| student_module = StudentModule.objects.get(
student=user,
course_id=course_id,
module_state_key=problem_descriptor.location
)
| |
common/djangoapps/xmodule_modifiers.py
...
Call Chain | Query | Maps to New Query |
---|
_calculate_entrance_exam_score()
| student_modules = StudentModule.objects.filter(
student=user,
course_id=course_descriptor.id,
module_state_key__in=exam_module_ids,
)
| |
lms/djangoapps/courseware/views.py
Call Chain | Query | Maps to New Query |
---|
submission_history(request, course_id,
student_username, location)
| student_module = StudentModule.objects.get(
course_id=course_key,
module_state_key=usage_key,
student_id=student.id
)
history_entries = StudentModuleHistory.objects.filter(
student_module=student_module
).order_by('-id')
# If no history records exist, let's force a save to get history started.
if not history_entries:
student_module.save()
history_entries = StudentModuleHistory.objects.filter(
student_module=student_module
).order_by('-id')
| |
lms/djangoapps/courseware/management/commands/clean_history.py
Django management command that clears CSM history for a particular student module.
Call Chain | Query | Maps to New Query |
---|
get_last_student_module_id() | SELECT max(student_module_id) FROM courseware_studentmodulehistory | |
get_history_for_student_modules() | SELECT id, created FROM courseware_studentmodulehistory
WHERE student_module_id = %s
ORDER BY created, id
| |
delete_history() | DELETE FROM courseware_studentmodulehistory
WHERE id IN ({ids})
| |
lms/djangoapps/courseware/management/commands/regrade_partial.py
One-off Django management command.
Call Chain | Query | Maps to New Query |
---|
fix_studentmodules() | modules = StudentModule.objects.filter(modified__gt='2013-03-07 20:18:00',
created__lt='2013-03-08 15:45:00',
state__contains='"npoints": 0.')
| None - will be deleted. |
lms/djangoapps/courseware/management/commands/remove_input_state.py
One-off Django management command.
Call Chain | Query | Maps to New Query |
---|
fix_studentmodules_in_list() | module = StudentModule.objects.get(id=student_module_id)
hist_modules = StudentModuleHistory.objects.filter(student_module_id=student_module_id)
| None - will be deleted. |
lms/djangoapps/courseware/management/commands/tests/test_clean_history.py
Call Chain | Query | Maps to New Query |
---|
From many tests: write_history() | INSERT INTO courseware_studentmodulehistory
(id, created, student_module_id)
VALUES (%s, %s, %s)
| |
From many tests: read_history() | SELECT id, created, student_module_id FROM courseware_studentmodulehistory
| |
lms/djangoapps/courseware/tests/test_model_data.py
Several tests perform direct StudentModule.object()
access.
lms/djangoapps/courseware/tests/test_module_render.py
Two tests - test_xmodule_runtime_publish() & test_xmodule_runtime_publish_delete() -
use direct StudentModule.objects()
access.
lms/djangoapps/courseware/tests/test_submitting_problems.py
Several tests perform direct StudentModule.object()
access.