def error_graphic(self): from atrinsic.web.openFlashChart_varieties import Styler from atrinsic.web import openFlashChart chart = openFlashChart.template('No data to display') chart.set_bg_colour(colour='#ffffff') Style = Styler('lines') plot1 = Style(text = "No data to display", fontsize = 20, values = []) chart.add_element(plot1) return chart.encode()
def get_flash_chart_data(request, chart_type, start_date, end_date): from datetime import datetime from atrinsic.web import openFlashChart from atrinsic.web.openFlashChart_varieties import Styler table_id = request.GET.get('table_id') report_type = request.GET.get('report_type') max_results = request.GET.get('max_results') sort = request.GET.get('sort') filters = request.GET.get('filters') if request.session.has_key("analytics"): aa_obj = request.session['analytics'] else: user = Users.objects.get(organization=request.organization) aa_obj = AqAnalytics(user_name=user.email, password=user.password) aa_obj.authenticate() report, row_count, is_valid = aa_obj.DataFeedQuery(start_date, end_date, table_id, report_type, 'array', sort, filters, max_results, chart_type) Style = Styler(chart_type[6:]) labels = [] var1 = [] var2 = [] for row in report[0]: try: labels.append(row[0]) except: pass try: var1.append(row[1]) except: pass try: var2.append(row[2]) except: pass chart = openFlashChart.template('') chart.set_bg_colour(colour='#ffffff') if len(var1) > 0: range_y1_min = round(float(min(var1)) * 0.95, 0) range_y1_max = round(float(max(var1)) * 1.05, 0) range_y1_steps = round(round(float(max(var1)) * 1.05, 0) / 10, 0) else: if len(var2) > 0: range_y1_min = round(float(min(var2)) * 0.95, 0) range_y1_max = round(float(max(var2)) * 1.05, 0) range_y1_steps = round(round(float(max(var2)) * 1.05, 0) / 10, 0) else: range_y1_min = 0 range_y1_max = 0 range_y1_steps = 0 if len(var2) > 0: range_y2_min = round(float(min(var2)) * 0.95, 0) range_y2_max = round(float(max(var2)) * 1.05, 0) range_y2_steps = round(round(float(max(var2)) * 1.05, 0) / 10, 0) else: range_y2_min = 0 range_y2_max = 0 range_y2_steps = 0 chart.set_y_axis(min=range_y1_min, max=range_y1_max, steps=range_y1_steps) if (range_y2_steps > 0): chart.set_y_axis_right(min=range_y2_min, max=range_y2_max, steps=range_y2_steps), chart.set_x_axis(labels={'labels': labels, 'rotate': 'vertical'}) plot1 = Style(fontsize=20, values=var1) plot1.set_colour('#4f8dbc') plot2 = Style(fontsize=20, values=var2) plot2.set_colour('#54b928') plot2.set_y_axis_right() if chart_type != 'pie': chart.add_element(plot1) chart.add_element(plot2) else: chart.add_element(plot1) return HttpResponse(chart.encode())
def getAQChart(self,request,chart_style, report_obj, columns): from datetime import datetime from atrinsic.web import openFlashChart from atrinsic.web.openFlashChart_varieties import Styler Style = Styler(chart_style) var1 = [] var2 = [] labels = [] index_one = 0 index_two = 0 try: column_id1 = int(columns['var1']) column_id2 = int(columns['var2']) except: column_id1 = columns['var1'] column_id2 = columns['var2'] if column_id1 == 1: columns['var1']="impressions" if column_id1 == 2: columns['var1']="clicks" if column_id1 == 3: columns['var1']="leads" if column_id1 == 4: columns['var1']="orders" if column_id1 == 5: columns['var1']="amount" if column_id1 == 6: columns['var1']="publisher_payout" if column_id2 == 1: columns['var2']="impressions" if column_id2 == 2: columns['var2']="clicks" if column_id2 == 3: columns['var2']="leads" if column_id2 == 4: columns['var2']="orders" if column_id2 == 5: columns['var2']="amount" if column_id2 == 6: columns['var2']="publisher_payout" for header in report_obj.RenderHeader(): if header[1] == columns['var1']: break index_one+=1 if columns.get('var2',None) != None: headers = report_obj.RenderHeader() for header in report_obj.RenderHeader(): if header[1] == columns['var2']: break index_two+=1 content = report_obj.RenderContents() for row in report_obj.RenderContents(): col_counter = 0 for col in row: if col_counter == 0: try: y,m,d=col.split('/') reformat_date = datetime(int(y),int(m),int(d)) x=reformat_date.strftime('%m/%d/%Y') except: x=col labels.append(str(x)) if col_counter == index_one: col = col.replace("$","") col = col.replace(",","") col = re.sub("[^0-9\.]*", "", col) try: var1.append(int(float(col))) except: var1.append(int(float(0))) if index_two > 0: if col_counter == index_two: col = col.replace("$","") col = col.replace(",","") var2.append(int(float(re.sub("[^0-9\.]*", "", col)))) col_counter += 1 chart = openFlashChart.template('') chart.set_bg_colour(colour='#ffffff') if len(var1) > 0: range_y1_min = round(float(min(var1))*0.95,0) range_y1_max = round(float(max(var1))*1.05,0) range_y1_steps = round(round(float(max(var1))*1.05,0)/10,0) else: if len(var2) > 0: range_y1_min = round(float(min(var2))*0.95,0) range_y1_max = round(float(max(var2))*1.05,0) range_y1_steps = round(round(float(max(var2))*1.05,0)/10,0) else: range_y1_min = 0 range_y1_max = 0 range_y1_steps = 0 if len(var2) > 0: range_y2_min = round(float(min(var2))*0.95,0) range_y2_max = round(float(max(var2))*1.05,0) range_y2_steps = round(round(float(max(var2))*1.05,0)/10,0) else: range_y2_min = 0 range_y2_max = 0 range_y2_steps = 0 chart.set_y_axis(min = range_y1_min, max = range_y1_max, steps = range_y1_steps) if (range_y2_steps > 0): chart.set_y_axis_right(min = range_y2_min, max = range_y2_max, steps = range_y2_steps), chart.set_x_axis(labels = {'labels':labels, 'rotate':'vertical'}) plot1 = Style(fontsize = 20, values = var1) plot1.set_colour('#4f8dbc') plot2 = Style(fontsize = 20, values = var2) plot2.set_colour('#54b928') plot2.set_y_axis_right() if chart_style != 'pie': chart.add_element(plot1) chart.add_element(plot2) else: chart.add_element(plot1) return chart.encode()
def execute(self, style): from atrinsic.web import openFlashChart from atrinsic.web.openFlashChart_varieties import Styler Style = Styler(style) #try: var1 = [] labels = [] val_dict = self.data url = self.post_url if self.data_columns[0] == 'value': return self.data else: x = self.data_columns[0] y = self.data_columns[1] if (isinstance(val_dict, type([]))) & (val_dict != None): labels = [] var1 = [] for var in val_dict: if isinstance(var, type([])): for z in var: labels.append(z[x]) var1.append(int(z[y])) else: x = self.data_columns[0] y = self.data_columns[1] labels.append(var[x]) var1.append(int(var[y])) elif (isinstance(val_dict, dict)) & (val_dict != None): for key in val_dict: if isinstance(val_dict[key], type([])): for z in val_dict[key]: labels.append(z[x]) var1.append(z[y]) else: labels.append(key) var1.append(val_dict[key]) chart = openFlashChart.template('') chart.set_bg_colour(colour='#ffffff') if isinstance(var1, type([])): try: z = min(var1) y = max(var1) range_y1_min = round(z * 0.95, 0) range_y1_max = round(y * 1.05, 0) range_y1_steps = round(round(y * 1.05, 0) / 10, 0) except: y = 0 z = 0 for dict_item in var1: try: if int(dict_item['nb_visits']) > y: y = dict_item['nb_visits'] if int(dict_item['nb_visits']) < z: z = dict_item['nb_visits'] except: y = int(dict_item) z = int(dict_item) range_y1_min = round(z * 0.95, 0) range_y1_max = round(y * 1.05, 0) range_y1_steps = round(round(y * 1.05, 0) / 10, 0) else: range_y1_min = 0 range_y1_max = 0 range_y1_steps = 0 chart.set_y_axis(min=range_y1_min, max=range_y1_max, steps=range_y1_steps) chart.set_x_axis(labels={'labels': labels, 'rotate': 'vertical'}) if style == 'pie': plot = Style(text=self.title, fontsize=20, values=var1, colours=['#4f8dbc', '#54b928']) else: plot = Style(text=self.title, fontsize=20, values=var1) plot.set_colour('#4f8dbc') chart.add_element(plot) return chart.encode()
def get_flash_chart_data(request, chart_type, start_date, end_date): from datetime import datetime from atrinsic.web import openFlashChart from atrinsic.web.openFlashChart_varieties import Styler table_id = request.GET.get("table_id") report_type = request.GET.get("report_type") max_results = request.GET.get("max_results") sort = request.GET.get("sort") filters = request.GET.get("filters") if request.session.has_key("analytics"): aa_obj = request.session["analytics"] else: user = Users.objects.get(organization=request.organization) aa_obj = AqAnalytics(user_name=user.email, password=user.password) aa_obj.authenticate() report, row_count, is_valid = aa_obj.DataFeedQuery( start_date, end_date, table_id, report_type, "array", sort, filters, max_results, chart_type ) Style = Styler(chart_type[6:]) labels = [] var1 = [] var2 = [] for row in report[0]: try: labels.append(row[0]) except: pass try: var1.append(row[1]) except: pass try: var2.append(row[2]) except: pass chart = openFlashChart.template("") chart.set_bg_colour(colour="#ffffff") if len(var1) > 0: range_y1_min = round(float(min(var1)) * 0.95, 0) range_y1_max = round(float(max(var1)) * 1.05, 0) range_y1_steps = round(round(float(max(var1)) * 1.05, 0) / 10, 0) else: if len(var2) > 0: range_y1_min = round(float(min(var2)) * 0.95, 0) range_y1_max = round(float(max(var2)) * 1.05, 0) range_y1_steps = round(round(float(max(var2)) * 1.05, 0) / 10, 0) else: range_y1_min = 0 range_y1_max = 0 range_y1_steps = 0 if len(var2) > 0: range_y2_min = round(float(min(var2)) * 0.95, 0) range_y2_max = round(float(max(var2)) * 1.05, 0) range_y2_steps = round(round(float(max(var2)) * 1.05, 0) / 10, 0) else: range_y2_min = 0 range_y2_max = 0 range_y2_steps = 0 chart.set_y_axis(min=range_y1_min, max=range_y1_max, steps=range_y1_steps) if range_y2_steps > 0: chart.set_y_axis_right(min=range_y2_min, max=range_y2_max, steps=range_y2_steps), chart.set_x_axis(labels={"labels": labels, "rotate": "vertical"}) plot1 = Style(fontsize=20, values=var1) plot1.set_colour("#4f8dbc") plot2 = Style(fontsize=20, values=var2) plot2.set_colour("#54b928") plot2.set_y_axis_right() if chart_type != "pie": chart.add_element(plot1) chart.add_element(plot2) else: chart.add_element(plot1) return HttpResponse(chart.encode())
def execute(self, style): from atrinsic.web import openFlashChart from atrinsic.web.openFlashChart_varieties import Styler Style = Styler(style) #try: var1 = [] labels = [] val_dict = self.data url = self.post_url if self.data_columns[0] == 'value': return self.data else: x = self.data_columns[0] y = self.data_columns[1] if (isinstance(val_dict,type([]))) & (val_dict != None): labels = [] var1 = [] for var in val_dict: if isinstance(var,type([])): for z in var: labels.append(z[x]) var1.append(int(z[y])) else: x = self.data_columns[0] y = self.data_columns[1] labels.append(var[x]) var1.append(int(var[y])) elif (isinstance(val_dict,dict)) & (val_dict != None): for key in val_dict: if isinstance(val_dict[key],type([])): for z in val_dict[key]: labels.append(z[x]) var1.append(z[y]) else: labels.append(key) var1.append(val_dict[key]) chart = openFlashChart.template('') chart.set_bg_colour(colour='#ffffff') if isinstance(var1,type([])): try: z = min(var1) y = max(var1) range_y1_min = round(z*0.95,0) range_y1_max = round(y*1.05,0) range_y1_steps = round(round(y*1.05,0)/10,0) except: y=0 z=0 for dict_item in var1: try: if int(dict_item['nb_visits']) > y: y=dict_item['nb_visits'] if int(dict_item['nb_visits']) < z: z=dict_item['nb_visits'] except: y=int(dict_item) z=int(dict_item) range_y1_min = round(z*0.95,0) range_y1_max = round(y*1.05,0) range_y1_steps = round(round(y*1.05,0)/10,0) else: range_y1_min = 0 range_y1_max = 0 range_y1_steps = 0 chart.set_y_axis(min = range_y1_min, max = range_y1_max, steps = range_y1_steps) chart.set_x_axis(labels = {'labels':labels, 'rotate':'vertical'}) if style == 'pie': plot = Style(text = self.title, fontsize = 20, values = var1, colours = ['#4f8dbc','#54b928']) else: plot = Style(text = self.title, fontsize = 20, values = var1) plot.set_colour('#4f8dbc') chart.add_element(plot) return chart.encode()