Changeset 20537

Show
Ignore:
Timestamp:
10/03/08 01:54:41 (3 months ago)
Author:
yandod
Message:

スキーマ変更シェル・懇親会の参加・懇親会の追加参加・キャンセル を実装。リファクタリングは後で。

Location:
websites/events.php.gr.jp/trunk/app
Files:
1 added
3 modified

Legend:

Unmodified
Added
Removed
  • websites/events.php.gr.jp/trunk/app/controllers/event_attendees_controller.php

    r18489 r20537  
    7171    } 
    7272 
     73    function party($id) 
     74    { 
     75        $event_attendee = $this->EventAttendee->findById($id); 
     76        if (!$event_attendee) { 
     77            $this->redirect('/'); 
     78        } 
     79 
     80        if ($this->Session->read('role') == 'admin' || $this->Session->read('id') == $event_attendee['EventAttendee']['user_id']) { 
     81            $event_attendee['EventAttendee']['party'] = 1; 
     82            $this->EventAttendee->save($event_attendee); 
     83        } 
     84 
     85        $this->redirect('/events/show/' . $event_attendee['EventAttendee']['event_id']); 
     86    } 
     87     
     88    function party_cancel($id) 
     89    { 
     90        $event_attendee = $this->EventAttendee->findById($id); 
     91        if (!$event_attendee) { 
     92            $this->redirect('/'); 
     93        } 
     94 
     95        if ($this->Session->read('role') == 'admin' || $this->Session->read('id') == $event_attendee['EventAttendee']['user_id']) { 
     96            $event_attendee['EventAttendee']['party'] = 0; 
     97            $this->EventAttendee->save($event_attendee); 
     98        } 
     99 
     100        $this->redirect('/events/show/' . $event_attendee['EventAttendee']['event_id']); 
     101    } 
    73102} 
    74103?> 
  • websites/events.php.gr.jp/trunk/app/controllers/events_controller.php

    r19533 r20537  
    1616    var $name = 'Event'; 
    1717    var $helpers = array('Rss', 'Datespan', 'Javascript'); 
    18     var $uses = array('Event', 'Trackback'); 
     18    var $uses = array('Event', 'Trackback','User'); 
    1919 
    2020    /** 
     
    7979 
    8080        $this->Event->EventComment->bindModel(array('belongsTo' => $has_one2)); 
    81         $this->Event->EventAttendee->bindModel(array('belongsTo' => $has_one2)); 
    82  
     81        //$this->Event->EventAttendee->bindModel(array('belongsTo' => $has_one2)) 
     82         
    8383        $re = $this->Event->findById($id, null, null, 2); 
    8484        if (!$re) { 
     
    8888 
    8989        $attendee_count = 0; 
     90        $party_count = 0; 
    9091        $joined = false; 
    9192        $canceled = false; 
     93        $user_id_list = array(); 
    9294        foreach ($re['EventAttendee'] as $row) { 
     95                $user_id_list[] = $row['user_id']; 
    9396            // 自分が参加していたらフラグをたてる 
    94             if ($this->Session->read('id') == $row['User']['id']) { 
     97            if ($this->Session->read('id') == $row['user_id']) { 
    9598                $joined = true; 
    9699                if ($row['canceled'] == 1) { 
     
    102105                $attendee_count++; 
    103106            } 
    104         } 
    105  
     107            if ($row['canceled'] != 1 && $row['party'] == 1) { 
     108                $party_count++; 
     109            }             
     110        } 
     111 
     112        $cond = array( 
     113                'id' => $user_id_list 
     114        ); 
     115        $user = Set::combine($this->User->find('all',array('conditions' =>$cond)),'{n}.User.id','{n}.User.nickname'); 
     116 
     117        $this->set('user',$user); 
    106118        $this->set('joined', $joined); 
    107119        $this->set('canceled', $canceled); 
    108120        $this->set('attendee_count', $attendee_count); 
     121        $this->set('party_count', $party_count); 
    109122        $this->set('attendee_nokori', $re['Event']['max_register'] - $attendee_count); 
    110123        $this->set('is_over', $this->Event->isOver($id)); 
  • websites/events.php.gr.jp/trunk/app/views/event/show.ctp

    r19088 r20537  
    4444<li>募集人数:<?php echo $data['Event']['max_register']; ?></li> 
    4545<li>現在の参加人数:<?php echo $attendee_count; ?></li> 
     46<li>懇親会参加人数:<?php echo $party_count; ?></li> 
    4647<li>残り:<?php echo $attendee_nokori; ?></li> 
    4748</ul> 
     
    4950<div align="center"> 
    5051<table> 
    51   <tr><th>name</th><th>comment</th><th>timestamp</th><th>action</th></tr> 
     52  <tr><th>name</th><th>comment</th><th>party</th><th>timestamp</th><th>action</th></tr> 
    5253  <?php foreach ($data['EventAttendee'] as $key => $item): ?> 
    5354 
     
    6162    <?php endif; ?> 
    6263  <?php endif; ?> 
    63     <td><?php echo $item['User']['nickname']; ?></td> 
     64    <td><?php echo $user[$item['user_id']]; ?></td> 
    6465    <td><?php echo h($item['comment']); ?></td> 
     66    <td style="text-align:center"><?php if ($item['party']) echo '○'; ?></td> 
    6567    <td><?php echo $item['created']; ?></td> 
    66     <td> 
     68    <td style="text-align:center"> 
    6769    <?php /* 自分のでまだキャンセルしてなかったらキャンセルリンクを出す */ ?> 
    68     <?php if ($item['User']['id'] == $session->read('id') && ($item['canceled'] != 1)): ?> 
    69       <?php echo $html->link('cancel', '/event_attendees/cancel/'.$item['id'], null, 'ドタキャン対策の為、キャンセルするとそのイベントには二度と参加できません。キャンセルしますか?'); ?> 
     70    <?php if ($item['user_id'] == $session->read('id') && ($item['canceled'] != 1)): ?> 
     71      <?php echo $html->link('キャンセル', '/event_attendees/cancel/'.$item['id'], null, 'ドタキャン対策の為、キャンセルするとそのイベントには二度と参加できません。キャンセルしますか?'); ?> 
    7072    <?php endif; ?> 
    7173    <?php if (($session->read('role') == 'admin') && ($item['canceled'] == 1)): ?> 
    7274      &nbsp;<?php echo $html->link('キャンセル解除', '/event_attendees/cancelrevert/'.$item['id']); ?> 
     75    <?php endif; ?> 
     76    <?php if ($item['user_id'] == $session->read('id')): ?> 
     77    <?php if (($item['canceled'] != 1) && ($item['party'] == "0")): ?> 
     78      <?php echo $html->link('懇親会に追加参加', '/event_attendees/party/'.$item['id'], null); ?> 
     79    <?php else: ?> 
     80      <?php echo $html->link('懇親会のみ辞退', '/event_attendees/party_cancel/'.$item['id'], null); ?>     
     81    <?php endif; ?> 
    7382    <?php endif; ?> 
    7483    </td> 
     
    7685  <?php endforeach; ?> 
    7786  <tr> 
    78     <td colspan="4"> 
     87    <td colspan="5"> 
    7988    <?php if ($session->check('id')): ?> 
    8089      <p><strong>イベントに参加する</strong></p> 
     
    102111        <?php echo $form->hidden('EventAttendee.event_id', array('value' => $event_id)); ?> 
    103112        <?php echo $form->input('EventAttendee.comment', array('type' => 'text', 'size' => '45')); ?> 
     113        <?php echo $form->checkbox('EventAttendee.party', array('value' => '1')); ?>懇親会に参加する         
    104114        <?php echo $form->end('参加する'); ?> 
    105115      <?php endif; ?>