Enabled view caching on the enquiry register. will hopefully speed up peformance significantly

This commit is contained in:
Karl Cordes 2009-08-06 15:14:38 +10:00
parent ae1825f1e6
commit c9fe656bfa
5 changed files with 23 additions and 12 deletions

View file

@ -4,7 +4,7 @@ App::import('Core', 'Sanitize');
class EnquiriesController extends AppController { class EnquiriesController extends AppController {
var $name = 'Enquiries'; var $name = 'Enquiries';
var $helpers = array('Html', 'Form', 'Javascript', 'Time', 'Ajax', 'Number', 'Text'); var $helpers = array('Html', 'Form', 'Javascript', 'Time', 'Ajax', 'Number', 'Text', 'Cache');
var $paginate = array( var $paginate = array(
@ -13,16 +13,22 @@ class EnquiriesController extends AppController {
var $components = array('RequestHandler', 'Email'); var $components = array('RequestHandler', 'Email');
var $cacheAction = "1 hour";
function index() { function index() {
$this->Enquiry->recursive = 0; $this->Enquiry->recursive = 0;
$this->set('enquiries', $this->paginate()); $this->set('enquiries', $this->paginate());
$statuses = $this->Enquiry->Status->find('all'); $statuses = $this->Enquiry->Status->find('all');
$status_list = array(); $status_list = array();
foreach ($statuses as $status) { foreach ($statuses as $status) {
$status_list[] = array($status['Status']['id'], $status['Status']['name']); $status_list[] = array($status['Status']['id'], $status['Status']['name']);
} }
$this->set('status_list', $status_list); $this->set('status_list', $status_list);
// $this->set('status_list', $this->Enquiry->Status->find('list'));
} }
function view($id = null) { function view($id = null) {
@ -32,9 +38,11 @@ class EnquiriesController extends AppController {
} }
$enquiry = $this->Enquiry->read(null, $id); $enquiry = $this->Enquiry->read(null, $id);
$this->set('enquiry', $enquiry); $this->set('enquiry', $enquiry);
$this->set('quotes', $this->Enquiry->Quote->find('all', array('conditions'=>array('Quote.enquiry_id'=>$id), 'order'=>'Quote.revision DESC')));
$this->set('quotes', $enquiry['Quote']);
//$this->set('quotes', $this->Enquiry->Quote->find('all', array('conditions'=>array('Quote.enquiry_id'=>$id), 'order'=>'Quote.revision DESC')));
$this->set('files', $this->Enquiry->EnquiryFile->find('all', array('conditions' => array('EnquiryFile.enquiry_id'=>$id), 'order' => 'EnquiryFile.created ASC'))); $this->set('files', $this->Enquiry->EnquiryFile->find('all', array('conditions' => array('EnquiryFile.enquiry_id'=>$id), 'order' => 'EnquiryFile.created ASC')));
$this->set('emails', $this->Enquiry->Email->find('all', array('conditions' => array('Email.enquiry_id'=>$id), 'order' => 'Email.created DESC'))); $this->set('emails', $this->Enquiry->Email->find('all', array('conditions' => array('Email.enquiry_id'=>$id), 'order' => 'Email.created DESC')));
$this->set('number_of_emails', $this->Enquiry->Email->find('count', array('conditions'=>array('Email.enquiry_id'=>$id)))); $this->set('number_of_emails', $this->Enquiry->Email->find('count', array('conditions'=>array('Email.enquiry_id'=>$id))));
$this->set('number_of_quotes', $this->Enquiry->Quote->find('count', array('conditions'=>array('Quote.enquiry_id'=>$id)))); $this->set('number_of_quotes', $this->Enquiry->Quote->find('count', array('conditions'=>array('Quote.enquiry_id'=>$id))));
$this->set('number_of_files', $this->Enquiry->EnquiryFile->find('count', array('conditions' => array('EnquiryFile.enquiry_id'=>$id)))); $this->set('number_of_files', $this->Enquiry->EnquiryFile->find('count', array('conditions' => array('EnquiryFile.enquiry_id'=>$id))));
@ -282,7 +290,7 @@ class EnquiriesController extends AppController {
$this->Email->smtpOptions = array( $this->Email->smtpOptions = array(
'port' => '25', 'port' => '25',
'timeout' => '15', 'timeout' => '15',
'host' => '192.168.0.6'); 'host' => '192.168.0.8');
$this->Email->delivery = 'smtp'; $this->Email->delivery = 'smtp';
$enquiry = $this->Enquiry->read(null, $id); $enquiry = $this->Enquiry->read(null, $id);

View file

@ -6,7 +6,7 @@ class StatesController extends AppController {
var $paginate = array( var $paginate = array(
'States' => array('order' => array('State.id' => 'asc')), 'States' => array('order' => array('State.id' => 'asc')),
'Enquiry' => array('order' => array('Enquiry.id' => 'asc')) 'Enquiry' => array('order' => array('Enquiry.id' => 'asc', 'limit'=> 200))
); );

View file

@ -19,10 +19,10 @@
$i++; $i++;
?> ?>
<tr<?php echo $class;?>> <tr<?php echo $class;?>>
<td><?php echo $quote['Quote']['revision'];?></td> <td><?php echo $quote['revision'];?></td>
<td><?php echo $time->nice($quote['Quote']['created']);?></td> <td><?php echo $time->nice($quote['created']);?></td>
<td class="actions"> <td class="actions">
<?php echo $html->link(__('View', true), array('controller'=> 'quotes', 'action'=>'view', $quote['Quote']['id'])); ?> <?php echo $html->link(__('View', true), array('controller'=> 'quotes', 'action'=>'view', $quote['id'])); ?>
</td> </td>
</tr> </tr>
<?php endforeach; ?> <?php endforeach; ?>
@ -34,3 +34,4 @@
<li><?php echo $html->link(__('New Quote', true), array('controller'=> 'quotes', 'action'=>'add/enquiryid:'.$enquiry['Enquiry']['id']));?> </li> <li><?php echo $html->link(__('New Quote', true), array('controller'=> 'quotes', 'action'=>'add/enquiryid:'.$enquiry['Enquiry']['id']));?> </li>
</ul> </ul>
</div> </div>

View file

@ -1,4 +1,5 @@
<div class="enquiriesindex"> <div class="enquiriesindex">
<h2><?php __('Master Enquiry Register');?></h2> <h2><?php __('Master Enquiry Register');?></h2>
<? echo $this->element('enquiry_table', $enquiries, $status_list); ?> <? echo $this->element('enquiry_table', $enquiries, $status_list, array('cache'=>'+1 day')); ?>
</div> </div>

View file

@ -118,7 +118,7 @@ $boxdata['enquirynumber'] = $enquiry['Enquiry']['title'];
<div class="related"> <div class="related">
<h3><?php __($number_of_emails.' Emails for this Enquiry');?><?php echo $html->image('internet-mail.png'); ?></h3> <h3><?php __($number_of_emails.' Emails for this Enquiry');?><?php echo $html->image('internet-mail.png'); ?></h3>
<?php echo $this->element('email_table_ajax', $emails); ?> <?php echo $this->element('email_table_ajax', $enquiry); ?>
</div> </div>
@ -131,3 +131,4 @@ $boxdata['enquirynumber'] = $enquiry['Enquiry']['title'];
<h3><?php __($number_of_files.' Files in this Enquiry');?><?php echo $html->image('document.png'); ?></h3> <h3><?php __($number_of_files.' Files in this Enquiry');?><?php echo $html->image('document.png'); ?></h3>
<?php echo $this->element('enquiry_file_table', $files); ?> <?php echo $this->element('enquiry_file_table', $files); ?>
</div> </div>