コード例 #1
0
 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());
 }
コード例 #2
0
ファイル: log.php プロジェクト: nemein/fi_openkeidas_diary
 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));
 }