MDL-63620 group: Option for group messaging when auto-creating groups
authorJun Pataleta <jun@moodle.com>
Wed, 5 Dec 2018 08:39:50 +0000 (16:39 +0800)
committerJun Pataleta <jun@moodle.com>
Mon, 14 Jan 2019 05:29:42 +0000 (13:29 +0800)
group/autogroup.php
group/autogroup_form.php
group/tests/behat/auto_creation.feature

index 0c1bb5d..b66ca45 100644 (file)
@@ -222,6 +222,7 @@ if ($editform->is_cancelled()) {
             $newgroup = new stdClass();
             $newgroup->courseid = $data->courseid;
             $newgroup->name     = $group['name'];
+            $newgroup->enablemessaging = $data->enablemessaging;
             $groupid = groups_create_group($newgroup);
             $createdgroups[] = $groupid;
             foreach($group['members'] as $user) {
index cb13808..31340b0 100644 (file)
@@ -42,7 +42,8 @@ class autogroup_form extends moodleform {
      * Form Definition
      */
     function definition() {
-        global $CFG, $COURSE;
+        global $USER, $COURSE;
+        $coursecontext = context_course::instance($COURSE->id);
 
         $mform =& $this->_form;
 
@@ -68,6 +69,12 @@ class autogroup_form extends moodleform {
         $mform->addRule('number', null, 'numeric', null, 'client');
         $mform->addRule('number', get_string('required'), 'required', null, 'client');
 
+        // Enable group messaging for the groups to be auto-created.
+        if (\core_message\api::can_create_group_conversation($USER->id, $coursecontext)) {
+            $mform->addElement('selectyesno', 'enablemessaging', get_string('enablemessaging', 'group'));
+            $mform->addHelpButton('enablemessaging', 'enablemessaging', 'group');
+        }
+
         $mform->addElement('header', 'groupmembershdr', get_string('groupmembers', 'group'));
         $mform->setExpanded('groupmembershdr', true);
 
index 8610678..54b4763 100644 (file)
@@ -57,6 +57,16 @@ Feature: Automatic creation of groups
     And I press "Submit"
     And the "groups" select box should contain "Group A (5)"
     And the "groups" select box should contain "Group B (5)"
+    # Check that group messaging is not enabled for the auto-created groups.
+    And I set the field "groups" to "Group A"
+    And I press "Edit group settings"
+    And I should see "No" in the "Group messaging" "select"
+    And I press "Cancel"
+    And I set the field "groups" to "Group B"
+    And I press "Edit group settings"
+    And I should see "No" in the "Group messaging" "select"
+    And I press "Cancel"
+    # Check groupings.
     And I follow "Groupings"
     And I should see "Grouping name"
     And I click on "Show groups in grouping" "link" in the "Grouping name" "table_row"
@@ -170,3 +180,20 @@ Feature: Automatic creation of groups
     And I set the field "Group/member count" to "11"
     And I press "Preview"
     And I should not see "Suspended Student 11"
+
+  @javascript
+  Scenario: Auto-create groups with group messaging
+    Given I set the following fields to these values:
+      | Naming scheme | Group @ |
+      | Auto create based on | Number of groups |
+      | Group/member count | 2 |
+      | Grouping of auto-created groups | No grouping |
+      | Group messaging | Yes |
+    And I press "Submit"
+    And I set the field "groups" to "Group A"
+    When I press "Edit group settings"
+    Then I should see "Yes" in the "Group messaging" "select"
+    And I press "Cancel"
+    And I set the field "groups" to "Group B"
+    And I press "Edit group settings"
+    And I should see "Yes" in the "Group messaging" "select"