Example #1
0
 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()
Example #2
0
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())
Example #3
0
    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()
Example #4
0
    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()
Example #5
0
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())
Example #6
0
	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()