@@ -2015,63 +2015,62 @@ public function cron_update_scores() {
2015
2015
$ submissionids = array ();
2016
2016
$ reportsexpected = array ();
2017
2017
$ assignmentids = array ();
2018
-
2019
- $ submissions = $ DB ->get_records_select (
2020
- 'plagiarism_turnitin_files ' ,
2021
- 'statuscode = ?
2022
- AND ( similarityscore IS NULL OR duedate_report_refresh = 1 )
2023
- AND ( orcapable = ? OR orcapable IS NULL ) ' ,
2024
- array ('success ' , 1 ),
2025
- 'externalid DESC '
2018
+
2019
+ $ submissions = $ DB ->get_records_sql (
2020
+ 'SELECT PTF.*,
2021
+ CM.instance AS instance,
2022
+ M.name AS modname
2023
+ FROM {plagiarism_turnitin_files} PTF
2024
+ JOIN {course_modules} CM ON CM.id = PTF.cm
2025
+ JOIN {modules} M ON M.id = CM.module
2026
+ WHERE statuscode = ?
2027
+ AND ( similarityscore IS NULL OR duedate_report_refresh = 1 )
2028
+ AND ( orcapable = ? OR orcapable IS NULL )
2029
+ ORDER BY externalid DESC ' ,
2030
+ ['success ' , 1 ]
2026
2031
);
2027
2032
2028
- // Add submission ids to the request.
2033
+ $ modulesettings = [];
2029
2034
foreach ($ submissions as $ tiisubmission ) {
2035
+ if (!array_key_exists ($ tiisubmission ->cm , $ modulesettings )) {
2036
+ $ modulesettings [$ tiisubmission ->cm ] = $ this ->get_settings ($ tiisubmission ->cm );
2037
+ }
2038
+ }
2030
2039
2031
- // Only add the submission to the request if the module still exists.
2032
- if ($ cm = get_coursemodule_from_id ('' , $ tiisubmission ->cm )) {
2033
-
2034
- // Updates the db field 'duedate_report_refresh' if the due date has passed within the last twenty four hours.
2035
- $ moduledata = $ DB ->get_record ($ cm ->modname , array ('id ' => $ cm ->instance ));
2036
- $ now = strtotime ('now ' );
2037
- $ dtdue = (!empty ($ moduledata ->duedate )) ? $ moduledata ->duedate : 0 ;
2038
- if ($ now >= $ dtdue && $ now < strtotime ('+1 day ' , $ dtdue )) {
2039
- $ this ->set_duedate_report_refresh ($ tiisubmission ->id , 1 );
2040
- }
2040
+ // Add submission ids to the request.
2041
+ foreach ($ submissions as $ tiisubmission ) {
2042
+ // Updates the db field 'duedate_report_refresh' if the due date has passed within the last twenty four hours.
2043
+ $ moduledata = $ DB ->get_record ($ tiisubmission ->modname , array ('id ' => $ tiisubmission ->instance ));
2044
+ $ now = strtotime ('now ' );
2045
+ $ dtdue = (!empty ($ moduledata ->duedate )) ? $ moduledata ->duedate : 0 ;
2046
+ if ($ tiisubmission ->duedate_report_refresh != 1 && $ now >= $ dtdue && $ now < strtotime ('+1 day ' , $ dtdue )) {
2047
+ $ this ->set_duedate_report_refresh ($ tiisubmission ->id , 1 );
2048
+ }
2041
2049
2042
- if (!isset ($ reportsexpected [$ cm ->id ])) {
2043
- $ plagiarismsettings = $ this ->get_settings ($ cm ->id );
2044
- $ reportsexpected [$ cm ->id ] = 1 ;
2050
+ if (!isset ($ reportsexpected [$ tiisubmission ->cm ])) {
2045
2051
2046
- if (!isset ($ plagiarismsettings ['plagiarism_compare_institution ' ])) {
2047
- $ plagiarismsettings ['plagiarism_compare_institution ' ] = 0 ;
2048
- }
2052
+ $ reportsexpected [$ tiisubmission ->cm ] = 1 ;
2049
2053
2050
- // Don't add the submission to the request if module settings mean we will not get a report back.
2051
- if (array_key_exists ('plagiarism_compare_student_papers ' , $ plagiarismsettings ) &&
2052
- $ plagiarismsettings ['plagiarism_compare_student_papers ' ] == 0 &&
2053
- $ plagiarismsettings ['plagiarism_compare_internet ' ] == 0 &&
2054
- $ plagiarismsettings ['plagiarism_compare_journals ' ] == 0 &&
2055
- $ plagiarismsettings ['plagiarism_compare_institution ' ] == 0 ) {
2056
- $ reportsexpected [$ cm ->id ] = 0 ;
2057
- }
2054
+ if (!isset ($ modulesettings [$ tiisubmission ->cm ]['plagiarism_compare_institution ' ])) {
2055
+ $ modulesettings [$ tiisubmission ->cm ]['plagiarism_compare_institution ' ] = 0 ;
2058
2056
}
2059
2057
2060
- // Only add the submission to the request if we are expecting an originality report.
2061
- if ($ reportsexpected [$ cm ->id ] == 1 ) {
2062
- $ submissionids [] = $ tiisubmission ->externalid ;
2058
+ // Don't add the submission to the request if module settings mean we will not get a report back.
2059
+ if (array_key_exists ('plagiarism_compare_student_papers ' , $ modulesettings [$ tiisubmission ->cm ]) &&
2060
+ $ modulesettings [$ tiisubmission ->cm ]['plagiarism_compare_student_papers ' ] == 0 &&
2061
+ $ modulesettings [$ tiisubmission ->cm ]['plagiarism_compare_internet ' ] == 0 &&
2062
+ $ modulesettings [$ tiisubmission ->cm ]['plagiarism_compare_journals ' ] == 0 &&
2063
+ $ modulesettings [$ tiisubmission ->cm ]['plagiarism_compare_institution ' ] == 0 ) {
2064
+ $ reportsexpected [$ tiisubmission ->cm ] = 0 ;
2065
+ }
2066
+ }
2063
2067
2064
- // If submission is added to the request, add the corresponding assign id in the assignids array.
2065
- $ moduleturnitinconfig = $ DB ->get_record ('plagiarism_turnitin_config ' ,
2066
- array (
2067
- 'cm ' => $ cm ->id ,
2068
- 'name ' => 'turnitin_assignid '
2069
- )
2070
- );
2068
+ // Only add the submission to the request if we are expecting an originality report.
2069
+ if ($ reportsexpected [$ tiisubmission ->cm ] == 1 ) {
2070
+ $ submissionids [] = $ tiisubmission ->externalid ;
2071
2071
2072
- if (!isset (array_flip ($ assignmentids )[$ moduleturnitinconfig ->value ])) {
2073
- $ assignmentids [] = $ moduleturnitinconfig ->value ;
2074
- }
2072
+ if (!isset (array_flip ($ assignmentids )[$ modulesettings [$ tiisubmission ->cm ]->turnitin_assignid ])) {
2073
+ $ assignmentids [] = $ modulesettings [$ tiisubmission ->cm ]->turnitin_assignid ;
2075
2074
}
2076
2075
}
2077
2076
}
@@ -2157,9 +2156,7 @@ public function cron_update_scores() {
2157
2156
2158
2157
// Sets the duedate_report_refresh flag for each processed submission to 2 to prevent them being processed again in the next cron run.
2159
2158
foreach ($ submissions as $ tiisubmission ) {
2160
- if ($ cm = get_coursemodule_from_id ('' , $ tiisubmission ->cm )) {
2161
- $ this ->set_duedate_report_refresh ($ tiisubmission ->id , 2 );
2162
- }
2159
+ $ this ->set_duedate_report_refresh ($ tiisubmission ->id , 2 );
2163
2160
}
2164
2161
2165
2162
return true ;
0 commit comments