def _generate_data_with_time(self, config, search_results_collection, search_configuration): data_columns = [{'type':'string', 'name':'Time'}] data_rows = [] data_dimensions_value = config['data_dimensions'][0]['value'] start_time, end_time = self._extract_time_bounds_from_search_configuration(search_configuration) time_interval = int((end_time - start_time) / self.steps_backwards) array_of_start_times = range(start_time, end_time, time_interval) results_data_columns = [] for search_result in search_results_collection: facets = [fg for fg in search_result['facet_groups'] if fg['name'] == data_dimensions_value['value']][0]['facets'] for f in facets: if f['name'] not in results_data_columns: results_data_columns.append(f['name']) data_columns += [{'type':'number', 'name':'%s' % c } for c in results_data_columns] number_of_empty_ranges = 0 for x in range(len(array_of_start_times)): if x >= len(search_results_collection): continue search_result = search_results_collection[x] start_time_pretty = get_pretty_date(array_of_start_times[x] + time_interval) data_row = [start_time_pretty] facets = [fg for fg in search_result['facet_groups'] if fg['name'] == data_dimensions_value['value']][0]['facets'] dynamic_data_rows = [] for c in results_data_columns: candidate_facet = [f for f in facets if f['name'] == c] if candidate_facet: dynamic_data_rows.append(candidate_facet[0]['count']) else: dynamic_data_rows.append(0) if not sum(dynamic_data_rows): number_of_empty_ranges += 1 data_row += dynamic_data_rows data_rows.append(data_row) return data_columns, data_rows
def _pretty_date(self, time=False): return get_pretty_date(time)
def _get_pretty_date(self, time_value, days_in_time_range): if days_in_time_range: formatted_time = datetime.date.fromtimestamp(time_value).strftime('%m/%d/%y') else: formatted_time = get_pretty_date(time_value) return formatted_time