-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Django command to post submissions to ora #2001
Conversation
|
||
|
||
def create_list_from_csv(path_to_csv): | ||
"""Read a csv and return items in a list.""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See Ned's comments from #1946
@cpennington @nedbat @wedaly please review. |
students_with_graded_submissions.append(student) | ||
|
||
data = dict() | ||
data["assessing"] = [{"anonymous_id": anonymous_user_id_for_user(student, '', read_only=True), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The read_only=True
should only be enabled with a command line argument. Will fix this.
I don't see any unit tests for this command or for the code you changed in |
if dry_run: | ||
print " Skipped sending submission to grader: {0}".format(repr(latest_answer[:100].encode('utf-8'))) | ||
else: | ||
latest_task.send_to_grader(latest_answer, latest_task.system) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The current implementation of send_to_grader
method always returns True, even if the XQueue interface reports an error. As far as I can tell, nothing in the system uses that return value. This might be a good time to update send_to_grader
to return False
on failure, then handle that condition explicitly here.
Thanks everyone for the detailed review and suggestions. I have made changes accordingly. Please have a look again. |
task_state = self.task_states[task_index] | ||
task_xml = self.task_xml[task_index] | ||
return self.create_task(task_state, task_xml) | ||
return None | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cpennington I have replaced get_current_task
with get_task_at_index(task_index)
and task_index
can be specified as an argument to the commands. This will ensure that for multi-step problems the commands only operate on the intended step.
@wedaly I am already working on a separate branch for the fix to send_to_grader(). I am going to add some tests for the changes in /xmodule but I am not sure how to test the commands? |
@symbolist Create a test course with a I'd recommend patching / mocking the network call that posts the submission to verify it has the correct data. The easiest way to do this is to replace the xqueue interface object with a mock (in the runtime system passed to the open ended module). This will allow you to verify both success and failure conditions. There are examples of testing Django commands in the codebase: just look for "tests" folders inside "management/commands" packages. |
@wedaly I added some tests. Do they look okay? |
|
||
if task_state == OpenEndedChild.INITIAL: | ||
if latest_task.stored_answer is not None: | ||
students_with_saved_answers.append(student) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm seeing that this line is uncovered by the tests. I'm not sure I understand when this line would be executed -- could you please clarify?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When a student saves an answer (but not submits it) it is stored in task.stored_answer. But whether they have just looked at the problem or saved an answer the task_state == OpenEndedChild.INITIAL
. Should I cover this too?
@symbolist The tests look good. 👍 when you make the style fix and cover the missing line with a test case. |
@cpennington I have refactored according to your suggestions. Can you give it a look? |
@@ -13,6 +13,7 @@ | |||
from courseware.courses import get_course_by_id | |||
from django.contrib.auth.models import User | |||
|
|||
from .utils import DummyRequest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use absolute imports instructor.utils
.
…der for open ended problems. ORA-286
👍 |
Django command to post submissions to ora
* Add menu to ga_operation for ga_analyzer openedx#2039 (openedx#2088) * add role for old course viewer openedx#2062 (openedx#2087) * add role for old course viewer openedx#2062 * Change action for biz course by BetaTester role openedx#2062 * Construction of image server openedx#2025 (openedx#2106) * cherry-pick 8c8953f * Fix file upload in IE * Construction of image server openedx#2025 * add all keywords search in Student management openedx#2029 (openedx#2034) * Fix bug for before enrollment start in ga old course viewer openedx#2062 (openedx#2125) * fix. Construction of image server openedx#2025 (openedx#2117) * Modify message and css of enrollment for Course About openedx#2130 * Add a certificate list to user's profile page. openedx#2042 (openedx#2108) * Mod UT openedx#2130 * add PDF File Construction of image server openedx#2025 (openedx#2140) * add library option, and library links to the course. openedx#2001 (openedx#2124) * Invalid StudioPermissionsService object in API to show/save xblock settings in CMS. Randomized Content Block editor did not check Studio user's permissions * add library option, and library links to the course. openedx#2001 * fix. add all keywords search in Student management openedx#2029 (openedx#2034) (openedx#2157) * second fix. Construction of image server openedx#2025 (openedx#2158) * add library option, and library links to the course. openedx#2001 (openedx#2160) * third fix. Construction of image server openedx#2163 (openedx#2164) * Add filter by category for certificates on profile page openedx#2042 (openedx#2165) * Fix bug for add library option, and library links to the course. openedx#2162 openedx#2133 (openedx#2167) * Develop/dogwood/gacco201708 (openedx#2170) * Fixed bugs openedx#2039 (openedx#2112) * Fixed csv format openedx#2039 (openedx#2127) * Change to split download if there are many display items openedx#916 (openedx#2121) * Change to split download if there are many display items openedx#916 * Fix UT * Fix Review * Fix review2
* MCKIN-22396 Fix samesite cookie issue for Scorm Shell login flow (openedx#1879) * Adds django-cookies-sameseite middleware and settings to set SameSite=None for all secure cookies. * Fix `SameSite` cookie issue for LTI Provider. EW-449 (cherry picked from commit 28479a2) * Fix tests, conflicts resolved Co-authored-by: Jillian Vogel <jill@opencraft.com> Co-authored-by: Zachary Trabookis <ztraboo@clemson.edu> * MCKIN-19584: add support for inline discussions translations (openedx#1863) * MCKIN-19584: add support for inline discussions translations (openedx#1830) * add support for inline discussions translations * mark js string for translation on discussions * ironwood fix * MCKIN-19840 EOC (End of course Journal) - None of the strings are translated in any language (openedx#1857) * MCKIN-19840 Add version bump for EOC 0.7.1 (openedx#1867) * MCKIN-23062 purge cohorts of deleted groups * MCKIN-23098 404 error on opening the module having EOC with no translations (openedx#1870) * MCKIN-23098 404 error on opening the module having EOC with no translations integrated * fix typo and chinese translation on discussions page (openedx#1875) * Fix mismatching versions for api integration * security fixes patch * MCKIN-23604 Match fork code with upstream (openedx#1880) * [MCKIN-21879] Remove foreign keys from deprecated `progress-edx-platform-extensions` (openedx#1874) * MCKIN-22507 Updated GW submission API to accept TA email id (openedx#1871) * MCKIN-22507 Updated GW submission API to accept TA email id * Fixed typo * MCKIN-22509 VB * [MCKIN-22507] Review version bump for xblock-group-project-v2 (openedx#1887) * MCKIN-22509 Added API to check/create anonymous user id (openedx#1882) * MCKIN-23249 Threw error if any of group has submissions (openedx#1884) * Added ignore condition for generated files * Release freeze (openedx#1895) * [MCKIN-21879] Remove foreign keys from deprecated `progress-edx-platform-extensions` (openedx#1874) * MCKIN-22507 Updated GW submission API to accept TA email id (openedx#1871) * MCKIN-22507 Updated GW submission API to accept TA email id * Fixed typo * MCKIN-22509 VB * [MCKIN-22507] Review version bump for xblock-group-project-v2 (openedx#1887) * MCKIN-22509 Added API to check/create anonymous user id (openedx#1882) * MCKIN-23249 Threw error if any of group has submissions (openedx#1884) * Added ignore condition for generated files Co-authored-by: Piotr Surowiec <piotr@opencraft.com> Co-authored-by: Nasir Hussain <nasirhjafri@gmail.com> Co-authored-by: Sohaib Aslam <sohaib.aslam@arbisoft.com> Co-authored-by: Shafqat Farhan <shafqat.farhan@arbisoft.com> * Revert "[MCKIN-21879] Remove foreign keys from deprecated `progress-edx-platform-extensions` (openedx#1874)" This reverts commit 5dad4f0. * Revert "[MCKIN-21879] Remove foreign keys from deprecated `progress-edx-platform-extensions` (openedx#1874)" This reverts commit 5dad4f0. * MCKIN-23061 Fix enlarged buttons on studio (openedx#1892) * Revert "Updated subsections grade percentage to start rounding" This reverts commit fde830b. * MCKIN-22514 problem builder verion bump * [MCKIN-21879] Remove foreign keys from deprecated `progress-edx-platform-extensions` * [BB-2765] Add `reverse_sql` to `database_fixups/0002` migration * MCKIN-24492 version bump api-integration (openedx#1898) * MCKIN-21527 Problem Builder (FTE, Assessment, MCQ, MRQ) - On opening these modules, none of the text is translated on notifications dropdown. (openedx#1889) * MCKIN-21918 Inline discussion japanese buttons (openedx#1891) Co-authored-by: murad-hubib <murad.habib@arbisoft.com> * bump xblock problem-builder version to 3.5.1 (openedx#1899) * MCKIN-24501 api-integration version bump (openedx#1903) * Security patch from aug 26 (openedx#1894) Co-authored-by: Ned Batchelder <ned@edx.org> * sustaining xss security fixes 3 (openedx#1893) Co-authored-by: Ali-D-Akbar <aliakbarit019@gmail.com> * Sustaining security fixes 4 & 5 (openedx#1901) Co-authored-by: Ali-D-Akbar <aliakbarit019@gmail.com> * MCKIN-24663 sorting alphanumeric list (openedx#1908) * MCKIN-24633 releasing problem builder v3.5.2 (openedx#1917) * MCKIN-24559 - Organization extensions VB (openedx#1905) Releasing `v2.0.6` * MCKIN-24565 - Organizations extensions VB (openedx#1907) Releasing `v2.0.7` * MCKIN-24511 Projects extension VB (openedx#1915) * Resolved conflits * Resloved conflicts * MCKIN-21919 Inline Discussion - The following strings are not translated in Korean Language (openedx#1906) * Resolved conflict * Resolved conflicts * MCKIN-24633 releasing problem builder v3.5.2 (openedx#1917) * MCKIN-25170 translation for review grade * MCKIN-24296 missing translations added (openedx#1926) * missing translations added (openedx#1927) * MCKIN-25091 fixed Discussion post Anonymously (openedx#1925) * VB for VR and eoc (openedx#1933) * MCKIN-25752 discussion and question posted translations (openedx#1934) * MCKIN-26123 Plateform Issues (openedx#1939) * MCKIN-26123 Plateform Issues (openedx#1940) * MCKIN-26123 Drag and Drop Version update (openedx#1942) * MCKIN-23104 version upgrade of EOC journal (openedx#1941) * MCKIN-26505 Version update of Problem Builder (openedx#1945) * MCKIN-26123 Drag&Drop Version Update (openedx#1947) * MCKIN-26589 Integrate translations of FIND DISCUSSIONS for main discussions page for all languages (openedx#1949) * [v1.54.0] complied mo files * MCKIN-24786 - api-integration version bump * MCKIN-26967 - EOC VB * MCKIN-23037 - Ooyala xblock version bump * MCKIN-27119 - Missing strings added * MCKIN-26468 - projects extensions VB (openedx#1951) Releasing `v3.0.4` * MCKIN-24382 Scorm VB (openedx#1966) * Scorm VB * MCKIN-26967 EOC VB * MCKIN-24385: bump xblock diagnostic feedback version to v0.4.0 (openedx#1971) * MCKIN-24468 McKA - Update Scorm xblock to Python 3.5 fix bug (openedx#1979) * MCKIN-24385 bump xblock-diagnosticfeedback version to v0.4.1 (openedx#1987) * MCKIN-26471 API integration VB (openedx#1995) * bump xblock scorm version to v3.2.1 (openedx#1996) * MCKIN-26850 EOC-journal version bump (openedx#2001) * MCKIN-24383 & 24384 VB for GP v2 and Adventure (openedx#1961) * MCKIN-24383 GW v2 version bump (openedx#2000) * vb gp (openedx#2002) * vb gp (openedx#2004) * MCKIN-28139 Pinned pyopenssl version to 18.0.0 * vb gp (openedx#2004) * MCKIN-28122 Traslations for all languages (openedx#2015) * MCKIN-28123 vb gp (openedx#2018) * Versions update. Co-authored-by: Moeez Zahid <moeezzahid1996@gmail.com> Co-authored-by: Jillian Vogel <jill@opencraft.com> Co-authored-by: Zachary Trabookis <ztraboo@clemson.edu> Co-authored-by: Saqib <msaqib52@gmail.com> Co-authored-by: Wasif ur Rehman <wasifarbisoft@users.noreply.github.com> Co-authored-by: Mudassir Hafeez <mudassir.hafeez@arbisoft.com> Co-authored-by: Shafqat Farhan <shafqat.farhan@arbisoft.com> Co-authored-by: ihtram <iulhaq@edx.org> Co-authored-by: Piotr Surowiec <piotr@opencraft.com> Co-authored-by: Nasir Hussain <nasirhjafri@gmail.com> Co-authored-by: Sohaib Aslam <sohaib.aslam@arbisoft.com> Co-authored-by: Agrendalath <piotr@surowiec.it> Co-authored-by: Mudassir Hafeez <41048311+mudassir-hafeez@users.noreply.github.com> Co-authored-by: murad-hubib <murad.habib@arbisoft.com> Co-authored-by: Ned Batchelder <ned@edx.org> Co-authored-by: Ali-D-Akbar <aliakbarit019@gmail.com> Co-authored-by: Naeem Ilyas <naeem-ilyas@live.com> Co-authored-by: Muhammad Usman <43761905+musmanmalik@users.noreply.github.com> Co-authored-by: Mudassir Hafeez <mudasir5761@gmail.com>
No description provided.