turnitin / moodle-plagiarism_turnitin Goto Github PK
View Code? Open in Web Editor NEWTurnitin Plagiarism plugin for Moodle
Home Page: http://www.turnitin.com
License: GNU General Public License v3.0
Turnitin Plagiarism plugin for Moodle
Home Page: http://www.turnitin.com
License: GNU General Public License v3.0
v2015040111 seems to have been released with the same version number in version.php as the previous version (2015040110). Could this be changed? Presumably it doesn't cause any functional issues, but it makes it difficult to determine what version you have installed, and also means that the latest version is showing the wrong version number in the Moodle plugin directory.
Hello there,
We recently updated our Moodle site to version 2.9.4+, and our Turnitin plugins to version 2016011104, and have noticed a new problem that has arisen when editing the settings for an assignment (or creating a new one).
We are using the default Moodle assignment in conjunction with the Turnitin plagiarism plugin. If we go to the edit settings screen for an assignment, we find that if we click on either the "Launch Quickmark Manager" link, or the "Launch Rubric Manager" link, neither Manager will launch. All that happens is that the web page goes dim and an animated "loading" icon appears (although sometimes we don't get the icon, just a dimmed webpage). If I click around the edges of the dimmed webpage, the screen un-dims and I am back on the assignment edit page again. If I click in the centre of the screen, nothing happens. This behaviour is reproducable in Chrome, Firefox and Internet Explorer 11.
Although we don't use it, the "Launch PeerMark Manager" link seems to work fine - if we click on that, the screen goes dim, a window pops up, and we have a "close" link in the top right corner of the screen.
It would be good if this plugin could support the new scheduled tasks system that was introduced in Moodle 2.7 (https://docs.moodle.org/30/en/Scheduled_tasks), which supersedes the legacy cron system.
a limit of 50 items per cron cycle is really too low - for high use sites you might have several hundred submissions made within a short timeframe and they get backed up on the moodle server instead of submitting directly to Turnitin. If you have a lot of different assignments with a similar deadline on the site it can take several hours for all those files to be submitted to Turnitin - particularly for older sites that run cron every 5 or 10min
We have had strange reports where assignment activities in Moodle had final grades visible in the grade book, whilst blind marking was still in effect.
Looking through the plagiarism plugin code I found in lib.php a call to grade_update() (https://github.com/turnitin/moodle-plagiarism_turnitin/blob/master/lib.php#L1353), which updates the gradebook.
This should not be called directly by the plagiarism plugin because mod assign has additional rules that are designed to prevent grades propagating to the gradebook until certain conditions such as blind marking have been satisfied.
It really must use the library functions in mod_assign
such as gradebook_item_update()
which understands these features!
Hi ,
Using plugin verison 2016011105
Steps to reproduce :
we upgrade from moodle 2.8 to 2.9.2 - carried out by removing all moodle files and replacing with new
we got report that turnitin plugins (x2) were missing from disk
uploaded plagiarism_turnitin_moodle29_2015040107.zip and mod_turnitintooltwo_moodle29_2015040107.zip
no errors reported
checking updates for plugins got report that newer versions were available
then uploaded plagiarism_turnitin_moodle29_2015040110.zip and mod_turnitintooltwo_moodle29_2015040110
no errors reported
on editing settings for an existing assignment and on attempting to create a new assignment I got blank pages and in server php error log:
PHP Fatal error: Unsupported operand types in /srv/[our-domain]/public/htdocs/plagiarism/turnitin/turnitinplugin_view.class.php on line 119
that line has
// Merge the arrays, prioitising instructor owned arrays.
$rubrics = $rubrics + $turnitinclass->sharedrubrics;
The logic used to test for an existing user in line 84-85 of restore_turnititool_stepslib.php breaks course restores if any existing user changes his or her email address. This will only happen when user data is included in the backup and restore process and if the backup was created before the email was changed.
Steps to reproduce:
08-Feb-2016 11:24:52 Africa/Johannesburg] Default exception handler: Error writing to database Debug: Duplicate entry '3-USERNAME' for key 'mdl_user_mneuse_uix'
INSERT INTO mdl_user (city,auth,username,lang,confirmed,lastip,timecreated,timemodified,mnethostid,calendartype,maildisplay,mailformat,maildigest,autosubscribe,trackforums) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
[array (
0 => '',
1 => 'manual',
2 => 'USERNAME REMOVED',
3 => 'en',
4 => 1,
5 => 'IP ADDRESS REMOVED',
6 => 1454923459,
7 => 1454923459,
8 => '3',
9 => 'gregorian',
10 => '2',
11 => '1',
12 => '0',
13 => '1',
14 => '0',
)]
Error code: dmlwriteexception
[08-Feb-2016 11:24:53 Africa/Johannesburg] Potential coding error - existing temptables found when disposing database. Must be dropped!
If a user's email address is changed in Moodle, this will not reflect in Turnitin. If the user is unlinked and then the email address is changed a new Turnitin user account will be created.
I keep getting a "DB get_in_or_equal does not accept empty arrays" in clean_old_turnitin_submissions (events 1 API events then fail).
Line 2268, list($itemidsinsql, $itemidsparams) = $DB->get_in_or_equal(array_keys($itemids));
It seems the line above that
$itemids = $DB->get_records('assign_submission', array(
'assignment' => $cm->instance,
'userid' => $userid
), '', 'id');
Does not always return results.
We recently updated to version 2015040111 and are starting to get out of memory errors when running the Moodle cron job (this issue exists in the latest version of the plugin too).
Fatal error: Allowed memory size of 1048576000 bytes exhausted (tried to allocate 532 bytes) in /moodle/web/plagiarism/turnitin/lib.php on line 2398
The scenario is an engineering assignment which is set up to accept any file, and the students are uploading a couple of very large simulation files (400Mb+) along with a Word document project report, so the assignment is set to accept any file type but is only expecting plagiarism checking on the Word document.
The fatal error is being thrown when the plugin tries to count the words in one of the simulation files, so there are a few issues:
It looks like this was caused by 490c110, as previously the plugin wouldn't try to count words for file submissions.
We are having issues with the events_queue table filling up and becoming clogged by events in the queue that don't seem to have submissions. The event data points to assignments that don't have submissions and the userid given is for the instructor. Very strange, but it is causing a backup in our events queue.
If you look at the following pastie url you will see that in between processing forum posts for some odd reason it ouputs the css for font-awesome defined in a30e7f8
248fbf1 seems to have created a UX problem, whereby a new user is directed in the same window as an assignment submission in the LMS. After accepting the EULA, the user finds himself at a dead end. The page where he started is in the history barricaded by a redirect on Turnitin's own website. Click back just brings him back to the EULA, unless he frantically clicks back several times. Didn't this used to all happen in a lightbox like the Rubric. Why has this been changed to open in the same window?
We have a number of blind-marked assignments set up on our Moodle site, and have enabled the Turnitin plagiarism plugin to allow our tutors to use Turnitin/GradeMark when marking the students work. However, when they click through to GradeMark, there are three places where the student identity is revealed to the tutor, even though they should be anonymous, and are only shown as "participant xxxxx" in Moodle -
Are we doing something wrong, or is this a bug? Many thanks!
Debug info:
Error code: Turnitin user creation failed
Fault Code: invaliddata | File: [dirroot]/mod/turnitintooltwo/sdk/usersoap.class.php | Line: 39 | Message: email - This field is required
| Code: 0
$a contents: Turnitin user creation failed
Fault Code: invaliddata | File: [dirroot]/mod/turnitintooltwo/sdk/usersoap.class.php | Line: 39 | Message: email - This field is required
| Code: 0
The word count (used to determine whether a submission contains enough content for an OR to be generated) is based on the number of space-separated chunks in the raw file content, which is only accurate in a plain text file. In other file types (especially those which employ compression, such as MS Word's .docx files), this can give an incredibly low "word count" - I've encountered a perfectly fine .docx file which is being deemed to only contain 12 words, and therefore isn't being submitted despite actually containing around 300 words!
The offending code block can be seen at https://github.com/turnitin/moodle-plagiarism_turnitin/blob/develop/lib.php#L2517-L2521 - at that point, $textcontent contains the raw content of the file.
If "require students click submit button" is set to "Yes" in course settings, then any submissions that fail are not resubmitted. Any resubmission attempt results in these assignments becoming stuck in "Pending" status.
The problem lies in lib.php, within the function event_handler
:
// If draft submissions are turned on then only send to Turnitin if the draft submit setting is set.
if ($moduledata->submissiondrafts && $plagiarismsettings["plagiarism_draft_submit"] == 1 &&
($eventdata->event_type == 'file_uploaded' || $eventdata->event_type == 'content_uploaded')) {
return true;
}
With Group submissions, only the submitting student will be able to view the Originality Report in the Turnitin Document Viewer. However, all members of the group will have any grades awarded through GradeMark applied to them and they will all be able to see the Originality Score in the Moodle Assignment inbox.
Plagiarism Plugin version: 2016011102
Moodle Direct V2 version: 2016011102
Moodle Version: 2.9.3+ (Build: 20151119)
It seems the grade is not being returned to PP when updated in grademark in every case. This was a problem about 8 months ago, though I cannot find the original issue in the tracker.
To fix this, I have to return to grademark, click into the grade field in which an existing mark is recorded, and press enter. The indicator at the top cycles. After the window is closed, I wait for the PP page in Moodle to automatically update and the grade then shows up. This was the process I used to follow previously.
Can anyone else confirm this behaviour?
I have our Default repository setting locked at "Standard Repository". The test submission fails with a "This file has not been submitted to Turnitin, please consult your system administrator" error. When I unlock the default, still leaving it set to "Standard Repository". When I go back to the failing assignment, the repository is set to "No Repository".
The "Log in to TII as teacher" link which Dan Marsden's version of the plagiarism plugin (for the old TII API) adds to the assignment submissions list is/was very useful - is it possible to have this version of the plugin offer a similar link?
Hey John/team - FYI - In Moodle 3.1 (not yet released) plagiarism plugins that call the plagiarism_plugin::cron() function will throw a debugging warning stating that the cron function is now deprecated - plugins should move to using the newer "scheduled tasks" process instead. Eventually the function will be removed from a future Moodle release which may prevent your plugin from working unless you have converted to using scheduled tasks.
More information on this change is available in https://tracker.moodle.org/browse/MDL-52702
Developer documentation on scheduled tasks is available here:
https://docs.moodle.org/dev/Task_API
I've converted the URKUND plugin if you want an example - feel free to copy/borrow/re-use the code as usual:
https://github.com/danmarsden/moodle-plagiarism_urkund/blob/master/db/tasks.php
https://github.com/danmarsden/moodle-plagiarism_urkund/tree/master/classes/task
We just updated our dev system to the latest release. Currently, none of the event queues are being processed successfully. They all show as Pending. The cron runs, but the event queue for each submission is failing.
Turnitin Version 2: 2016011105
Plagiarism Plugin: 2016011105
Moodle 2.9.3+ (Build: 20151119)
Steps to recreate:
The expectation with the above settings is that no notifications should be sent. If the submission receipt is conceptually separate from the assignment notifications, there ought to be an option to turn this off as well.
If the turnitin module is not fully configured it causes the activity edit settings page to completely fail.
Whilst it is important that things are configured, it is pretty bad that this happens. We have valid cases where we do not want Turnitin configured and talking to the TII service (e.g. test servers / clones) so this prevents the core moodle functionality working.
If Turnitin is not configured please can it just assume it is completely disabled and not offer any TII settings rather than breaking the whole page.
Hello John,
Let me start by saying that the quality of the Turnitin Moodle integrations have improved by leaps and bounds since you came on board. Excellent work! You have also been a great help with any error reported either through github or the Moodle forums.
With respect to errors, though you have been helpful, the tech support at Turnitin have been anything but. I get canned responses from tech staff who neglect to read the email, even though I already provided the required detail. I have pretty much given up on using Tii tech support for this reason.
In looking for a solution, is there a chance we could included a "baked in" error reporting mechanism? That is on the errors tab in Turnitin PP, perhaps we could include an option to report a given assignment submission error to Turnitin from the errors page, I suggest this would include the following (with all the obvious end user approval confirmations):
1.The URL to your institution's LMS*
2. Turnitin Account ID (a numeric value).
3. LMS Version and Plug-in version.
4. Class Name or ID (where the error occurs).
5. Assignment Name or ID (where the error occurs).
6. Time of Error.
7. OS, Browser and versions.
8. An additional text area where the admin may report additional helpful detail.
You will notice most of the above is verbatim from the support emails we get back from Tii tech support. At the moment, I get regular submission failures that seem to have little reason for failing. Perhaps 1 out of 50 assignments fail to process in Tii and need to be resubmitted. Some have a paper id, others do not, but they usually have an error in the errors tab. In these cases, I usually convert the paper to a PDF and resubmit. At other times, I may resubmit without conversion and it works fine. If the above were available, I and others like me may be more inclined to report the error.
See these two screenshots for example:
Thanks again for all the hard work, John.
All the best,
Mathieu
PP is not pulling through originality scores for forum posts. The OR is generating but the update_grade call currently excludes all elements that are not assignments.
Need to modify the main if criteria inside update_grade in ajax.php
Hi, not sure what the issue is.
Did the upgrade yesterday, Turnitin connection says "Connected to Turnitin" but no scores have been returned for the Turnitin integration since yesterday. All statuses say "Pending". and no assignments are making it to Turnitin.
We are using Moodle 2.7.8
We have installed the latest version of Moodle Direct V2 from moodle.org (2015040110)
Using the Assignment Plugin (Dan Marsden style)
The only Tii related error message is below:
\2015/10/09 14:01:07 [error] 6371#0: *15015122 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 203.35.135.171, server: learn.endeavour.edu.au, request: "GET /plagiarism/turnitin/fonts/tii-icon-webfont.eot)%20format(%22embedded-opentype%22),%20url(https://learn.endeavour.edu.au/plagiarism/turnitin/fonts/tii-icon-webfont.woff)%20format(%22woff%22),%20url(https://learn.endeavour.edu.au/plagiarism/turnitin/fonts/tii-icon-webfont.ttf)%20format(%22truetype%22),%20url(https://learn.endeavour.edu.au/plagiarism/turnitin/fonts/tii-icon-webfont.svg)%20format(%22svg%22 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "learn.endeavour.edu.au", referrer: "https://learn.endeavour.edu.au/"
Are you able to point me in a direction?
Regards,
Vernon
Sorry for the third issue, we've been having quite a few issues recently!
We had a student submit a 235MiB PDF full of images to a mod_assign with the plagiarism plugin enabled.
Obviously this was going to fail, but it ended up breaking the whole cron system as it ran out of memory trying to explode the raw contents of the PDF :)
This line will be meaningless for docs and pdfs surely? The contents will be meaningless to the checks below. (just a ton of "K��}FG�;t�?n�;" etc)
https://github.com/turnitin/moodle-plagiarism_turnitin/blob/develop/lib.php#L2396
This doesn't work well with big files:
https://github.com/turnitin/moodle-plagiarism_turnitin/blob/develop/lib.php#L2518
The good news is I can patch it quite easily by wrapping if ($errorcode !== 2) {...}
around the explode and that if. This means it won't check word counts if the file is too big anyway.
However, I thought given that the checks mean nothing for docs and pdfs anyway a proper fix should be sought?
Any courses, assignments and students that are deleted in Moodle are not automatically deleted from Turnitin.
Hey,
We get this error when grading an assignment:
Can not add jQuery plugins after starting page output!
line 487 of /lib/outputrequirementslib.php: call to debugging()
line 431 of /lib/outputrequirementslib.php: call to page_requirements_manager->jquery_plugin()
line 432 of /plagiarism/turnitin/lib.php: call to page_requirements_manager->jquery()
line 580 of /plagiarism/turnitin/lib.php: call to plagiarism_plugin_turnitin->load_page_components()
line 51 of /lib/plagiarismlib.php: call to plagiarism_plugin_turnitin->get_links()
line 1185 of /mod/assign/renderer.php: call to plagiarism_get_links()
line 61 of /mod/assign/renderer.php: call to mod_assign_renderer->htmllize_tree()
line 316 of /lib/outputrenderers.php: call to mod_assign_renderer->render_assign_files()
line 48 of /mod/assign/renderer.php: call to plugin_renderer_base->render()
line 4613 of /mod/assign/locallib.php: call to mod_assign_renderer->assign_files()
line 327 of /mod/assign/submission/file/locallib.php: call to assign->render_area_files()
line 1182 of /mod/assign/gradingtable.php: call to assign_submission_file->view_summary()
line 1266 of /mod/assign/gradingtable.php: call to assign_grading_table->format_plugin_summary_with_link()
line 798 of /lib/tablelib.php: call to assign_grading_table->other_cols()
line 450 of /mod/assign/gradingtable.php: call to flexible_table->format_row()
line 1425 of /lib/tablelib.php: call to assign_grading_table->format_row()
line 1541 of /lib/tablelib.php: call to table_sql->build_table()
line 1219 of /mod/assign/renderer.php: call to table_sql->out()
line 1015 of /mod/assign/renderer.php: call to mod_assign_renderer->flexible_table()
line 316 of /lib/outputrenderers.php: call to mod_assign_renderer->render_assign_grading_table()
line 3360 of /mod/assign/locallib.php: call to plugin_renderer_base->render()
line 3391 of /mod/assign/locallib.php: call to assign->view_grading_table()
line 535 of /mod/assign/locallib.php: call to assign->view_grading_page()
line 53 of /mod/assign/view.php: call to assign->view()
Coding error detected, it must be fixed by a programmer: Cannot require a CSS file after <head> has been printed.
Seems get_links can't require anything from the page.
https://github.com/turnitin/moodle-plagiarism_turnitin/blob/master/lib.php#L579
When a student's assignment submission is not submitted to TII because the student has not accepted the TII EULA, a red icon with a cross through it is shown - but with no explanation.
This can cause confusion for some teaching staff; the lack of a "resubmit" link makes sense, but a brief note to say that the student has not accepted the EULA would help make this much clearer.
The code responsible for the lack of message in this situation can be seen at https://github.com/turnitin/moodle-plagiarism_turnitin/blob/develop/lib.php#L936-L937
Hi All,
Got this message from Moodle upon creating a turnitin assignment.
My googling found 1 moodle tracker regarding this issue (https://tracker.moodle.org/browse/CONTRIB-6028) but unresolved.
The error only happened for some courses.
Posting from John from in previous issue ("pending" result after upgrade #6) its look like the class was deleted in Turnitin.
API LOG give the following message :
turnitintooltwo/Could not update Turnitin Class data
Fault Code: unknownobject | File: [dirroot]/mod/turnitintooltwo/sdk/classsoap.class.php | Line: 48 | Message: Class CourseSection not found. | Code: 0
We using the latest Turnitin v2 2016011104. I've also lodged a ticket to turnitin today with case no #00508029
Thank you for your time and effort.
When a student accepts the EULA, any of their submissions which were skipped due to non-acceptance should be submitted to TII (as long as the assignment is still accepting submissions). This does not appear to be the case at present.
One approach would be to fire an event when the EULA is accepted (https://github.com/turnitin/moodle-plagiarism_turnitin/blob/develop/ajax.php#L196-L197), and have an event handler which re-queues any submissions by that user which were not send due to non-acceptance of the EULA.
As described above, it seems that if using a Rubric to grade an assignment with the turnitin plagiarism plugin enabled, students can't click on anything to view the Grademark tool which would show them inline comments from their instructor.
There is only the rubric icon on their submission page which opens up the rubric with their scores. There's no other way I can find that allows the student to see comments in Grademark.
I've been testing version 2015040111 and am not able to get the student read status to change. I have:
When I go into the view all submissions page now I would expect not to see the message "The student has not viewed this paper" but it is stil there.
In the database, the records in plagiarism_turnitin_files for the submission has the value "0".
Originally raised by @micaherne
We've noticed that the plagiarism plugin is returning Grademark grades directly to the Moodle gradebook when blind marking is switched on for an assignment and student identities haven't yet been revealed. This isn't good as it's circumventing Moodle's blind marking controls.
When blind marking is switched on, the assignment tool holds any grades in a holding area until student identities are revealed, and only on revealing identities are they actually copied into the gradebook (https://docs.moodle.org/24/en/Assignment_settings#Blind_marking). This is to stop the marker seeing in the gradebook which students have submitted, or linking up the submission to the student.
With the plagiarism plugin making the grades available while identities are still hidden, it's pretty easy for the marker to work out (deliberately or otherwise) which anonymised identity relates to which student, particularly in small classes.
Is there a way for the Moodle code to regularly ask Turnitin for a list of assignments that have had their originality scores updated due to new sources not available at the time of original submission? Or can we set up some form of automated refresh on the due date of the assignment or after a certain time period since the last assignment was submitted?
eg: last file submitted was 10/5/2015 so automatically refresh all scores within the moodle assignment on the 11/5/2015 - it might also be useful to notify/email the teachers in the course if any significant deviation was found between the first score generated and the new one which would likely suggest a match against someone else in the same class?
Admittedly this happened on a test server but it's been raised before as not good practice:
Turnitin plagiarism plugin failed to create a Turnitin class when I hit the Moodle Add Assignment in the activity picker, due to a curl error and caused a complete failure of the entire Moodle add module process.
I've said it before, but please can TII not break Moodle when it fails!
Hello All,
Herewith another one:
Default exception handler: Coding error detected, it must be fixed by a programmer: PHP catchable fatal error Debug: Argument 2 passed to has_capability() must be an instance of context, null given, called in [dirroot]/plagiarism/turnitin/ajax.php on line 40 and defined
Error code: codingerror
The length of a class/course in Turnitin is currently restricted to 7 years. This isn't specific to Moodle and is an issue that is being reviewed, please contact Product Support if this causes any problems or you have any questions.
We're seeing some cases where mod_assign submissions are displaying a "Pending" status for the plagiarism plugin but they don't appear to ever be coming back.
We think that the academic member of staff enabled Turnitin after students had started submitting items.
Would items that have already been submitted, be sent to Turnitin if it is subsequently turned on. Looking through the code I can't find a mechanism that adds them to the turnitin_files
table unless they are actually edited and raises one of file_uploaded
, assessable_submitted
, content_upload
or files_done
events.
The mod_created
and mod_updated
events do not appear to check existing for submissions.
Hello All,
With the latest update Plagiarism_plugin is returning a 500 error when trying to access the submissions or do anything with an assignment on which turnitin is configured. php_errors.log has the following:
PHP Parse error: syntax error, unexpected '=', expecting ')' in /storage/www/moodle/plagiarism/turnitin/lib.php on line 2387
I see that this was changed from the previous version and now adds a conditional to test for an empty value. Is there something I am missing here? The plagiarism plugin is now broken with new if statement.
The anonymous marking setting has used to be present in this plugin but has now been removed. Moodle's blind marking is now used to determine whether an assignment is anonymous in Turnitin or not.
However, there is a slight difference in how Moodle and Turnitin handle the release of student's identities and grades. In Turnitin this happens simultaneously but other restrictions on grades being revealed could be in place in Moodle. Therefore it is possible to end up with a scenario where student's names are visible in Moodle but not in Turnitin.
The default settings in plagiarism/turnitin/settings.php?do=defaults only appear to be used if the setting is also set to "locked" when creating new assignments.
it looks like the function get_settings() is used to return the defaults but this function only returns values if the field is locked.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.