show RSVPs for an event

This commit is contained in:
Evan Prodromou 2011-03-09 10:40:49 -05:00
parent 1e4e9a8456
commit 728869e311
3 changed files with 33 additions and 0 deletions

View File

@ -321,6 +321,8 @@ class EventPlugin extends MicroappPlugin
$out->elementEnd('h3');
// FIXME: better dates
$out->elementStart('div', 'event-times');
$out->element('abbr', array('class' => 'dtstart',
'title' => common_date_iso8601($event->start_time)),
@ -339,6 +341,14 @@ class EventPlugin extends MicroappPlugin
$out->element('div', 'location', $event->location);
}
$rsvps = $event->getRSVPs();
$out->element('div', 'event-rsvps',
sprintf(_('Yes: %d No: %d Maybe: %d'),
count($rsvps[RSVP::POSITIVE]),
count($rsvps[RSVP::NEGATIVE]),
count($rsvps[RSVP::POSSIBLE])));
$out->elementStart('div', array('class' => 'event-info entry-content'));
$avatar = $profile->getAvatar(AVATAR_MINI_SIZE);

View File

@ -205,4 +205,9 @@ class Happening extends Managed_DataObject
{
return Happening::staticGet('uri', $notice->uri);
}
function getRSVPs()
{
return RSVP::forEvent($this);
}
}

View File

@ -196,4 +196,22 @@ class RSVP extends Managed_DataObject
{
return RSVP::staticGet('uri', $notice->uri);
}
static function forEvent($event)
{
$rsvps = array(RSVP::POSITIVE => array(), RSVP::NEGATIVE => array(), RSVP::POSSIBLE => array());
$rsvp = new RSVP();
$rsvp->event_id = $event->id;
if ($rsvp->find()) {
while ($rsvp->fetch()) {
$verb = $this->verbFor($rsvp->code);
$rsvps[$verb][] = clone($rsvp);
}
}
return $rsvps;
}
}