|
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.
|