{"action":"created","issue":{"url":"https://api.github.com/repos/openwebwork/webwork2/issues/687","repository_url":"https://api.github.com/repos/openwebwork/webwork2","labels_url":"https://api.github.com/repos/openwebwork/webwork2/issues/687/labels{/name}","comments_url":"https://api.github.com/repos/openwebwork/webwork2/issues/687/comments","events_url":"https://api.github.com/repos/openwebwork/webwork2/issues/687/events","html_url":"https://github.com/openwebwork/webwork2/pull/687","id":136527175,"number":687,"title":"LTI Grade Passback and Refactor","user":{"login":"goehle","id":1774907,"avatar_url":"https://avatars.githubusercontent.com/u/1774907?v=3","gravatar_id":"","url":"https://api.github.com/users/goehle","html_url":"https://github.com/goehle","followers_url":"https://api.github.com/users/goehle/followers","following_url":"https://api.github.com/users/goehle/following{/other_user}","gists_url":"https://api.github.com/users/goehle/gists{/gist_id}","starred_url":"https://api.github.com/users/goehle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/goehle/subscriptions","organizations_url":"https://api.github.com/users/goehle/orgs","repos_url":"https://api.github.com/users/goehle/repos","events_url":"https://api.github.com/users/goehle/events{/privacy}","received_events_url":"https://api.github.com/users/goehle/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":15,"created_at":"2016-02-25T22:10:24Z","updated_at":"2016-03-30T14:48:15Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/openwebwork/webwork2/pulls/687","html_url":"https://github.com/openwebwork/webwork2/pull/687","diff_url":"https://github.com/openwebwork/webwork2/pull/687.diff","patch_url":"https://github.com/openwebwork/webwork2/pull/687.patch"},"body":"This pull request contains a complete rewrite of the LTI authentication module as well as upgrades to allow grades to be passed back from WeBWorK to the LMS (e.g. Blackboard, Moodle, etc...)  The major features are: \r\n-  A complete rewrite of LTIBasic.pm.  Acutally, LTIBasic.pm is left as it is so that people who want to keep using it can use it.  The new authentication module is LTIAdvanced.pm.  The authen_LTI.conf.dist file has been rewritten to reflect this. Features of the rewrite include\r\n  -  Debug mode for testing parameters (old). \r\n  -  The ability for the system to add new users and keep users up to date (old). \r\n  -  New admin defined functions which can modify a user and their sets after they are added (new).  In particular some of the more specific Indiana stuff was removed.  The theory is that that level of modification could be done with these user functions.\r\n  -  Assigning sets now uses the standard Instructor utility functions (new). \r\n  -  Nonces are now managed entirely via apache/webwork.  There is no need to run a cron job anymore.  (Most people probably forgot this step anyway).  \r\n-  The ability for WeBWorK to pass back grades.  There are currently two and a half grading modes. \r\n  -  Course Grading Mode:  In this mode you create a single Link/Assignment in your LMS which points to your WeBWorK Course address.  E.G. In Blackboard\r\n  ```\r\nName: WeBWorK\r\nURL: https://webwork.university.edu/webwork2/CourseName\r\nCheck Yes:  This link is to a Tool Provider\r\nEnable Evaluation: Yes\r\nPoints Possible: 100\r\n  ```\r\n    Students will receive a LMS grade associated to the Link/Assignment which is determined by their percentage total homework grade in WeBWorK. This total homework grade is the same as the grade that is reported on the grades page.  You can change the weight of sets by altering the weight of  the problems in the set. \r\n  -  Set Grading Mode:  In this mode you create a single Link/Assignment for *every* homework set in  the course.  The address should be the address of that set in the Course. E.G. in Blackboard\r\n  ```\r\nName: Set Name\r\nURL: https://webwork.university.edu/webwork2/CourseName/SetName\r\nCheck Yes:  This link is to a Tool Provider\r\nEnable Evaluation: Yes\r\nPoints Possible: 100\r\n  ```\r\n    Students will receive a grade for each Link/Assignment which is determined by their percentage homework grade on the Set which the Link/Assignment points to.  Students need to use the Link/Assignment in the LMS at least once to enable grade passback.  In particular when working in this mode it is recommended that you only allow students to log in via the LMS.  However there are navigation features in place to make sure that students can't access a set that doesn't have the information it needs to send grades to the LMS. \r\n  -  Problem Grade Mode:  This is more of a proof of concept using the XMLRPC interface.  Basically you create a link to a single problem with all the parameters that you would find in `TestWW.html`.  This will use xmlrpc to render the problem and as long as the LMS is providing the necessary information to pass the grade back the xmlrpc system will attempt to do so.  However, its not ready for prime time for a number of reasons.  \r\n  -  Note:  For the first two methods there are some caveats:  \r\n    -  First, only the grades are passed back.  In particular nothing else about the Link/Assignment in the LMS and the homework set in WeBWorK is syncronized.  For example , the total number of  points/problems, the due dates, the open dates are not kept in sync automatically.  \r\n    -  Students need to log into the course/set at least once (depending on the grading mode) but after that they don't need to go through the LMS.  In particular if you are using course grades as long as their accounts are created by the LMS they can log in however they want.  \r\n    -  There are two grading flags that can be set in the configuration file.  One enables passing grades back every time a student hits submit.  This keeps student grades up to date, but could be a drain on the server.  I don't know how well it holds up at larger institutions, for example.  \r\n    -  The second important flag controls how often WeBWorK attempts to do a \"mass grade update\".  Because grades can change when instructors add sets, add problems to sets, delete problems from sets, change weights of problems, mark problems correct, etc... once per 24 hours the system spins off a background process which updates all of the grades.  \r\n-  Because I couldn't help myself there are also a couple of extra additions. \r\n  -  I made some minor formatting changes to single column mode for hardcopies to make it look better. \r\n  -  I added maketext calls to a couple of modules.  "},"comment":{"url":"https://api.github.com/repos/openwebwork/webwork2/issues/comments/203468808","html_url":"https://github.com/openwebwork/webwork2/pull/687#issuecomment-203468808","issue_url":"https://api.github.com/repos/openwebwork/webwork2/issues/687","id":203468808,"user":{"login":"mgage","id":1203580,"avatar_url":"https://avatars.githubusercontent.com/u/1203580?v=3","gravatar_id":"","url":"https://api.github.com/users/mgage","html_url":"https://github.com/mgage","followers_url":"https://api.github.com/users/mgage/followers","following_url":"https://api.github.com/users/mgage/following{/other_user}","gists_url":"https://api.github.com/users/mgage/gists{/gist_id}","starred_url":"https://api.github.com/users/mgage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mgage/subscriptions","organizations_url":"https://api.github.com/users/mgage/orgs","repos_url":"https://api.github.com/users/mgage/repos","events_url":"https://api.github.com/users/mgage/events{/privacy}","received_events_url":"https://api.github.com/users/mgage/received_events","type":"User","site_admin":false},"created_at":"2016-03-30T14:48:15Z","updated_at":"2016-03-30T14:48:15Z","body":"Great.  Do you have any objections to my pulling this request?\n\nMike\n> On Mar 30, 2016, at 9:44 AM, Geoff Goehle <notifications@github.com> wrote:\n> \n> I\"ve fixed the typos in the instructions above.\n> \n> —\n> You are receiving this because you commented.\n> Reply to this email directly or view it on GitHub <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openwebwork_webwork2_pull_687-23issuecomment-2D203439964&d=BQMCaQ&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=C6Pt5AGtImanmAdcooarL-JZO8M5dSFPfs3VweYXYkE&m=o2FkXI3S-_H3OyQGHED-8-lImFYIFv7-gVE3VOoE5wc&s=LrVWQsljs0lJZSc40EbTjDIuGGpfKkBLSI_BLG1LfRI&e=>\n\n"}}