From: <gem...@li...> - 2012-09-19 13:08:27
|
Revision: 946 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=946&view=rev Author: mennodekker Date: 2012-09-19 13:08:21 +0000 (Wed, 19 Sep 2012) Log Message: ----------- Allow export to work with new display event Modified Paths: -------------- trunk/library/classes/Gems/Export/RespondentExport.php trunk/library/snippets/TrackAnswersModelSnippet.php Modified: trunk/library/classes/Gems/Export/RespondentExport.php =================================================================== --- trunk/library/classes/Gems/Export/RespondentExport.php 2012-09-19 12:02:57 UTC (rev 945) +++ trunk/library/classes/Gems/Export/RespondentExport.php 2012-09-19 13:08:21 UTC (rev 946) @@ -47,16 +47,13 @@ protected $_reportHeader = 'Export_ReportHeaderSnippet'; protected $_respondentSnippet = 'Export_RespondentSnippet'; - protected $_groupedSurveySnippet = 'TrackAnswersModelSnippet'; - protected $_singleSurveySnippet = 'AnswerModelSnippet'; - /** * * @var GemsEscort */ public $escort; - private $html; + protected $html; /** * @@ -169,22 +166,42 @@ continue; } + $showToken = false; if ($engine->getTrackType() == 'S' || !$groupSurveys) { - $this->html->snippet('Export_SurveyHeaderSnippet', 'token', $token); - $this->html->snippet($this->_singleSurveySnippet, 'token', $token, 'tokenId', $token->getTokenId(), - 'showHeaders', false, 'showButtons', false, 'showSelected', false, 'showTakeButton', false); - - $this->html->br(); + // For single survey tracks or when $groupSurvey === false we show all tokens + $showToken = true; } else { + // For multi survey tracks and $groupSurveys === true, we show only the first token + // as the snippet takes care of showing the other tokens if (!isset($surveys[$token->getSurveyId()])) { - $surveys[$token->getSurveyId()] = true; + $showToken = true; + } + } - $this->html->snippet('Export_SurveyHeaderSnippet', 'token', $token); - $this->html->snippet($this->_groupedSurveySnippet, 'token', $token, 'tokenId', $token->getTokenId(), - 'showHeaders', false, 'showButtons', false, 'showSelected', false, 'showTakeButton', false); + if ($showToken) { + $params = array( + 'token' => $token, + 'tokenId' => $token->getTokenId(), + 'showHeaders' => false, + 'showButtons' => false, + 'showSelected' => false, + 'showTakeButton' => false, + 'grouped' => $groupSurveys); + + $snippets = $token->getAnswerSnippetNames(); + + if (is_array($snippets)) { + list($snippets, $snippetParams) = MUtil_Ra::keySplit($snippets); + $params = $params + $snippetParams; + } + + $this->html->snippet('Export_SurveyHeaderSnippet', 'token', $token); + + foreach($snippets as $snippet) { + $this->html->snippet($snippet, $params); + } - $this->html->br(); - } + $this->html->br(); } $token = $token->getNextToken(); Modified: trunk/library/snippets/TrackAnswersModelSnippet.php =================================================================== --- trunk/library/snippets/TrackAnswersModelSnippet.php 2012-09-19 12:02:57 UTC (rev 945) +++ trunk/library/snippets/TrackAnswersModelSnippet.php 2012-09-19 13:08:21 UTC (rev 946) @@ -48,6 +48,14 @@ class TrackAnswersModelSnippet extends Gems_Tracker_Snippets_AnswerModelSnippetGeneric { /** + * Use compact view and show all tokens of the same surveyId in + * one view. Property used by respondent export + * + * @var boolean + */ + public $grouped = true; + + /** * Overrule to implement snippet specific filtering and sorting. * * @param MUtil_Model_ModelAbstract $model @@ -57,8 +65,12 @@ if ($this->request) { $this->processSortOnly($model); - $filter['gto_id_respondent_track'] = $this->token->getRespondentTrackId(); - $filter['gto_id_survey'] = $this->token->getSurveyId(); + if ($this->grouped) { + $filter['gto_id_respondent_track'] = $this->token->getRespondentTrackId(); + $filter['gto_id_survey'] = $this->token->getSurveyId(); + } else { + $filter['gto_id_token'] = $this->token->getTokenId(); + } $model->setFilter($filter); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |