Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mahara
mahara
Commits
4e75d877
Commit
4e75d877
authored
Oct 03, 2016
by
Robert Lyon
Committed by
Gerrit Code Review
Oct 03, 2016
Browse files
Merge "Bug 1386000: Group homepage to only show submitted items once"
parents
54b9cfc6
33c4a9b7
Changes
5
Hide whitespace changes
Inline
Side-by-side
htdocs/blocktype/groupviews/lib.php
View file @
4e75d877
...
...
@@ -319,6 +319,7 @@ class PluginBlocktypeGroupViews extends MaharaCoreBlocktype {
// For group members, display a list of views that others have
// shared to the group
$hidesubmitted
=
group_user_can_assess_submitted_views
(
$group
->
id
,
$USER
->
get
(
'id'
));
if
(
empty
(
$configdata
[
'showsharedviews'
]))
{
$data
[
'sharedviews'
]
=
(
object
)
array
(
'data'
=>
array
(),
...
...
@@ -333,7 +334,8 @@ class PluginBlocktypeGroupViews extends MaharaCoreBlocktype {
0
,
$group
->
id
,
(
$configdata
[
'showsharedviews'
]
==
2
?
false
:
true
),
$sortsharedviewsby
$sortsharedviewsby
,
$hidesubmitted
);
foreach
(
$data
[
'sharedviews'
]
->
data
as
&
$view
)
{
if
(
!
$editing
&&
isset
(
$view
[
'template'
])
&&
$view
[
'template'
])
{
...
...
@@ -356,7 +358,8 @@ class PluginBlocktypeGroupViews extends MaharaCoreBlocktype {
0
,
$group
->
id
,
(
$configdata
[
'showsharedcollections'
]
==
2
?
false
:
true
),
$sortsharedcollectionsby
$sortsharedcollectionsby
,
$hidesubmitted
);
}
if
(
!
empty
(
$configdata
[
'showsubmitted'
])
...
...
htdocs/lib/view.php
View file @
4e75d877
...
...
@@ -4570,9 +4570,10 @@ class View {
* @param int $groupid
* @param boolean $membersonly Only return pages owned by members of the group
* @param string $orderby Columns to sort by (defaults to (title, id) if empty)
* @param boolean $hidesubmitted Do not return pages submitted to the group
* @throws AccessDeniedException
*/
public
static
function
get_sharedviews_data
(
$limit
=
10
,
$offset
=
0
,
$groupid
,
$membersonly
=
false
,
$orderby
=
null
)
{
public
static
function
get_sharedviews_data
(
$limit
=
10
,
$offset
=
0
,
$groupid
,
$membersonly
=
false
,
$orderby
=
null
,
$hidesubmitted
=
false
)
{
global
$USER
;
$userid
=
$USER
->
get
(
'id'
);
require_once
(
get_config
(
'libroot'
)
.
'group.php'
);
...
...
@@ -4591,11 +4592,17 @@ class View {
AND (v.stopdate > CURRENT_TIMESTAMP OR v.stopdate IS NULL)
AND NOT EXISTS (SELECT 1 FROM {collection_view} cv WHERE cv.view = v.id)'
;
$ph
=
array
(
$groupid
,
$userid
,
$groupid
);
if
(
$hidesubmitted
)
{
$where
.
=
'AND (v.submittedgroup IS NULL OR v.submittedgroup != ?)'
;
$ph
[]
=
$groupid
;
}
if
(
$membersonly
)
{
$from
.
=
' INNER JOIN {group_member} m2 ON m2.member = v.owner '
;
$where
.
=
' AND m2.group = ? '
;
$ph
[]
=
$groupid
;
}
$count
=
count_records_sql
(
'SELECT COUNT(DISTINCT(v.id)) '
.
$from
.
$where
,
$ph
);
if
(
$orderby
===
null
)
{
$ordersql
=
' ORDER BY v.title, v.id'
;
...
...
@@ -4612,7 +4619,6 @@ class View {
$offset
,
$limit
);
if
(
$viewdata
)
{
View
::
get_extra_view_info
(
$viewdata
,
false
);
}
...
...
@@ -4944,9 +4950,10 @@ class View {
* @param integer $groupid
* @param boolean $membersonly Only return collections owned by members of the gorup
* @param array $sort Columns to sort by (defaults to (title, id) if empty)
* @param boolean $hidesubmitted Do not return collections submitted to the group
* @return array of collections
*/
public
static
function
get_sharedcollections_data
(
$limit
=
10
,
$offset
=
0
,
$groupid
,
$membersonly
=
false
,
$sort
=
null
)
{
public
static
function
get_sharedcollections_data
(
$limit
=
10
,
$offset
=
0
,
$groupid
,
$membersonly
=
false
,
$sort
=
null
,
$hidesubmitted
=
false
)
{
global
$USER
;
$userid
=
$USER
->
get
(
'id'
);
...
...
@@ -4979,6 +4986,11 @@ class View {
$ph
[]
=
$groupid
;
}
if
(
$hidesubmitted
)
{
$where
.
=
'AND (v.submittedgroup IS NULL OR v.submittedgroup != ?)'
;
$ph
[]
=
$groupid
;
}
$count
=
count_records_sql
(
'SELECT COUNT(DISTINCT c.id) '
.
$from
.
$where
,
$ph
);
// NOTE: If you change the number of columns here you may need to change the numeric
// column identifier (10) in the sortorder section
...
...
htdocs/testing/classes/generator/TestingDataGenerator.php
View file @
4e75d877
...
...
@@ -327,13 +327,18 @@ EOD;
$members
[
$ids
[
0
]
->
id
]
=
'member'
;
}
}
if
(
!
empty
(
$record
[
'staff'
]))
{
if
(
!
empty
(
$record
[
'staff'
])
&&
!
empty
(
$record
[
'grouptype'
])
)
{
foreach
(
explode
(
','
,
$record
[
'staff'
])
as
$membername
)
{
$ids
=
get_records_sql_array
(
'SELECT id FROM {usr} WHERE LOWER(TRIM(username)) = ?'
,
array
(
strtolower
(
trim
(
$membername
))));
if
(
!
$ids
||
count
(
$ids
)
>
1
)
{
throw
new
SystemException
(
"Invalid group staff '"
.
$membername
.
"'. The username does not exist or duplicated"
);
}
$members
[
$ids
[
0
]
->
id
]
=
'staff'
;
if
(
$record
[
'grouptype'
]
==
'course'
)
{
$members
[
$ids
[
0
]
->
id
]
=
'tutor'
;
}
else
{
$members
[
$ids
[
0
]
->
id
]
=
'admin'
;
}
}
}
if
(
!
empty
(
$record
[
'admins'
]))
{
...
...
@@ -810,4 +815,4 @@ EOD;
$activity
=
new
ActivityTypeMaharamessage
(
$data
,
false
);
$activity
->
notify_users
();
}
}
\ No newline at end of file
}
test/behat/features/group/edit_group.feature
View file @
4e75d877
...
...
@@ -46,7 +46,7 @@ Scenario: Uploading groups via CSV and editing as an admin (Bug 1420590)
|
userB
|
Kupuhipa1
|
test02@example.com
|
Pete
|
Mc
|
mahara
|
internal
|
member
|
And the following "groups" exist
:
|
name
|
owner
|
description
|
grouptype
|
open
|
invitefriends
|
editroles
|
submittableto
|
allowarchives
|
members
|
staff
|
|
group
01
|
userB
|
This
is
group
01
|
standard
|
ON
|
ON
|
all
|
ON
|
ON
|
admin,
userA
|
admin
|
|
group
01
|
userB
|
This
is
group
01
|
course
|
ON
|
ON
|
all
|
ON
|
ON
|
admin,
userA
|
admin
|
And
I follow
"Logout"
# Logging back in as a user
And
I log in as
"userB"
with password
"Kupuhipa1"
...
...
@@ -59,7 +59,6 @@ Scenario: Uploading groups via CSV and editing as an admin (Bug 1420590)
Then
I
press
"Save
group"
# Checking for regression errors
And
I should not see
"Invalid argument supplied for foreach()"
And
I should not see
"[WAR]"
And
I should see
"Group saved successfully"
And
I follow
"Logout"
# Logging in as Admin
...
...
test/behat/features/group/group_view_block.feature
View file @
4e75d877
...
...
@@ -18,6 +18,8 @@ Background:
|
name
|
owner
|
description
|
grouptype
|
open
|
invitefriends
|
editroles
|
submittableto
|
allowarchives
|
members
|
staff
|
|
Group
Y
|
userA
|
This
is
group
Y
|
standard
|
ON
|
OFF
|
all
|
OFF
|
OFF
|
userB,
userC
|
|
|
Group
Z
|
userA
|
This
is
group
Z
|
standard
|
ON
|
OFF
|
all
|
ON
|
OFF
|
userB,
userC
|
|
|
Group
W
|
userA
|
This
is
group
W
|
standard
|
ON
|
OFF
|
all
|
ON
|
OFF
|
userB,
UserC
|
|
|
Group
X
|
userA
|
This
is
group
X
|
course
|
ON
|
OFF
|
all
|
ON
|
OFF
|
userC
|
userB
|
And the following "pages" exist
:
|
title
|
description
|
ownertype
|
ownername
|
|
Page
userA_01
|
This
is
the
page
01
|
user
|
userA
|
...
...
@@ -47,6 +49,23 @@ Background:
|
Page
Group
Z_06
|
Group
page
06
|
group
|
Group
Z
|
|
Page
Group
Z_07
|
Group
page
07
|
group
|
Group
Z
|
|
Page
Group
Z_08
|
Group
page
08
|
group
|
Group
Z
|
#to test shared/submitted views
|
Page
userC_01
|
This
is
the
page
01
|
user
|
userC
|
|
Page
userC_02
|
This
is
the
page
02
|
user
|
userC
|
|
Page
userC_03
|
This
is
the
page
03
|
user
|
userC
|
|
Page
userC_04
|
This
is
the
page
04
|
user
|
userC
|
|
Page
userC_05
|
This
is
the
page
05
|
user
|
userC
|
|
Page
userC_06
|
This
is
the
page
06
|
user
|
userC
|
|
Page
userC_07
|
This
is
the
page
07
|
user
|
userC
|
|
Page
userC_08
|
This
is
the
page
08
|
user
|
userC
|
|
Page
userC_09
|
This
is
the
page
09
|
user
|
userC
|
|
Page
userC_10
|
This
is
the
page
10
|
user
|
userC
|
|
Page
userC_11
|
This
is
the
page
11
|
user
|
userC
|
|
Page
userC_12
|
This
is
the
page
12
|
user
|
userC
|
|
Page
userC_13
|
This
is
the
page
13
|
user
|
userC
|
|
Page
userC_14
|
This
is
the
page
14
|
user
|
userC
|
|
Page
userC_15
|
This
is
the
page
15
|
user
|
userC
|
|
Page
userC_16
|
This
is
the
page
16
|
user
|
userC
|
And the following "collections" exist
:
|
title
|
description
|
ownertype
|
ownername
|
pages
|
|
Collection
userA_01
|
This
is
the
collection
01
|
user
|
userA
|
Page
userA_06,
Page
userA_12
|
...
...
@@ -55,6 +74,15 @@ Background:
|
Collection
userA_04
|
This
is
the
collection
04
|
user
|
userA
|
Page
userA_09
|
|
Collection
userA_05
|
This
is
the
collection
05
|
user
|
userA
|
Page
userA_10
|
|
Collection
userA_06
|
This
is
the
collection
06
|
user
|
userA
|
Page
userA_11
|
#to test shared/submitted views
|
Collection
userC_01
|
This
is
the
collection
01
|
user
|
userC
|
Page
userC_05
|
|
Collection
userC_02
|
This
is
the
collection
02
|
user
|
userC
|
Page
userC_06
|
|
Collection
userC_03
|
This
is
the
collection
03
|
user
|
userC
|
Page
userC_07
|
|
Collection
userC_04
|
This
is
the
collection
04
|
user
|
userC
|
Page
userC_08
|
|
Collection
userC_05
|
This
is
the
collection
05
|
user
|
userC
|
Page
userC_13
|
|
Collection
userC_06
|
This
is
the
collection
06
|
user
|
userC
|
Page
userC_14
|
|
Collection
userC_07
|
This
is
the
collection
07
|
user
|
userC
|
Page
userC_15
|
|
Collection
userC_08
|
This
is
the
collection
08
|
user
|
userC
|
Page
userC_16
|
Scenario
:
The list of group pages, shared/submitted pages and collections should
be displayed page by page and sorted by "page title (A-Z)" or "most recently updated".
...
...
@@ -99,6 +127,7 @@ These list must take into account the sort option choosen in the block config (B
# Verifying log in was successful
And
I should see
"Tim"
And
I should see
"Group Z"
And
I scroll to the base of id
"groups"
And
I follow
"Group Z"
# Group pages
And
I should see
"Page Group Z_01"
in the
"ul#groupviewlist"
"css_element"
...
...
@@ -240,3 +269,143 @@ These list must take into account the sort option choosen in the block config (B
And
I should see
"Page userB_01"
in the
"ul#allsubmissionlist"
"css_element"
And
I should not see
"Page userA_02"
in the
"ul#allsubmissionlist"
"css_element"
And
I log out
# Check pages and collections are shown in correct section
# Share and submit pages and collections
# Log in as a normal user
Given
I log in as
"userC"
with password
"Kupuhipa1"
# Verifying log in was successful
And
I should see
"Tim"
And
I should see
"Group W"
# Share pages and collections to the standard "Group W"
# Edit access for Page userC_01, Page userC_03, Page userC_04
And
I choose
"Shared by me"
in
"Portfolio"
And
I follow
"Pages"
in the
"div#main-column-container"
"css_element"
And
I click on
"Edit access"
in
"Page userC_01"
row
And
I set the select2 value
"Page userC_01, Page userC_03, Page userC_04"
for
"editaccess_views"
And
I select
"Group W"
from
"accesslist[0][searchtype]"
And
I press
"Save"
# Edit access for Collection userC_01, Collection userC_03, Collection userC_04
And
I choose
"Shared by me"
in
"Portfolio"
And
I follow
"Collections"
in the
"div#main-column-container"
"css_element"
And
I click on
"Edit access"
in
"Collection userC_01"
row
And
I set the select2 value
"Collection userC_01, Collection userC_03, Collection userC_04"
for
"editaccess_collections"
And
I select
"Group W"
from
"accesslist[0][searchtype]"
And
I press
"Save"
# Submit pages and collections to the "Group W" and "Group Z"
And
I choose
"Groups"
And
I follow
"Group W"
And
I select
"Page userC_02"
from
"group_view_submission_form_3_options"
And
I press
"Submit"
And
I press
"Yes"
And
I select
"Page userC_03"
from
"group_view_submission_form_3_options"
And
I press
"Submit"
And
I press
"Yes"
And
I select
"Collection userC_02"
from
"group_view_submission_form_3_options"
And
I press
"Submit"
And
I press
"Yes"
And
I select
"Collection userC_03"
from
"group_view_submission_form_3_options"
And
I press
"Submit"
And
I press
"Yes"
And
I choose
"Groups"
And
I follow
"Group Z"
And
I select
"Page userC_04"
from
"group_view_submission_form_2_options"
And
I press
"Submit"
And
I press
"Yes"
And
I select
"Collection userC_04"
from
"group_view_submission_form_2_options"
And
I press
"Submit"
And
I press
"Yes"
And
I log out
#Check cases
Given
I log in as
"userA"
with password
"Kupuhipa1"
# Verifying log in was successful
And
I should see
"Pete"
And
I should see
"Group W"
And
I follow
"Group W"
And
I should see
"Page userC_01"
in the
"ul#sharedviewlist"
"css_element"
And
I should not see
"Page userC_03"
in the
"ul#sharedviewlist"
"css_element"
And
I should see
"Page userC_04"
in the
"ul#sharedviewlist"
"css_element"
And
I should see
"Page userC_02"
in the
"ul#allsubmissionlist"
"css_element"
And
I should see
"Page userC_03"
in the
"ul#allsubmissionlist"
"css_element"
And
I should see
"Collection userC_01"
in the
"ul#sharedcollectionlist"
"css_element"
And
I should not see
"Collection userC_03"
in the
"ul#sharedcollectionlist"
"css_element"
And
I should see
"Collection userC_04"
in the
"ul#sharedcollectionlist"
"css_element"
And
I should see
"Collection userC_02"
in the
"ul#allsubmissionlist"
"css_element"
And
I should see
"Collection userC_03"
in the
"ul#allsubmissionlist"
"css_element"
And
I log out
Given
I log in as
"userB"
with password
"Kupuhipa1"
# Verifying log in was successful
And
I should see
"Son"
And
I should see
"Group W"
And
I follow
"Group W"
And
I should see
"Page userC_01"
in the
"ul#sharedviewlist"
"css_element"
And
I should not see
"Page userC_02"
in the
"ul#sharedviewlist"
"css_element"
And
I should see
"Page userC_03"
in the
"ul#sharedviewlist"
"css_element"
And
I should see
"Page userC_04"
in the
"ul#sharedviewlist"
"css_element"
And
I should see
"Collection userC_01"
in the
"ul#sharedcollectionlist"
"css_element"
And
I should not see
"Collection userC_02"
in the
"ul#sharedcollectionlist"
"css_element"
And
I should see
"Collection userC_03"
in the
"ul#sharedcollectionlist"
"css_element"
And
I should see
"Collection userC_04"
in the
"ul#sharedcollectionlist"
"css_element"
And
I log out
# Share and submit pages and collections - for course group "Group X"
# Log in as a normal user
Given
I log in as
"userC"
with password
"Kupuhipa1"
# Verifying log in was successful
And
I should see
"Tim"
And
I should see
"Group X"
# Share pages and collections to the "Group X"
# Edit access for Page userC_09, Page userC_11, Page userC_12
And
I choose
"Shared by me"
in
"Portfolio"
And
I follow
"Pages"
in the
"div#main-column-container"
"css_element"
And
I click on
"Edit access"
in
"Page userC_09"
row
And
I set the select2 value
"Page userC_09, Page userC_11, Page userC_12"
for
"editaccess_views"
And
I select
"Group X"
from
"accesslist[0][searchtype]"
And
I press
"Save"
# Edit access for Collection userC_05, Collection userC_07, Collection userC_08
And
I choose
"Shared by me"
in
"Portfolio"
And
I follow
"Collections"
in the
"div#main-column-container"
"css_element"
And
I click on
"Edit access"
in
"Collection userC_05"
row
And
I set the select2 value
"Collection userC_05, Collection userC_07, Collection userC_08"
for
"editaccess_collections"
And
I select
"Group X"
from
"accesslist[0][searchtype]"
And
I press
"Save"
# Submit pages and collections to the "Group X" and "Group Z"
And
I choose
"Groups"
And
I follow
"Group X"
And
I select
"Page userC_10"
from
"group_view_submission_form_4_options"
And
I press
"Submit"
And
I press
"Yes"
And
I select
"Page userC_11"
from
"group_view_submission_form_4_options"
And
I press
"Submit"
And
I press
"Yes"
And
I select
"Collection userC_06"
from
"group_view_submission_form_4_options"
And
I press
"Submit"
And
I press
"Yes"
And
I select
"Collection userC_07"
from
"group_view_submission_form_4_options"
And
I press
"Submit"
And
I press
"Yes"
And
I choose
"Groups"
And
I follow
"Group Z"
And
I select
"Page userC_12"
from
"group_view_submission_form_2_options"
And
I press
"Submit"
And
I press
"Yes"
And
I select
"Collection userC_08"
from
"group_view_submission_form_2_options"
And
I press
"Submit"
And
I press
"Yes"
And
I log out
#Check cases
Given
I log in as
"userB"
with password
"Kupuhipa1"
# Verifying log in was successful
And
I should see
"Son"
And
I should see
"Group X"
And
I follow
"Group X"
And
I should see
"Page userC_09"
in the
"ul#sharedviewlist"
"css_element"
And
I should not see
"Page userC_10"
in the
"ul#sharedviewlist"
"css_element"
And
I should not see
"Page userC_11"
in the
"ul#sharedviewlist"
"css_element"
And
I should see
"Page userC_12"
in the
"ul#sharedviewlist"
"css_element"
And
I should see
"Page userC_10"
in the
"ul#allsubmissionlist"
"css_element"
And
I should see
"Page userC_11"
in the
"ul#allsubmissionlist"
"css_element"
And
I should see
"Collection userC_05"
in the
"ul#sharedcollectionlist"
"css_element"
And
I should not see
"Collection userC_06"
in the
"ul#sharedcollectionlist"
"css_element"
And
I should not see
"Collection userC_07"
in the
"ul#sharedcollectionlist"
"css_element"
And
I should see
"Collection userC_08"
in the
"ul#sharedcollectionlist"
"css_element"
And
I should see
"Collection userC_06"
in the
"ul#allsubmissionlist"
"css_element"
And
I should see
"Collection userC_07"
in the
"ul#allsubmissionlist"
"css_element"
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment