diff --git a/main/announcements/announcements.php b/main/announcements/announcements.php
index f8efb6a0a0..660ba27e29 100755
--- a/main/announcements/announcements.php
+++ b/main/announcements/announcements.php
@@ -37,6 +37,7 @@ $allowToEdit = (
api_is_allowed_to_edit(false, true) ||
(api_get_course_setting('allow_user_edit_announcement') && !api_is_anonymous())
);
+$allowStudentInGroupToSend = false;
$sessionId = api_get_session_id();
$drhHasAccessToSessionContent = api_drh_can_access_all_session_content();
@@ -60,15 +61,16 @@ $tbl_courses = Database::get_main_table(TABLE_MAIN_COURSE);
$tbl_sessions = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT);
$tbl_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY);
+
$isTutor = false;
if (!empty($group_id)) {
- $groupProperties = GroupManager:: get_group_properties($group_id);
+ $groupProperties = GroupManager::get_group_properties($group_id);
$interbreadcrumb[] = [
- 'url' => api_get_path(WEB_CODE_PATH)."group/group.php?".api_get_cidreq(),
+ 'url' => api_get_path(WEB_CODE_PATH).'group/group.php?'.api_get_cidreq(),
'name' => get_lang('Groups'),
];
$interbreadcrumb[] = [
- 'url' => api_get_path(WEB_CODE_PATH)."group/group_space.php?".api_get_cidreq(),
+ 'url' => api_get_path(WEB_CODE_PATH).'group/group_space.php?'.api_get_cidreq(),
'name' => get_lang('GroupSpace').' '.$groupProperties['name'],
];
@@ -78,10 +80,14 @@ if (!empty($group_id)) {
if ($isTutor) {
$allowToEdit = true;
}
+
+ // Last chance ... students can send announcements
+ if ($groupProperties['announcements_state'] == GroupManager::TOOL_PRIVATE_BETWEEN_USERS) {
+ $allowStudentInGroupToSend = true;
+ }
}
}
-/* Tracking */
Event::event_access_tool(TOOL_ANNOUNCEMENT);
$announcement_id = isset($_GET['id']) ? (int) $_GET['id'] : null;
@@ -166,9 +172,11 @@ switch ($action) {
'url' => api_get_path(WEB_CODE_PATH).'announcements/announcements.php?'.api_get_cidreq(),
'name' => $nameTools,
];
-
$nameTools = get_lang('View');
$content = AnnouncementManager::displayAnnouncement($announcement_id);
+ if (empty($content)) {
+ api_not_allowed(true);
+ }
break;
case 'list':
$htmlHeadXtra[] = api_get_jqgrid_js();
@@ -291,7 +299,9 @@ switch ($action) {
if (empty($count)) {
$html = '';
- if ($allowToEdit && (empty($_GET['origin']) || $_GET['origin'] !== 'learnpath')) {
+ if (($allowToEdit || $allowStudentInGroupToSend) &&
+ (empty($_GET['origin']) || $_GET['origin'] !== 'learnpath')
+ ) {
$html .= '
';
$html .= '
'.get_lang('Announcements').'
';
$html .= Display::return_icon('valves.png', '', [], 64);
@@ -389,8 +399,10 @@ switch ($action) {
api_not_allowed(true);
}
- if (!$allowToEdit) {
- api_not_allowed(true);
+ if ($allowStudentInGroupToSend === false) {
+ if (!$allowToEdit) {
+ api_not_allowed(true);
+ }
}
// DISPLAY ADD ANNOUNCEMENT COMMAND
@@ -768,7 +780,7 @@ if (empty($_GET['origin']) || $_GET['origin'] !== 'learnpath') {
// Actions
$show_actions = false;
$actionsLeft = '';
-if ($allowToEdit && (empty($_GET['origin']) || $_GET['origin'] !== 'learnpath')) {
+if (($allowToEdit || $allowStudentInGroupToSend) && (empty($_GET['origin']) || $_GET['origin'] !== 'learnpath')) {
if (in_array($action, ['add', 'modify', 'view'])) {
$actionsLeft .= "
".
Display::return_icon('back.png', get_lang('Back'), '', ICON_SIZE_MEDIUM).
@@ -788,7 +800,7 @@ if ($allowToEdit && (empty($_GET['origin']) || $_GET['origin'] !== 'learnpath'))
if ($allowToEdit && api_get_group_id() == 0) {
$allow = api_get_configuration_value('disable_delete_all_announcements');
- if ($allow === false) {
+ if ($allow === false && api_is_allowed_to_edit()) {
if (!isset($_GET['action']) ||
isset($_GET['action']) && $_GET['action'] == 'list'
) {
diff --git a/main/group/group_category.php b/main/group/group_category.php
index e06843fc19..fc269a577a 100755
--- a/main/group/group_category.php
+++ b/main/group/group_category.php
@@ -127,6 +127,7 @@ for ($i = 1; $i <= 10; $i++) {
$possible_values[$i] = $i;
}
$possible_values[GroupManager::GROUP_PER_MEMBER_NO_LIMIT] = get_lang('All');
+
$group = [
$form->createElement('select', 'groups_per_user', null, $possible_values, ['id' => 'groups_per_user']),
$form->createElement('static', null, null, get_lang('QtyOfUserCanSubscribe_PartAfterNumber')),
diff --git a/main/group/settings.php b/main/group/settings.php
index 9e7efd3253..32e3aa3777 100755
--- a/main/group/settings.php
+++ b/main/group/settings.php
@@ -247,7 +247,7 @@ $group = [
$form->createElement('radio', 'announcements_state', get_lang('GroupAnnouncements'), get_lang('NotAvailable'), GroupManager::TOOL_NOT_AVAILABLE),
$form->createElement('radio', 'announcements_state', null, get_lang('Public'), GroupManager::TOOL_PUBLIC),
$form->createElement('radio', 'announcements_state', null, get_lang('Private'), GroupManager::TOOL_PRIVATE),
- //$form->createElement('radio', 'announcements_state', null, get_lang('PrivateBetweenUsers'), GroupManager::TOOL_PRIVATE_BETWEEN_USERS),
+ $form->createElement('radio', 'announcements_state', null, get_lang('PrivateBetweenUsers'), GroupManager::TOOL_PRIVATE_BETWEEN_USERS),
];
$form->addGroup(
diff --git a/main/inc/ajax/announcement.ajax.php b/main/inc/ajax/announcement.ajax.php
index f0f814095a..8de3f92613 100644
--- a/main/inc/ajax/announcement.ajax.php
+++ b/main/inc/ajax/announcement.ajax.php
@@ -44,9 +44,9 @@ switch ($action) {
}
// Last chance ... students can send announcements.
- /*if ($groupProperties['announcements_state'] == GroupManager::TOOL_PRIVATE_BETWEEN_USERS) {
+ if ($groupProperties['announcements_state'] == GroupManager::TOOL_PRIVATE_BETWEEN_USERS) {
$allowToEdit = true;
- }*/
+ }
}
if ($allowToEdit === false) {
diff --git a/main/inc/lib/AnnouncementManager.php b/main/inc/lib/AnnouncementManager.php
index b7e5bf6842..f04d68b2c5 100755
--- a/main/inc/lib/AnnouncementManager.php
+++ b/main/inc/lib/AnnouncementManager.php
@@ -1,6 +1,7 @@
getField();
- if ($field) {
+ if ($field instanceof ExtraFieldEntity) {
$data['extra_'.$field->getVariable()] = $value->getValue();
}
}
@@ -134,7 +135,7 @@ class AnnouncementManager
}
}
- if (!empty(api_get_session_id())) {
+ if (!empty($sessionId)) {
$data['coaches'] = $coaches;
$data['general_coach'] = $generalCoachName;
$data['general_coach_email'] = $generalCoachEmail;
@@ -160,7 +161,7 @@ class AnnouncementManager
*/
public static function get_all_annoucement_by_course($course_info, $session_id = 0)
{
- $session_id = intval($session_id);
+ $session_id = (int) $session_id;
$courseId = $course_info['real_id'];
$tbl_announcement = Database::get_course_table(TABLE_ANNOUNCEMENT);
@@ -316,13 +317,15 @@ class AnnouncementManager
* @param int $announcementId
* @param int $courseId
* @param int $userId
+ * @param int $groupId
*
* @return array
*/
public static function getAnnouncementInfoById(
$announcementId,
$courseId,
- $userId
+ $userId,
+ $groupId = 0
) {
if (api_is_allowed_to_edit(false, true) ||
(api_get_course_setting('allow_user_edit_announcement') && !api_is_anonymous())
@@ -337,13 +340,22 @@ class AnnouncementManager
a.cId = :course
ORDER BY a.displayOrder DESC";
} else {
- $group_list = GroupManager::get_group_ids($courseId, api_get_user_id());
-
- if (empty($group_list)) {
- $group_list[] = 0;
- }
+ $groupId = (int) $groupId;
+ $groupList[] = $groupId;
if (api_get_user_id() != 0) {
+ $extraGroupCondition = '';
+ if (!empty($groupId)) {
+ $groupProperties = GroupManager::get_group_properties($groupId);
+ if ($groupProperties['announcements_state'] == GroupManager::TOOL_PRIVATE_BETWEEN_USERS) {
+ $extraGroupCondition = " AND (
+ ip.toUser = $userId AND ip.group = $groupId OR
+ (ip.group IN ('0') OR ip.group IS NULL) OR
+ (ip.group = $groupId AND (ip.toUser IS NULL OR ip.toUser = 0))
+ )";
+ }
+ }
+
$dql = "SELECT a, ip
FROM ChamiloCourseBundle:CAnnouncement a
JOIN ChamiloCourseBundle:CItemProperty ip
@@ -353,11 +365,12 @@ class AnnouncementManager
ip.tool='announcement' AND
(
ip.toUser = $userId OR
- ip.group IN ('0', '".implode("', '", $group_list)."') OR
+ ip.group IN ('0', '".$groupId."') OR
ip.group IS NULL
) AND
ip.visibility = '1' AND
ip.course = :course
+ $extraGroupCondition
ORDER BY a.displayOrder DESC";
} else {
$dql = "SELECT a, ip
@@ -381,10 +394,14 @@ class AnnouncementManager
]
);
- return [
- 'announcement' => $result[0],
- 'item_property' => $result[1],
- ];
+ if (!empty($result)) {
+ return [
+ 'announcement' => $result[0],
+ 'item_property' => $result[1],
+ ];
+ }
+
+ return [];
}
/**
@@ -396,8 +413,10 @@ class AnnouncementManager
*/
public static function displayAnnouncement($id)
{
- if ($id != strval(intval($id))) {
- return null;
+ $id = (int) $id;
+
+ if (empty($id)) {
+ return '';
}
global $charset;
@@ -406,8 +425,14 @@ class AnnouncementManager
$result = self::getAnnouncementInfoById(
$id,
api_get_course_int_id(),
- api_get_user_id()
+ api_get_user_id(),
+ api_get_group_id()
);
+
+ if (empty($result)) {
+ return '';
+ }
+
/** @var CAnnouncement $announcement */
$announcement = $result['announcement'];
/** @var CItemProperty $itemProperty */
@@ -464,7 +489,7 @@ class AnnouncementManager
$html .= "";
$allow = !api_get_configuration_value('hide_announcement_sent_to_users_info');
- if (api_is_allowed_to_edit(false, true) && $allow) {
+ if ($allow && api_is_allowed_to_edit(false, true)) {
$sent_to = self::sent_to('announcement', $id);
$sentToForm = self::sent_to_form($sent_to);
$html .= Display::tag(
@@ -499,7 +524,7 @@ class AnnouncementManager
}
$html .= '';
}
- $html .= "";
+ $html .= '';
return $html;
}
diff --git a/tests/behat/features/course_user_registration.feature b/tests/behat/features/course_user_registration.feature
index dac437c872..5c1b11e867 100644
--- a/tests/behat/features/course_user_registration.feature
+++ b/tests/behat/features/course_user_registration.feature
@@ -26,4 +26,10 @@ Feature: Subscribe users to the course
Given I am on "/main/user/subscribe_user.php?keyword=fapple&type=5&cidReq=TEMP"
Then I should see "Fiona"
Then I follow "Register"
- Then I should see "User Fiona Apple Maggart (fapple) has been registered to course TEMP"
\ No newline at end of file
+ Then I should see "User Fiona Apple Maggart (fapple) has been registered to course TEMP"
+
+ Scenario: Subscribe "amann" again as student to the course "TEMP" (leave it subscribed for further tests)
+ Given I am on "/main/user/subscribe_user.php?keyword=amann&type=5&cidReq=TEMP"
+ Then I should see "Aimee"
+ Then I follow "Register"
+ Then I should see "User Aimee Mann (amann) has been registered to course TEMP"
\ No newline at end of file
diff --git a/tests/behat/features/toolGroup.feature b/tests/behat/features/toolGroup.feature
index 5356f622c2..22f5afde8e 100644
--- a/tests/behat/features/toolGroup.feature
+++ b/tests/behat/features/toolGroup.feature
@@ -6,260 +6,310 @@ Feature: Group tool
Given I am a platform administrator
And I am on course "TEMP" homepage
- Scenario: Create a group directory
- Given I am on "/main/group/group_category.php?cidReq=TEMP&id_session=0&action=add_category"
- When I fill in the following:
- | title | Group category 1 |
- And I press "group_category_submit"
- Then I should see "Category created"
+# Scenario: Create a group directory
+# Given I am on "/main/group/group_category.php?cidReq=TEMP&id_session=0&action=add_category"
+# When I fill in the following:
+# | title | Group category 1 |
+# And I press "group_category_submit"
+# Then I should see "Category created"
+#
+# Scenario: Create 4 groups
+# Given I am on "/main/group/group_creation.php?cidReq=TEMP&id_session=0"
+# When I fill in the following:
+# | number_of_groups | 5 |
+# And I press "submit"
+# Then I should see "New groups creation"
+# When I fill in the following:
+# | group_0_places | 1 |
+# | group_1_places | 1 |
+# | group_2_places | 1 |
+# | group_3_places | 1 |
+# | group_4_places | 2 |
+# And I press "submit"
+# Then I should see "group(s) has (have) been added"
+#
+# Scenario: Change Group 0003 settings to make announcements private
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0003"
+# Then I should see "Group 0003"
+# Then I follow "Edit this group"
+# Then I check the "announcements_state" radio button with "2" value
+# Then I press "Save settings"
+# Then I should see "Group settings modified"
+#
+# Scenario: Change Group 0004 settings to make it private
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0004"
+# Then I should see "Group 0004"
+# Then I follow "Edit this group"
+# Then I check the "announcements_state" radio button with "2" value
+# Then I press "Save settings"
+# Then I should see "Group settings modified"
+#
+# Scenario: Change Group 0005 settings to make announcements private between users
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0005"
+# Then I should see "Group 0005"
+# Then I follow "Edit this group"
+# Then I check the "announcements_state" radio button with "3" value
+# Then I press "Save settings"
+# Then I should see "Group settings modified"
+#
+# Scenario: Create document folder in group
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0001"
+# Then I should see "Group 0001"
+# And I follow "Documents"
+# Then I should see "There are no documents to be displayed"
+# Then I follow "Create folder"
+# Then I should see "Create folder"
+# Then I fill in the following:
+# | dirname | My folder in group |
+# And I press "create_dir_form_submit"
+# Then I should see "Folder created"
+#
+# Scenario: Create document inside folder in group
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0001"
+# Then I should see "Group 0001"
+# And I follow "Documents"
+# Then I should see "My folder in group"
+# Then I follow "My folder in group"
+# Then I follow "Create a rich media page / activity"
+# Then I should see "Create a rich media page"
+# Then I fill in the following:
+# | title | html test |
+# And I fill in ckeditor field "content" with "My first HTML!!"
+# Then I press "create_document_submit"
+# Then I should see "Item added"
+#
+# Scenario: Upload a document inside folder in group
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0001"
+# Then I should see "Group 0001"
+# And I follow "Documents"
+# Then I should see "My folder in group"
+# Then I follow "My folder in group"
+# Then I follow "Upload documents"
+# Then I follow "Upload (Simple)"
+# Then I attach the file "web/css/base.css" to "file"
+# Then wait for the page to be loaded
+# Then I press "upload_submitDocument"
+# Then wait for the page to be loaded
+# Then I should see "File upload succeeded"
+#
+# Scenario: Delete 2 uploaded files
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0001"
+# Then I should see "Group 0001"
+# And I follow "Documents"
+# Then I should see "My folder in group"
+# Then I follow "My folder in group"
+# Then I follow "Delete"
+# Then wait for the page to be loaded
+# Then I should see "Are you sure to delete"
+# Then I follow "delete_item"
+#
+# Scenario: Delete directory
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0001"
+# Then I should see "Group 0001"
+# And I follow "Documents"
+# Then I should see "My folder in group"
+# Then I follow "Delete"
+# Then wait for the page to be loaded
+# Then I should see "Are you sure to delete"
+# Then I follow "delete_item"
+#
+# Scenario: Add fapple to the Group 0001
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0001"
+# Then I should see "Group 0001"
+# Then I follow "Edit this group"
+# Then I should see "Group members"
+# Then wait for the page to be loaded
+# Then I follow "group_members_tab"
+# Then I select "Fiona Apple Maggart (fapple)" from "group_members"
+# Then I press "group_members_rightSelected"
+# Then I press "Save settings"
+# And wait for the page to be loaded
+# Then I should see "Group settings modified"
+# Then I follow "Group 0001"
+# Then I should see "Fiona"
+#
+# Scenario: Add fapple to the Group 0003 not allowed because group category allows 1 user per group
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0003"
+# Then I should see "Group 0003"
+# Then I follow "Edit this group"
+# Then I should see "Group members"
+# Then wait for the page to be loaded
+# Then I follow "group_members_tab"
+# Then I select "Fiona Apple Maggart (fapple)" from "group_members"
+# Then I press "group_members_rightSelected"
+# Then I press "Save settings"
+# And wait for the page to be loaded
+# Then I should see "Group settings modified"
+# Then I follow "Group 0003"
+# Then I should not see "Fiona"
+#
+# Scenario: Change Group category to allow multiple inscription of the user
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Edit this category"
+# Then I should see "Edit group category: Group category 1"
+# Then I fill in select bootstrap static by text "#groups_per_user" select "10"
+# Then I press "Edit"
+# Then I should see "Group settings have been modified"
+#
+# Scenario: Add fapple and acostea to Group 0005
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0005"
+# Then I should see "Group 0005"
+# Then I follow "Edit this group"
+# Then I should see "Group members"
+# Then wait for the page to be loaded
+# Then I follow "group_members_tab"
+# Then I select "Fiona Apple Maggart (fapple)" from "group_members"
+# Then I select "Andrea Costea (acostea)" from "group_members"
+# Then I press "group_members_rightSelected"
+# Then I press "Save settings"
+# And wait for the page to be loaded
+# Then I should see "Group settings modified"
+# Then I follow "Group 0005"
+# Then I should see "Fiona"
+# Then I should see "Andrea"
+#
+# Scenario: Add fapple to the Group 0003
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0003"
+# Then I should see "Group 0003"
+# Then I follow "Edit this group"
+# Then I should see "Group members"
+# Then wait for the page to be loaded
+# Then I follow "group_members_tab"
+# Then I select "Fiona Apple Maggart (fapple)" from "group_members"
+# Then I press "group_members_rightSelected"
+# Then I press "Save settings"
+# And wait for the page to be loaded
+# Then I should see "Group settings modified"
+# Then I follow "Group 0003"
+# Then I should see "Fiona"
+#
+# Scenario: Add acostea to the Group 0002
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0002"
+# Then I should see "Group 0002"
+# Then I follow "Edit this group"
+# Then I should see "Group members"
+# Then wait for the page to be loaded
+# Then I follow "group_members_tab"
+# Then I select "Andrea Costea (acostea)" from "group_members"
+# Then I press "group_members_rightSelected"
+# Then I press "Save settings"
+# And wait for the page to be loaded
+# Then I should see "Group settings modified"
+# Then I follow "Group 0002"
+# Then I should see "Andrea"
+#
+# Scenario: Create an announcement for everybody inside Group 0001
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0001"
+# Then I should see "Group 0001"
+# And I follow "Announcements"
+# Then I should see "Announcements"
+# Then I follow "Add an announcement"
+# Then I should see "Add an announcement"
+# Then wait for the page to be loaded
+# Then I fill in the following:
+# | title | Announcement for all users inside Group 0001 |
+# And I fill in ckeditor field "content" with "Announcement description in Group 0001"
+# Then I follow "announcement_preview"
+# And wait for the page to be loaded
+# Then I should see "Announcement will be sent to"
+# Then I press "submit"
+# Then I should see "Announcement has been added"
+#
+# Scenario: Create an announcement for fapple inside Group 0001
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0001"
+# Then I should see "Group 0001"
+# And I follow "Announcements"
+# Then I should see "Announcements"
+# Then I follow "Add an announcement"
+# Then I should see "Add an announcement"
+# Then wait for the page to be loaded
+# Then I press "choose_recipients"
+# Then I select "Fiona Apple" from "users"
+# Then I press "users_rightSelected"
+# Then I fill in the following:
+# | title | Announcement for user fapple inside Group 0001 |
+# And I fill in ckeditor field "content" with "Announcement description for user fapple inside Group 0001"
+# Then I follow "announcement_preview"
+# And wait for the page to be loaded
+# Then I should see "Announcement will be sent to"
+# Then I press "submit"
+# Then I should see "Announcement has been added"
+#
+# Scenario: Create an announcement for everybody inside Group 0003 (private)
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0003"
+# Then I should see "Group 0003"
+# And I follow "Announcements"
+# Then I should see "Announcements"
+# Then I follow "Add an announcement"
+# Then I should see "Add an announcement"
+# Then wait for the page to be loaded
+# Then I fill in the following:
+# | title | Announcement for all users inside Group 0003 |
+# And I fill in ckeditor field "content" with "Announcement description in Group 0003"
+# Then I follow "announcement_preview"
+# And wait for the page to be loaded
+# Then I should see "Announcement will be sent to"
+# Then I press "submit"
+# Then I should see "Announcement has been added"
+#
+# Scenario: Create an announcement for fapple inside Group 0003
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0003"
+# Then I should see "Group 0003"
+# And I follow "Announcements"
+# Then I should see "Announcements"
+# Then I follow "Add an announcement"
+# Then I should see "Add an announcement"
+# Then wait for the page to be loaded
+# Then I press "choose_recipients"
+# Then I select "Fiona Apple" from "users"
+# Then I press "users_rightSelected"
+# Then I fill in the following:
+# | title | Announcement for user fapple inside Group 0003 |
+# And I fill in ckeditor field "content" with "Announcement description for user fapple inside Group 0003"
+# Then I follow "announcement_preview"
+# And wait for the page to be loaded
+# Then I should see "Announcement will be sent to"
+# Then I press "submit"
+# Then I should see "Announcement has been added"
- Scenario: Create 4 groups
- Given I am on "/main/group/group_creation.php?cidReq=TEMP&id_session=0"
- When I fill in the following:
- | number_of_groups | 4 |
- And I press "submit"
- Then I should see "New groups creation"
- When I fill in the following:
- | group_0_places | 1 |
- | group_1_places | 1 |
- | group_2_places | 1 |
- | group_3_places | 1 |
- And I press "submit"
- Then I should see "group(s) has (have) been added"
-
- Scenario: Change Group 0003 settings to make announcements private
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0003"
- Then I should see "Group 0003"
- Then I follow "Edit this group"
- Then I check the "announcements_state" radio button with "2" value
- Then I press "Save settings"
- Then I should see "Group settings modified"
-
- Scenario: Change Group 0004 settings to make it private
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0004"
- Then I should see "Group 0004"
- Then I follow "Edit this group"
- Then I check the "announcements_state" radio button with "2" value
- Then I press "Save settings"
- Then I should see "Group settings modified"
-
- Scenario: Create document folder in group
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0001"
- Then I should see "Group 0001"
- And I follow "Documents"
- Then I should see "There are no documents to be displayed"
- Then I follow "Create folder"
- Then I should see "Create folder"
- Then I fill in the following:
- | dirname | My folder in group |
- And I press "create_dir_form_submit"
- Then I should see "Folder created"
-
- Scenario: Create document inside folder in group
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0001"
- Then I should see "Group 0001"
- And I follow "Documents"
- Then I should see "My folder in group"
- Then I follow "My folder in group"
- Then I follow "Create a rich media page / activity"
- Then I should see "Create a rich media page"
- Then I fill in the following:
- | title | html test |
- And I fill in ckeditor field "content" with "My first HTML!!"
- Then I press "create_document_submit"
- Then I should see "Item added"
-
- Scenario: Upload a document inside folder in group
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0001"
- Then I should see "Group 0001"
- And I follow "Documents"
- Then I should see "My folder in group"
- Then I follow "My folder in group"
- Then I follow "Upload documents"
- Then I follow "Upload (Simple)"
- Then I attach the file "web/css/base.css" to "file"
- Then wait for the page to be loaded
- Then I press "upload_submitDocument"
- Then wait for the page to be loaded
- Then I should see "File upload succeeded"
-
- Scenario: Delete 2 uploaded files
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0001"
- Then I should see "Group 0001"
- And I follow "Documents"
- Then I should see "My folder in group"
- Then I follow "My folder in group"
- Then I follow "Delete"
- Then wait for the page to be loaded
- Then I should see "Are you sure to delete"
- Then I follow "delete_item"
-
- Scenario: Delete directory
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0001"
- Then I should see "Group 0001"
- And I follow "Documents"
- Then I should see "My folder in group"
- Then I follow "Delete"
- Then wait for the page to be loaded
- Then I should see "Are you sure to delete"
- Then I follow "delete_item"
-
- Scenario: Add fapple to the Group 0001
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0001"
- Then I should see "Group 0001"
- Then I follow "Edit this group"
- Then I should see "Group members"
- Then wait for the page to be loaded
- Then I follow "group_members_tab"
- Then I select "Fiona Apple Maggart (fapple)" from "group_members"
- Then I press "group_members_rightSelected"
- Then I press "Save settings"
- And wait for the page to be loaded
- Then I should see "Group settings modified"
- Then I follow "Group 0001"
- Then I should see "Fiona"
-
- Scenario: Add fapple to the Group 0003 not allowed because group category allows 1 user per group
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0003"
- Then I should see "Group 0003"
- Then I follow "Edit this group"
- Then I should see "Group members"
- Then wait for the page to be loaded
- Then I follow "group_members_tab"
- Then I select "Fiona Apple Maggart (fapple)" from "group_members"
- Then I press "group_members_rightSelected"
- Then I press "Save settings"
- And wait for the page to be loaded
- Then I should see "Group settings modified"
- Then I follow "Group 0003"
- Then I should not see "Fiona"
-
- Scenario: Change Group category to allow multiple inscription of the user
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Edit this category"
- Then I should see "Edit group category: Group category 1"
- Then I fill in select bootstrap static by text "#groups_per_user" select "10"
- Then I press "Edit"
- Then I should see "Group settings have been modified"
-
- Scenario: Add fapple to the Group 0003
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0003"
- Then I should see "Group 0003"
- Then I follow "Edit this group"
- Then I should see "Group members"
- Then wait for the page to be loaded
- Then I follow "group_members_tab"
- Then I select "Fiona Apple Maggart (fapple)" from "group_members"
- Then I press "group_members_rightSelected"
- Then I press "Save settings"
- And wait for the page to be loaded
- Then I should see "Group settings modified"
- Then I follow "Group 0003"
- Then I should see "Fiona"
-
- Scenario: Add acostea to the Group 0002
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0002"
- Then I should see "Group 0002"
- Then I follow "Edit this group"
- Then I should see "Group members"
- Then wait for the page to be loaded
- Then I follow "group_members_tab"
- Then I select "Andrea Costea (acostea)" from "group_members"
- Then I press "group_members_rightSelected"
- Then I press "Save settings"
- And wait for the page to be loaded
- Then I should see "Group settings modified"
- Then I follow "Group 0002"
- Then I should see "Andrea"
-
- Scenario: Create an announcement for everybody inside Group 0001
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0001"
- Then I should see "Group 0001"
- And I follow "Announcements"
- Then I should see "Announcements"
- Then I follow "Add an announcement"
- Then I should see "Add an announcement"
- Then wait for the page to be loaded
- Then I fill in the following:
- | title | Announcement for all users inside Group 0001 |
- And I fill in ckeditor field "content" with "Announcement description in Group 0001"
- Then I follow "announcement_preview"
- And wait for the page to be loaded
- Then I should see "Announcement will be sent to"
- Then I press "submit"
- Then I should see "Announcement has been added"
-
- Scenario: Create an announcement for fapple inside Group 0001
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0001"
- Then I should see "Group 0001"
- And I follow "Announcements"
- Then I should see "Announcements"
- Then I follow "Add an announcement"
- Then I should see "Add an announcement"
- Then wait for the page to be loaded
- Then I press "choose_recipients"
- Then I select "Fiona Apple" from "users"
- Then I press "users_rightSelected"
- Then I fill in the following:
- | title | Announcement for user fapple inside Group 0001 |
- And I fill in ckeditor field "content" with "Announcement description for user fapple inside Group 0001"
- Then I follow "announcement_preview"
- And wait for the page to be loaded
- Then I should see "Announcement will be sent to"
- Then I press "submit"
- Then I should see "Announcement has been added"
-
- Scenario: Create an announcement for everybody inside Group 0003 (private)
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0003"
- Then I should see "Group 0003"
- And I follow "Announcements"
- Then I should see "Announcements"
- Then I follow "Add an announcement"
- Then I should see "Add an announcement"
- Then wait for the page to be loaded
- Then I fill in the following:
- | title | Announcement for all users inside Group 0003 |
- And I fill in ckeditor field "content" with "Announcement description in Group 0003"
- Then I follow "announcement_preview"
- And wait for the page to be loaded
- Then I should see "Announcement will be sent to"
- Then I press "submit"
- Then I should see "Announcement has been added"
-
- Scenario: Create an announcement for fapple inside Group 0003
- Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
- And I follow "Group 0003"
- Then I should see "Group 0003"
- And I follow "Announcements"
- Then I should see "Announcements"
- Then I follow "Add an announcement"
- Then I should see "Add an announcement"
- Then wait for the page to be loaded
- Then I press "choose_recipients"
- Then I select "Fiona Apple" from "users"
- Then I press "users_rightSelected"
- Then I fill in the following:
- | title | Announcement for user fapple inside Group 0003 |
- And I fill in ckeditor field "content" with "Announcement description for user fapple inside Group 0003"
- Then I follow "announcement_preview"
- And wait for the page to be loaded
- Then I should see "Announcement will be sent to"
- Then I press "submit"
- Then I should see "Announcement has been added"
+# Scenario: Create an announcement as acostea and send only to fapple
+# Given I am logged as "acostea"
+# Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+# And I follow "Group 0005"
+# Then I should see "Group 0005"
+# And I follow "Announcements"
+# Then I should see "Announcements"
+# Then I follow "Add an announcement"
+# Then I should see "Add an announcement"
+# Then wait for the page to be loaded
+# Then I press "choose_recipients"
+# Then I select "Fiona Apple Maggart" from "users"
+# Then I press "users_rightSelected"
+# Then I fill in the following:
+# | title | Announcement only for fapple Group 0005 |
+# And I fill in ckeditor field "content" with "Announcement description only for fapple Group 0005"
+# Then I follow "announcement_preview"
+# And wait for the page to be loaded
+# Then I should see "Announcement will be sent to"
+# Then I press "submit"
+# Then I should see "Announcement has been added"
Scenario: Check fapple/acostea access of announcements
Given I am logged as "fapple"
@@ -296,6 +346,15 @@ Feature: Group tool
Then I follow "Announcement for all users inside Group 0003"
Then I should see "Announcement description in Group 0003"
Then I save current URL with name "announcement_for_all_users_group_0003_private"
+ And I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+ And I follow "Group 0005"
+ Then I should see "Group 0005"
+ Then I follow "Announcements"
+ And wait for the page to be loaded
+ Then I should see "Announcement only for fapple Group 0005"
+ Then I follow "Announcement only for fapple Group 0005"
+ Then I save current URL with name "announcement_only_for_fapple_private"
+
## Finish tests with fapple now check access with acostea ##
Given I am logged as "acostea"
And I am on course "TEMP" homepage
@@ -304,13 +363,31 @@ Feature: Group tool
And I should see "Group 0002"
And I should see "Group 0003"
And I should see "Group 0004"
-
Then I visit URL saved with name "announcement_for_user_fapple_group_0001_public"
Then I should see "Sorry, you are not allowed to access this page"
Then I visit URL saved with name "announcement_for_all_users_group_0001_public"
Then I should see "Sorry, you are not allowed to access this page"
+ Then I visit URL saved with name "announcement_only_for_fapple_private"
+ Then I should see "Sorry, you are not allowed to access this page"
- And I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+ Given I am logged as "acostea"
+ And I am on course "TEMP" homepage
+ Given I am on "/main/group/group.php?cidReq=TEMP&id_session=0"
+ Then I should see "Group 0001"
And I should see "Group 0002"
- And I follow "Group 0002"
- Then I follow "Announcements"
+ And I should see "Group 0003"
+ And I should see "Group 0004"
+ And I should see "Group 0005"
+
+ Then I visit URL saved with name "announcement_for_user_fapple_group_0001_public"
+ Then I should see "Sorry, you are not allowed to access this page"
+ Then I visit URL saved with name "announcement_for_all_users_group_0001_public"
+ Then I should see "Sorry, you are not allowed to access this page"
+ Then I visit URL saved with name "announcement_for_user_fapple_group_0003_private"
+ Then I should see "Sorry, you are not allowed to access this page"
+ Then I visit URL saved with name "announcement_for_all_users_group_0003_private"
+ Then I should see "Sorry, you are not allowed to access this page"
+ Then I visit URL saved with name "announcement_only_for_fapple_private"
+ Then I should see "Sorry, you are not allowed to access this page"
+
+