From: <gem...@li...> - 2011-12-22 09:08:43
|
Revision: 383 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=383&view=rev Author: mennodekker Date: 2011-12-22 09:08:36 +0000 (Thu, 22 Dec 2011) Log Message: ----------- Fixed error with patient search, added organization to table and search. TODO: make search refresh too so patients/staff search can be filtered on selected organization Modified Paths: -------------- trunk/library/classes/Gems/Default/LogAction.php Modified: trunk/library/classes/Gems/Default/LogAction.php =================================================================== --- trunk/library/classes/Gems/Default/LogAction.php 2011-12-21 14:09:41 UTC (rev 382) +++ trunk/library/classes/Gems/Default/LogAction.php 2011-12-22 09:08:36 UTC (rev 383) @@ -46,6 +46,23 @@ public $maxPeriod = 1; public $minPeriod = -15; + public function addBrowseTableColumns(MUtil_Model_TableBridge $bridge, MUtil_Model_ModelAbstract $model) + { + // Add edit button if allowed, otherwise show, again if allowed + if ($menuItem = $this->findAllowedMenuItem('edit', 'show')) { + $bridge->addItemLink($menuItem->toActionLinkLower($this->getRequest(), $bridge)); + } + + $html = MUtil_Html::create(); + $br = $html->br(); + + $bridge->addSortable('glua_created'); + $bridge->addSortable('glac_name'); + $bridge->addSortable('glua_message'); + $bridge->addMultiSort('staff_name', $br, 'glua_organization'); + $bridge->addSortable('respondent_name'); + } + public function getAutoSearchElements(MUtil_Model_ModelAbstract $model, array $data) { $elements = parent::getAutoSearchElements($model, $data); @@ -93,19 +110,29 @@ $elements[] = null; // break into separate spans + $elements[] = $this->_('Organization:'); + $sql = 'SELECT gor_id_organization, gor_name FROM gems__organizations'; + $elements[] = $this->_createSelectElement('glua_organization', $sql, $this->_('All organizations')); + $elements[] = $this->_('Staff:'); $sql = "SELECT glua_by, CONCAT(gsf_last_name, ', ', COALESCE(CONCAT(gsf_first_name, ' '), ''), COALESCE(gsf_surname_prefix, '')) AS name " . "FROM gems__log_useractions " . "JOIN gems__staff ON glua_by = gsf_id_user"; + /*if (isset($data['glua_organization']) && !empty($data['glua_organization'])) { + $sql .= ' WHERE glua_organization = ' . $this->db->quote($data['glua_organization']); + }*/ $elements[] = $this->_createSelectElement('glua_by', $sql, $this->_('All staff')); + $elements[] = MUtil_Html::create('br'); $elements[] = $this->_('Patient:'); - $sql = "SELECT glua_by, CONCAT(grs_last_name, ', ', COALESCE(CONCAT(grs_first_name, ' '), ''), COALESCE(grs_surname_prefix, '')) AS name " + $sql = "SELECT glua_to, CONCAT(grs_last_name, ', ', COALESCE(CONCAT(grs_first_name, ' '), ''), COALESCE(grs_surname_prefix, '')) AS name " . "FROM gems__log_useractions " - . "JOIN gems__respondents ON glua_by = grs_id_user"; + . "JOIN gems__respondents ON glua_to = grs_id_user"; + /*if (isset($data['glua_organization']) && !empty($data['glua_organization'])) { + $sql .= ' WHERE glua_organization = ' . $this->db->quote($data['glua_organization']); + }*/ $elements[] = $this->_createSelectElement('glua_to', $sql, $this->_('All patients')); - $elements[] = MUtil_Html::create('br'); $elements[] = $this->_('Action:'); $sql = "SELECT glac_id_action, glac_name " . "FROM gems__log_actions "; @@ -164,6 +191,10 @@ $model->set('glac_name', 'label', $this->_('Action')); $model->set('glua_message', 'label', $this->_('Message')); $model->set('staff_name', 'label', $this->_('Staff')); + + //Not only active, we want to be able to read the log for inactive organizations too + $orgs = $this->db->fetchPairs('SELECT gor_id_organization, gor_name FROM gems__organizations'); + $model->set('glua_organization', 'label', $this->_('Organization'), 'multiOptions', $orgs); $model->set('respondent_name', 'label', $this->_('Respondent')); if ($detailed) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |