Пример #1
0
 def report_generation(self, id1):
     """
     generate all enabled report elements: dataset, pivots, charts
     """
     # get instance
     instance, meas_time = self.get_saved_instance()
     self._jfile.set_meas_time(meas_time)
     
     # create dataset instance
     data_set_instance = self._process_instance(instance, meas_time, update_columns = False, write_clear_headers = True, segment_value = self._segment_value)
     
     fetched_rows = len(instance['data'])
     
     #prepare data for charts
     all_data = dict()
     all_data[0] = data_set_instance.get_formatted_header_rows()
                             
     # create all pivots
     for pivot in self._pivots:
         #data_set_pivot_instance = self._process_pivot(pivot, data_set_instance, self._segment_value)
         data_set_pivot_instance = self._process_pivot(pivot, data_set_instance)
         all_data[pivot['report_data_set_pivot_id']] = data_set_pivot_instance.get_formatted_header_rows()
     
     # create all charts
     chart_gen = ChartGenerator()
     chart_gen.report_charts(self._id, self._segment_value_id, meas_time, 0, all_data, self._jfile, chart_id = 0)
     self._make_meta()
     return fetched_rows
Пример #2
0
    def pivot_generation(self, id1):
        """
        generate pivot and charts based on this pivot
        """
        # take all the pivots including disabled
        self._pivots = self._get_pivots(enabled_only = False)

        # check if there any pivots
        if not self._pivots:
            raise Exception("Report has no pivots")
        if not id1:
            raise Exception("Pivot id is not specified")
        
        #get enabled charts
        self._charts = self._get_charts()
        
        # find specified pivot
        pivots = filter(lambda pivot: pivot['report_data_set_pivot_id'] == id1, self._pivots)
        if not pivots:
            raise Exception("Incorrect pivot id")
        pivot = pivots[0]
        
        # get all chart based on current pivot
        pivot_charts = filter(lambda chart: chart['report_data_set_pivot_id'] == id1, self._charts)
        
        # get instance
        instance, meas_time = self.get_saved_instance()
        self._jfile.set_meas_time(meas_time)
        
        if not instance:
            raise Exception("Cannot create pivot. Dataset is empty.")

        # create dataset instance
        data_set_instance = self._process_instance(instance, meas_time, update_columns=False, write_clear_headers = True, segment_value = self._segment_value)

        # create pivot instance
        #data_set_pivot_instance = self._process_pivot(pivot, data_set_instance, self._segment_value)
        data_set_pivot_instance = self._process_pivot(pivot, data_set_instance)
        
        #prepare pivot data for charts
        pivot_formatted_header_rows = data_set_pivot_instance.get_formatted_header_rows()
        
        all_data = dict()
        all_data[pivot['report_data_set_pivot_id']] = pivot_formatted_header_rows
        
        chart_gen = ChartGenerator()

        for pivot_chart in pivot_charts:
            chart_gen.report_charts(self._id, self._segment_value_id, meas_time, 0, all_data, self._jfile, chart_id = pivot_chart['report_data_set_chart_id'])
        
        return len(pivot_formatted_header_rows['rows'])
Пример #3
0
    def _chart_process(self, id1, command):
        """
        process chart 
        """
        # take all the pivots including disabled 
        self._pivots = self._get_pivots(enabled_only = False)
        
        # take all the charts including disabled 
        self._charts = self._get_charts(enabled_only = False)

        # check if there any charts
        if not self._charts:
            raise Exception("report has no chart")
        if not id1:
            raise Exception("chart id is not specified")
        
        
        # find specified chart
        charts = filter(lambda chart: chart['report_data_set_chart_id'] == id1, self._charts)

        if not charts:
            raise Exception("Incorrect chart id")
        chart = charts[0]

        all_data = dict()
        
        
        # get instance
        instance, meas_time = self.get_saved_instance()
        self._jfile.set_meas_time(meas_time)
         
        
        if not instance:
            raise Exception("Cannot create chart. Dataset is empty.")
        
        # create dataset instance
        data_set_instance = self._process_instance(instance, meas_time, update_columns = False, write_clear_headers = True, segment_value = self._segment_value)
        
        
        if chart['report_data_set_pivot_id']:
            # get pivot data
            index = chart['report_data_set_pivot_id']
            pivots = filter(lambda pivot: pivot['report_data_set_pivot_id'] == index, self._pivots)
            pivot = pivots[0]
            #data_set_pivot_instance = self._process_pivot(pivot, data_set_instance, self._segment_value)
            data_set_pivot_instance = self._process_pivot(pivot, data_set_instance)
            formatted_header_rows = data_set_pivot_instance.get_formatted_header_rows()
        else:
            # get dataset
            index = 0
            formatted_header_rows = data_set_instance.get_formatted_header_rows()

        if not formatted_header_rows:
            raise Exception("Cannot create chart. Dataset is empty.")

        #prepare data for charts
        all_data[index] = formatted_header_rows
        if command == 'generate':
            chart_gen = ChartGenerator()
            chart_gen.report_charts(self._id, self._segment_value_id, meas_time, 0, all_data, self._jfile, chart['report_data_set_chart_id'])
        elif command == 'populate':
            self._populate_row_values([chart], all_data)
        return 0