public function get_read(array $args) { parent::get_read($args); $this->data['groups'] = array(); $this->data['is_challenger'] = $this->is_challenger(); if ($this->data['is_challenger']) { $this->data['groups_url'] = midgardmvc_core::get_instance()->dispatcher->generate_url('index', array(), 'fi_openkeidas_groups'); $this->data['update_url'] = $this->get_url_update(); $this->data['delete_url'] = midgardmvc_core::get_instance()->dispatcher->generate_url('challenge_delete', array('challenge' => $this->object->guid), $this->request); } $activityobject = null; if ($this->object->activity) { $activityobject = fi_openkeidas_diary_activities::get($this->object->activity); } $this->object->activityobject = $activityobject; $this->data['challenger'] = new fi_openkeidas_groups_group($this->object->challenger); $mc = new midgard_collector('fi_openkeidas_diary_challenge_participant', 'challenge', $this->object->id); //$mc->add_constraint('metadata.isapproved', '=', true); $mc->set_key_property('grp'); $mc->execute(); $grp_ids = array_keys($mc->list_keys()); if (count($grp_ids) == 0) { return; } $qb = new midgard_query_builder('fi_openkeidas_groups_group'); $qb->add_constraint('id', 'IN', $grp_ids); $qb->add_order('metadata.score', 'DESC'); $this->data['groups'] = array_map(function ($group) use($activityobject) { $group->url = midgardmvc_core::get_instance()->dispatcher->generate_url('group_read', array('group' => $group->guid), 'fi_openkeidas_groups'); $group->activity = fi_openkeidas_diary_logs::group_duration_this_week($group, $activityobject); return $group; }, $qb->execute()); }
public function get_list(array $args) { midgardmvc_core::get_instance()->authorization->require_user(); $this->data['form'] = $this->get_list_form(); $activity = null; $activity_filter = $this->data['form']->sport->get_value(); if ($activity_filter) { $activity = fi_openkeidas_diary_activities::get($activity_filter); } $request = $this->request; $this->data['entries'] = array_map(function ($entry) use($request) { $entry->update_url = midgardmvc_core::get_instance()->dispatcher->generate_url('log_update', array('entry' => $entry->guid), $request); $entry->delete_url = midgardmvc_core::get_instance()->dispatcher->generate_url('log_delete', array('entry' => $entry->guid), $request); $entry->sport = fi_openkeidas_diary_activities::get_title($entry->activity); return $entry; }, fi_openkeidas_diary_logs::within($this->data['form']->from->get_value(), $this->data['form']->to->get_value(), array(midgardmvc_core::get_instance()->authentication->get_person()->id), $activity)); }