{"action":"created","issue":{"url":"https://api.github.com/repos/open-craft/xblock-vectordraw/issues/1","labels_url":"https://api.github.com/repos/open-craft/xblock-vectordraw/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/open-craft/xblock-vectordraw/issues/1/comments","events_url":"https://api.github.com/repos/open-craft/xblock-vectordraw/issues/1/events","html_url":"https://github.com/open-craft/xblock-vectordraw/pull/1","id":114315251,"number":1,"title":"Initial implementation","user":{"login":"itsjeyd","id":961441,"avatar_url":"https://avatars.githubusercontent.com/u/961441?v=3","gravatar_id":"","url":"https://api.github.com/users/itsjeyd","html_url":"https://github.com/itsjeyd","followers_url":"https://api.github.com/users/itsjeyd/followers","following_url":"https://api.github.com/users/itsjeyd/following{/other_user}","gists_url":"https://api.github.com/users/itsjeyd/gists{/gist_id}","starred_url":"https://api.github.com/users/itsjeyd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/itsjeyd/subscriptions","organizations_url":"https://api.github.com/users/itsjeyd/orgs","repos_url":"https://api.github.com/users/itsjeyd/repos","events_url":"https://api.github.com/users/itsjeyd/events{/privacy}","received_events_url":"https://api.github.com/users/itsjeyd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":59,"created_at":"2015-10-30T17:18:57Z","updated_at":"2015-12-10T14:49:36Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/open-craft/xblock-vectordraw/pulls/1","html_url":"https://github.com/open-craft/xblock-vectordraw/pull/1","diff_url":"https://github.com/open-craft/xblock-vectordraw/pull/1.diff","patch_url":"https://github.com/open-craft/xblock-vectordraw/pull/1.patch"},"body":"## VectorDraw XBlock\r\n\r\nThis XBlock allows course authors to define vector drawing exercises. To complete a vector drawing exercise, students must correctly place a set of predefined vectors (and points) on a board.\r\n\r\nAll data associated with this XBlock is stored in XBlock fields. Vectors, points, and expected result for an exercise must be defined using JSON, but we are also planning on adding WYSIWYG functionality to Studio that will allow authors to specify vectors and expected results by drawing them (cf. below). *This functionality will not replace existing functionality for specifying elements that are part of the exercise; it will instead be offered as an alternative method for creating content.* For a given exercise, student state consists of:\r\n\r\n- the set of vectors and points that were present on the board when student last submitted an answer\r\n- a list of checks to perform in order to obtain grade\r\n- result returned by the grader for the most recent answer (which contains info about correctness of answer and feedback message).\r\n\r\nThe amount of data to store for an exercise depends on how complex it is (i.e., how many vectors and points there are in total); based on [examples](https://github.com/open-craft/jsinput-vectordraw/tree/master/Notes_and_Examples) from an existing JSInput implementation, it should not exceed 1-2K per problem, per student. Grading happens by comparing the set of elements on the board to a set of conditions specified by the course author (\"expected result\"). Minimally, this involves checking for each required element whether or not it is present in a given answer. Additional checks may include:\r\n\r\n- checking coordinates of points\r\n- checking coordinates of tail and/or tip of a vector\r\n- checking the length of a vector\r\n- checking the angle of a vector\r\n- checking whether a line passes through one or more points.\r\n\r\nNone of these operations are very expensive computationally, and the grader short-circuits as soon as it encounters a failing check (there is currently no notion of a partially correct answer), so we don't expect there to be any performance bottlenecks. We haven't performed any load testing.\r\n\r\nWe'd like to get this XBlock on edx.org for Davidson College by mid-December.\r\n\r\n**Testing**\r\n\r\n1. Install the XBlock on Devstack via:\r\n\r\n        pip install -r requirements.txt\r\n\r\n2. Add `vectordraw` to the Advanced Module List in your course settings.\r\n3. Add a \"Vector Drawing\" block to a unit.\r\n4. Customize the Vector Drawing block. You can use one of the examples from the jsinput-vectordraw repository (e.g., [2_boxIncline_multiVector](https://raw.githubusercontent.com/open-craft/jsinput-vectordraw/master/Notes_and_Examples/2_boxIncline_multiVector/2_boxIncline.html)) for this purpose. Note that values of \"Vectors\", \"Points\", \"Expected result\" settings need to be valid JSON.\r\n\r\n---\r\n\r\n**Partner information** hosted on edx.org (Davidson College)\r\n**Merge deadline** mid-December\r\n**JIRA Story** [OSPR-935](https://openedx.atlassian.net/browse/OSPR-935)\r\n**Confluence / Product Asset** N/A\r\n**Sandbox URL** [LMS](http://pr10515.sandbox.opencraft.com/) ([Example](http://pr10515.sandbox.opencraft.com/courses/course-v1:OpenCraft+VD101+2015/courseware/be8fac39945d427c987af0bdbec200c3/ecb2b2ba39214ee1b272dd83e8ad2890/)), [Studio](http://studio.pr10515.sandbox.opencraft.com/) ([Example](http://studio.pr10515.sandbox.opencraft.com/container/block-v1:OpenCraft+VD101+2015+type@vertical+block@2ecf812afd434f359480c7852ce12fa0); see author notes below about a known glitch)\r\n**Dependencies** N/A\r\n\r\n---\r\n\r\n**PR Author(s) Notes / To-Do**\r\n* [x] Integration tests\r\n* [x] Accessibility\r\n* [x] Moving controls for interacting with the board above the active board (as per [this request](https://github.com/open-craft/xblock-vectordraw/pull/1#issuecomment-153837342)).\r\n* [x] There's a glitch in Studio that keeps vectors from being rendered properly when first loading the page (you have to click \"Reset\" to get a proper preview). We'll have another opportunity to address this in the context of the next item.\r\n* [x] WYSIWYG functionality for defining vectors and expected results\r\n\r\n---\r\n\r\n**Reviewers**\r\n- [x] Code: @smarnach\r\n- [x] Code: @nedbat\r\n- [x] Code: @singingwolfboy\r\n- [ ] Accessibility: @cptvitamin \r\n"},"comment":{"url":"https://api.github.com/repos/open-craft/xblock-vectordraw/issues/comments/163646391","html_url":"https://github.com/open-craft/xblock-vectordraw/pull/1#issuecomment-163646391","issue_url":"https://api.github.com/repos/open-craft/xblock-vectordraw/issues/1","id":163646391,"user":{"login":"sarina","id":1985317,"avatar_url":"https://avatars.githubusercontent.com/u/1985317?v=3","gravatar_id":"","url":"https://api.github.com/users/sarina","html_url":"https://github.com/sarina","followers_url":"https://api.github.com/users/sarina/followers","following_url":"https://api.github.com/users/sarina/following{/other_user}","gists_url":"https://api.github.com/users/sarina/gists{/gist_id}","starred_url":"https://api.github.com/users/sarina/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sarina/subscriptions","organizations_url":"https://api.github.com/users/sarina/orgs","repos_url":"https://api.github.com/users/sarina/repos","events_url":"https://api.github.com/users/sarina/events{/privacy}","received_events_url":"https://api.github.com/users/sarina/received_events","type":"User","site_admin":false},"created_at":"2015-12-10T14:49:35Z","updated_at":"2015-12-10T14:49:35Z","body":"Mark is out sick today, and possibly tomorrow as well, so I don't think we\nwill be able to get more from him until next week.\n\nOn Thu, Dec 10, 2015 at 6:31 AM, Tim Krones <notifications@github.com>\nwrote:\n\n> @cptvitamin <https://github.com/cptvitamin> Thanks for the feedback! I\n> addressed your comments: 461371b\n> <https://github.com/open-craft/xblock-vectordraw/commit/461371b21bff52337353792164c0ea8d7a84f58a>.\n> As for your suggestion about making available a grid to help keyboard users\n> place vectors, this is already available as an opt-in feature. Course\n> authors can set an \"Axis\" option to \"True\" in Studio to get something like\n> this:\n>\n> [image: axis-enabled]\n> <https://cloud.githubusercontent.com/assets/961441/11714281/57c1dd44-9f39-11e5-99e2-098ee45ffc0b.png>\n>\n> To promote the use of this feature I changed the default for the \"Axis\"\n> option to \"True\" (it was disabled by default before) and added a comment to\n> the help text that points out that enabling the option makes an exercise\n> more accessible for keyboard users. It would also be possible to add\n> functionality for toggling the axis on demand but this would require more\n> substantial changes (JSXGraph does not provide an API for toggling the axis\n> after the drawing board has been created), so this is not something we can\n> implement right now (considering that we are close to the merge deadline\n> for this work). Please let me know if there is anything else I should\n> address.\n>\n> —\n> Reply to this email directly or view it on GitHub\n> <https://github.com/open-craft/xblock-vectordraw/pull/1#issuecomment-163584783>\n> .\n>\n"}}