protected function getSourceList($validAfter, $firstRound, $detailed = true)
    {
        if (! ($validAfter || $this->project->isValidUntilRequired())) {
            $results[self::NO_TABLE] = array($this->_('Does not expire'));
        }
        if (! ($validAfter && $firstRound)) {
            $results[self::ANSWER_TABLE] = array($this->_('Answers'), $this->_('Use an answer from a survey.'));
        }
        if ($this->_fieldsDefinition->hasAppointmentFields()) {
            $results[self::APPOINTMENT_TABLE] = array(
                $this->_('Appointment'),
                $this->_('Use an appointment linked to this track.'),
                );
        }
        if (! ($validAfter && $firstRound)) {
            $results[self::TOKEN_TABLE]  = array($this->_('Token'), $this->_('Use a standard token date.'));
        }
        $results[self::RESPONDENT_TRACK_TABLE] = array($this->_('Track'), $this->_('Use a track level date.'));

        if ($detailed) {
            foreach ($results as $key => $value) {
                if (is_array($value)) {
                    $results[$key] = \MUtil_Html::raw(sprintf('<strong>%s</strong> %s', reset($value), next($value)));
                }
            }
        } else {
            foreach ($results as $key => $value) {
                if (is_array($value)) {
                    $results[$key] = reset($value);
                }
            }
        }

        return $results;
    }