@@ -2176,49 +2176,35 @@ function moodleoverflow_count_discussions($moodleoverflow, $course) {
21762176 *
21772177 * @param object $moodleoverflow
21782178 * @param int $postuserrating
2179- * @param object $postinguser
2180- *
2179+ * @param int $postinguser
2180+ * @return void
21812181 */
2182- function moodleoverflow_update_user_grade ($ moodleoverflow , $ postuserrating , $ postinguser ) {
2183-
2182+ function moodleoverflow_update_user_grade (object $ moodleoverflow , int $ postuserrating , int $ postinguser ): void {
2183+ global $ DB ;
21842184 // Check whether moodleoverflow object has the added params.
21852185 if ($ moodleoverflow ->grademaxgrade > 0 && $ moodleoverflow ->gradescalefactor > 0 ) {
2186- moodleoverflow_update_user_grade_on_db ($ moodleoverflow , $ postuserrating , $ postinguser );
2187- }
2188- }
2186+ // Calculate the posting user's updated grade.
2187+ $ grade = $ postuserrating / $ moodleoverflow ->gradescalefactor ;
21892188
2190- /**
2191- * Updates user grade in database.
2192- *
2193- * @param object $moodleoverflow
2194- * @param int $postuserrating
2195- * @param int $userid
2196- *
2197- */
2198- function moodleoverflow_update_user_grade_on_db ($ moodleoverflow , $ postuserrating , $ userid ) {
2199- global $ DB ;
2200-
2201- // Calculate the posting user's updated grade.
2202- $ grade = $ postuserrating / $ moodleoverflow ->gradescalefactor ;
2189+ if ($ grade > $ moodleoverflow ->grademaxgrade ) {
2190+ $ grade = $ moodleoverflow ->grademaxgrade ;
2191+ }
22032192
2204- if ($ grade > $ moodleoverflow ->grademaxgrade ) {
2205- $ grade = $ moodleoverflow ->grademaxgrade ;
2206- }
2193+ // Save updated grade on local table.
2194+ if ($ DB ->record_exists ('moodleoverflow_grades ' , ['userid ' => $ postinguser , 'moodleoverflowid ' => $ moodleoverflow ->id ])) {
2195+ $ DB ->set_field ('moodleoverflow_grades ' , 'grade ' , $ grade , ['userid ' => $ postinguser ,
2196+ 'moodleoverflowid ' => $ moodleoverflow ->id , ]);
2197+ } else {
2198+ $ gradedataobject = new stdClass ();
2199+ $ gradedataobject ->moodleoverflowid = $ moodleoverflow ->id ;
2200+ $ gradedataobject ->userid = $ postinguser ;
2201+ $ gradedataobject ->grade = $ grade ;
2202+ $ DB ->insert_record ('moodleoverflow_grades ' , $ gradedataobject , false );
2203+ }
22072204
2208- // Save updated grade on local table.
2209- if ($ DB ->record_exists ('moodleoverflow_grades ' , ['userid ' => $ userid , 'moodleoverflowid ' => $ moodleoverflow ->id ])) {
2210- $ DB ->set_field ('moodleoverflow_grades ' , 'grade ' , $ grade , ['userid ' => $ userid ,
2211- 'moodleoverflowid ' => $ moodleoverflow ->id , ]);
2212- } else {
2213- $ gradedataobject = new stdClass ();
2214- $ gradedataobject ->moodleoverflowid = $ moodleoverflow ->id ;
2215- $ gradedataobject ->userid = $ userid ;
2216- $ gradedataobject ->grade = $ grade ;
2217- $ DB ->insert_record ('moodleoverflow_grades ' , $ gradedataobject , false );
2205+ // Update gradebook.
2206+ moodleoverflow_update_grades ($ moodleoverflow , $ postinguser );
22182207 }
2219-
2220- // Update gradebook.
2221- moodleoverflow_update_grades ($ moodleoverflow , $ userid );
22222208}
22232209
22242210/**
@@ -2257,7 +2243,7 @@ function moodleoverflow_update_all_grades_for_cm($moodleoverflowid) {
22572243 $ userrating = ratings::moodleoverflow_get_reputation ($ moodleoverflow ->id , $ userid , true );
22582244
22592245 // Calculate the posting user's updated grade.
2260- moodleoverflow_update_user_grade_on_db ($ moodleoverflow , $ userrating , $ userid );
2246+ moodleoverflow_update_user_grade ($ moodleoverflow , $ userrating , $ userid );
22612247 }
22622248 }
22632249}
0 commit comments