Fix for background recalculation of groups; needs to get Group objects not IDs; also don't list any groups for repeats to match saveGroups behavior

todo: merge calculation portion with saveGroups so they don't get out of sync
This commit is contained in:
Brion Vibber 2010-01-15 13:06:21 -08:00
parent 963260d262
commit d35faa04c1
1 changed files with 21 additions and 3 deletions

View File

@ -826,6 +826,10 @@ class Notice extends Memcached_DataObject
return $ids;
}
/**
* @param $groups array of Group *objects*
* @param $recipients array of profile *ids*
*/
function whoGets($groups=null, $recipients=null)
{
$c = self::memcache();
@ -925,6 +929,9 @@ class Notice extends Memcached_DataObject
return $ids;
}
/**
* @return array of Group objects
*/
function saveGroups()
{
// Don't save groups for repeats
@ -1117,11 +1124,22 @@ class Notice extends Memcached_DataObject
return $ids;
}
/**
* Same calculation as saveGroups but without the saving
* @fixme merge the functions
* @return array of Group objects
*/
function getGroups()
{
// Don't save groups for repeats
if (!empty($this->repeat_of)) {
return array();
}
// XXX: cache me
$ids = array();
$groups = array();
$gi = new Group_inbox();
@ -1132,13 +1150,13 @@ class Notice extends Memcached_DataObject
if ($gi->find()) {
while ($gi->fetch()) {
$ids[] = $gi->group_id;
$groups[] = clone($gi);
}
}
$gi->free();
return $ids;
return $groups;
}
function asAtomEntry($namespace=false, $source=false)