original_string: protected function get_notifiable_users($userid) {
          // Potential users should be active users only.
          $potentialusers = get_enrolled_users($this->context, "mod/assign:receivegradernotifications",
                                               null, 'u.*', null, null, null, true);
  
          $notifiableusers = array();
          if (groups_get_activity_groupmode($this->get_course_module()) == SEPARATEGROUPS) {
              if ($groups = groups_get_all_groups($this->get_course()->id, $userid, $this->get_course_module()->groupingid)) {
                  foreach ($groups as $group) {
                      foreach ($potentialusers as $potentialuser) {
                          if ($potentialuser->id == $userid) {
                              // Do not send self.
                              continue;
                          }
                          if (groups_is_member($group->id, $potentialuser->id)) {
                              $notifiableusers[$potentialuser->id] = $potentialuser;
                          }
                      }
                  }
              } else {
                  // User not in group, try to find graders without group.
                  foreach ($potentialusers as $potentialuser) {
                      if ($potentialuser->id == $userid) {
                          // Do not send self.
                          continue;
                      }
                      if (!groups_has_membership($this->get_course_module(), $potentialuser->id)) {
                          $notifiableusers[$potentialuser->id] = $potentialuser;
                      }
                  }
              }
          } else {
              foreach ($potentialusers as $potentialuser) {
                  if ($potentialuser->id == $userid) {
                      // Do not send self.
                      continue;
                  }
                  // Must be enrolled.
                  if (is_enrolled($this->get_course_context(), $potentialuser->id)) {
                      $notifiableusers[$potentialuser->id] = $potentialuser;
                  }
              }
          }
          return $notifiableusers;
      }
code: protected function get_notifiable_users($userid) {
          // Potential users should be active users only.
          $potentialusers = get_enrolled_users($this->context, "mod/assign:receivegradernotifications",
                                               null, 'u.*', null, null, null, true);
  
          $notifiableusers = array();
          if (groups_get_activity_groupmode($this->get_course_module()) == SEPARATEGROUPS) {
              if ($groups = groups_get_all_groups($this->get_course()->id, $userid, $this->get_course_module()->groupingid)) {
                  foreach ($groups as $group) {
                      foreach ($potentialusers as $potentialuser) {
                          if ($potentialuser->id == $userid) {
                              // Do not send self.
                              continue;
                          }
                          if (groups_is_member($group->id, $potentialuser->id)) {
                              $notifiableusers[$potentialuser->id] = $potentialuser;
                          }
                      }
                  }
              } else {
                  // User not in group, try to find graders without group.
                  foreach ($potentialusers as $potentialuser) {
                      if ($potentialuser->id == $userid) {
                          // Do not send self.
                          continue;
                      }
                      if (!groups_has_membership($this->get_course_module(), $potentialuser->id)) {
                          $notifiableusers[$potentialuser->id] = $potentialuser;
                      }
                  }
              }
          } else {
              foreach ($potentialusers as $potentialuser) {
                  if ($potentialuser->id == $userid) {
                      // Do not send self.
                      continue;
                  }
                  // Must be enrolled.
                  if (is_enrolled($this->get_course_context(), $potentialuser->id)) {
                      $notifiableusers[$potentialuser->id] = $potentialuser;
                  }
              }
          }
          return $notifiableusers;
      }
code_tokens: protected function get_notifiable_users ( $ userid ) { // Potential users should be active users only. $ potentialusers = get_enrolled_users ( $ this -> context , "mod/assign:receivegradernotifications" , null , 'u.*' , null , null , null , true ) ; $ notifiableusers = array ( ) ; if ( groups_get_activity_groupmode ( $ this -> get_course_module ( ) ) == SEPARATEGROUPS ) { if ( $ groups = groups_get_all_groups ( $ this -> get_course ( ) -> id , $ userid , $ this -> get_course_module ( ) -> groupingid ) ) { foreach ( $ groups as $ group ) { foreach ( $ potentialusers as $ potentialuser ) { if ( $ potentialuser -> id == $ userid ) { // Do not send self. continue ; } if ( groups_is_member ( $ group -> id , $ potentialuser -> id ) ) { $ notifiableusers [ $ potentialuser -> id ] = $ potentialuser ; } } } } else { // User not in group, try to find graders without group. foreach ( $ potentialusers as $ potentialuser ) { if ( $ potentialuser -> id == $ userid ) { // Do not send self. continue ; } if ( ! groups_has_membership ( $ this -> get_course_module ( ) , $ potentialuser -> id ) ) { $ notifiableusers [ $ potentialuser -> id ] = $ potentialuser ; } } } } else { foreach ( $ potentialusers as $ potentialuser ) { if ( $ potentialuser -> id == $ userid ) { // Do not send self. continue ; } // Must be enrolled. if ( is_enrolled ( $ this -> get_course_context ( ) , $ potentialuser -> id ) ) { $ notifiableusers [ $ potentialuser -> id ] = $ potentialuser ; } } } return $ notifiableusers ; }
docstring: Returns a list of users that should receive notification about given submission.
  
  @param int $userid The submission to grade
  @return array
docstring_tokens: Returns a list of users that should receive notification about given submission .