def test_default_expression_context(self):
        """
        Test that the default expression context used to render TAL and TALES in the
        Analytics report is populated with the correct objects.
        """

        analytics_tool = getToolByName(self.portal, 'portal_analytics', None)
        report = analytics_tool['site-visits-line']

        context = self.portal
        request = self.portal.REQUEST

        renderer = getMultiAdapter((context, request, report),
                                   interface=IAnalyticsReportRenderer)

        expression = 'python:[context, request, today, date, timedelta, unique_list]'

        result = [
            self.portal,
            self.portal.REQUEST,
            datetime.date.today(),
            getDate,
            getTimeDelta,
            unique_list,
        ]

        exp_context = renderer._getExpressionContext()
        evaluated_exp = evaluateTALES(expression, exp_context)
        self.assertEqual(evaluated_exp, result)
    def test_default_expression_context(self):
        """
        Test that the default expression context used to render TAL and TALES in the
        Analytics report is populated with the correct objects.
        """

        analytics_tool = getToolByName(self.portal, 'portal_analytics', None)
        report = analytics_tool['site-visits-line']

        context = self.portal
        request = self.portal.REQUEST

        renderer = getMultiAdapter(
            (context, request, report),
            interface=IAnalyticsReportRenderer
        )

        expression = 'python:[context, request, today, date, timedelta, unique_list]'

        result = [
            self.portal,
            self.portal.REQUEST,
            datetime.date.today(),
            getDate,
            getTimeDelta,
            unique_list,
        ]

        exp_context = renderer._getExpressionContext()
        evaluated_exp = evaluateTALES(expression, exp_context)
        self.assertEqual(evaluated_exp, result)
Example #3
0
    def _getVisualization(self):
        """
        Returns an AnalyticsReportVisualization for this report.
        """

        # Evaluate the visualization options.
        exp_context = self._getExpressionContext()
        options = evaluateTALES(dict([v.split(' ', 1) for v in self.report.viz_options]), exp_context)

        return AnalyticsReportVisualization(self.report, self.columns(), self.rows(), options)
    def columns(self):
        """
        Returns the evaluated table column headings.
        """

        values_context = {
            'dimension': self.dimension,
            'metric': self.metric,
            'possible_dates': self.possible_dates,
        }

        columns_context = self._getExpressionContext(values_context)
        return evaluateTALES(self.report.columns, columns_context)
Example #5
0
    def columns(self):
        """
        Returns the evaluated table column headings.
        """

        values_context = {
            'dimension': self.dimension,
            'metric': self.metric,
            'possible_dates': self.possible_dates,
        }

        columns_context = self._getExpressionContext(values_context)
        return evaluateTALES(self.report.columns, columns_context)
    def rows(self):
        """
        Returns the evaluated table rows.
        """

        values_vars = {
            'dimension': self.dimension,
            'metric': self.metric,
            'possible_dates': self.possible_dates,
        }

        repeat_context = self._getExpressionContext(values_vars)
        repeat = evaluateTALES(self.report.row_repeat, repeat_context)

        rows = []

        row_vars = values_vars.copy()
        row_vars.update({'columns': self.columns()})
        for row in repeat:
            row_vars['row'] = row
            row_context = self._getExpressionContext(row_vars)
            rows.append(evaluateTALES(self.report.rows, row_context))

        return rows
Example #7
0
    def rows(self):
        """
        Returns the evaluated table rows.
        """

        values_vars = {
            'dimension': self.dimension,
            'metric': self.metric,
            'possible_dates': self.possible_dates,
        }

        repeat_context = self._getExpressionContext(values_vars)
        repeat = evaluateTALES(self.report.row_repeat, repeat_context)

        rows = []

        row_vars = values_vars.copy()
        row_vars.update({'columns': self.columns()})
        for row in repeat:
            row_vars['row'] = row
            row_context = self._getExpressionContext(row_vars)
            rows.append(evaluateTALES(self.report.rows, row_context))

        return rows
    def query_criteria(self):
        """
        Returns the evaluated query criteria.
        """

        expressions = {
            'dimensions': list(self.report.dimensions),
            'metrics': list(self.report.metrics),
            'filters': list(self.report.filters),
            'sort': list(self.report.sort),
            'start_date': str(self.report.start_date),
            'end_date': str(self.report.end_date),
            'max_results': str(self.report.max_results),
        }

        criteria = evaluateTALES(expressions, self._getExpressionContext())
        criteria['ids'] = self.profile_ids()

        for plugin in self.plugins:
            plugin.processQueryCriteria(criteria)

        return criteria
Example #9
0
    def query_criteria(self):
        """
        Returns the evaluated query criteria.
        """

        expressions = {
            'dimensions': list(self.report.dimensions),
            'metrics': list(self.report.metrics),
            'filters': list(self.report.filters),
            'sort': list(self.report.sort),
            'start_date': str(self.report.start_date),
            'end_date': str(self.report.end_date),
            'max_results': str(self.report.max_results),
        }

        criteria = evaluateTALES(expressions, self._getExpressionContext())
        criteria['ids'] = self.profile_ids()

        for plugin in self.plugins:
            plugin.processQueryCriteria(criteria)

        return criteria