Example #1
0
def widget_layout(request,widget,user_widget,style):
    import cjson,urllib
    from pywik import prep_date
    from forms import WidgetSettingsForm
    if user_widget.custom_date_range != None:
        calc_date = user_widget.custom_date_range
    elif (request.GET.has_key('start_date')) & (request.GET.has_key('end_date')):
        calc_date = str(request.GET['start_date'])+","+str(request.GET['end_date'])
    elif (request.POST.has_key('start_date')) & (request.POST.has_key('end_date')):
        calc_date = str(request.POST['start_date'])+","+str(request.POST['end_date'])
    else:
        calc_date = prep_date(user_widget.widget.widget_date_range)
    d = { }
    if user_widget.custom_group != None:
        d['group_data_by'] = user_widget.custom_group
    if user_widget.custom_columns != None:
        x,y = user_widget.custom_columns.split(",")
        d['variable1'] = x
        d['variable2'] = y
    if calc_date != "" and calc_date.find(","):
        d['start_date'] = calc_date.split(",")[0]
        d['end_date'] = calc_date.split(",")[1]
    else:
        d['start_date'] = ""
        d['end_date'] = ""
    my_widget = {}
    my_widget['form'] = WidgetSettingsForm(initial=d).as_p()
    if style == 'None':
        style = widget.widget_style
    if style == "table":
        if widget.widget_type == 2:
            my_widget['html'] = widget.getDataTable(auth=request.organization.pywik_token_auth_key, idSite=request.organization.pywik_siteId,group_by = request.GET.get('group_by',0), period='day', date=calc_date, headers = widget.headers.split(','), data_columns = widget.data_columns.split(","))
        else:
            my_widget['html'] = widget.getAqDataTable(request=request, chart_style=style, date=calc_date, group_by = user_widget.custom_group, widget_id=widget.id, user_widget_id = user_widget.id)
        my_widget['header'] = widget.widget_name
        user_widget.custom_style = style
        if request.GET.get('preview',None) == None:
            user_widget.save()
    
        
    else:
        if user_widget.widget.widget_type == 2:
            my_widget['html'] = openFlashChart.flashHTML('100%', '300', '/api/'+str(user_widget.widget.id)+'/'+str(style)+'/?data=idSite='+str(request.organization.pywik_siteId)+'|date='+str(calc_date)+'|period=day', '/ofc/')
        else:
            if user_widget.custom_columns != None:
                custom_columns = "|custom_columns="+str(user_widget.custom_columns)
            else:
                custom_columns = ""
            my_widget['html'] = openFlashChart.flashHTML('100%', '300', '/api/'+str(user_widget.widget.id)+'/'+str(style)+'/?data=date='+str(calc_date)+'|group_by='+str(user_widget.custom_group)+str(custom_columns), '/ofc/')
        my_widget['header'] = user_widget.widget.widget_name
        user_widget.custom_style = style
        
    if request.GET.get('preview',None) == None:
        user_widget.save()
        
    my_widget['widget_id'] = user_widget.id
    return HttpResponse(str(cjson.encode(my_widget)))
Example #2
0
def widget_layout(request, widget, user_widget, style):
    import cjson, urllib
    from pywik import prep_date
    from forms import WidgetSettingsForm
    if user_widget.custom_date_range != None:
        calc_date = user_widget.custom_date_range
    elif (request.GET.has_key('start_date')) & (
            request.GET.has_key('end_date')):
        calc_date = str(request.GET['start_date']) + "," + str(
            request.GET['end_date'])
    elif (request.POST.has_key('start_date')) & (
            request.POST.has_key('end_date')):
        calc_date = str(request.POST['start_date']) + "," + str(
            request.POST['end_date'])
    else:
        calc_date = prep_date(user_widget.widget.widget_date_range)
    d = {}
    if user_widget.custom_group != None:
        d['group_data_by'] = user_widget.custom_group
    if user_widget.custom_columns != None:
        x, y = user_widget.custom_columns.split(",")
        d['variable1'] = x
        d['variable2'] = y
    if calc_date != "" and calc_date.find(","):
        d['start_date'] = calc_date.split(",")[0]
        d['end_date'] = calc_date.split(",")[1]
    else:
        d['start_date'] = ""
        d['end_date'] = ""
    my_widget = {}
    my_widget['form'] = WidgetSettingsForm(initial=d).as_p()
    if style == 'None':
        style = widget.widget_style
    if style == "table":
        if widget.widget_type == 2:
            my_widget['html'] = widget.getDataTable(
                auth=request.organization.pywik_token_auth_key,
                idSite=request.organization.pywik_siteId,
                group_by=request.GET.get('group_by', 0),
                period='day',
                date=calc_date,
                headers=widget.headers.split(','),
                data_columns=widget.data_columns.split(","))
        else:
            my_widget['html'] = widget.getAqDataTable(
                request=request,
                chart_style=style,
                date=calc_date,
                group_by=user_widget.custom_group,
                widget_id=widget.id,
                user_widget_id=user_widget.id)
        my_widget['header'] = widget.widget_name
        user_widget.custom_style = style
        if request.GET.get('preview', None) == None:
            user_widget.save()

    else:
        if user_widget.widget.widget_type == 2:
            my_widget['html'] = openFlashChart.flashHTML(
                '100%', '300',
                '/api/' + str(user_widget.widget.id) + '/' + str(style) +
                '/?data=idSite=' + str(request.organization.pywik_siteId) +
                '|date=' + str(calc_date) + '|period=day', '/ofc/')
        else:
            if user_widget.custom_columns != None:
                custom_columns = "|custom_columns=" + str(
                    user_widget.custom_columns)
            else:
                custom_columns = ""
            my_widget['html'] = openFlashChart.flashHTML(
                '100%', '300', '/api/' + str(user_widget.widget.id) + '/' +
                str(style) + '/?data=date=' + str(calc_date) + '|group_by=' +
                str(user_widget.custom_group) + str(custom_columns), '/ofc/')
        my_widget['header'] = user_widget.widget.widget_name
        user_widget.custom_style = style

    if request.GET.get('preview', None) == None:
        user_widget.save()

    my_widget['widget_id'] = user_widget.id
    return HttpResponse(str(cjson.encode(my_widget)))
Example #3
0
 def __init__(self,**args):
     from datetime import datetime
     from pywik import prep_date
     from atrinsic.base.models import PublisherGroup,Organization,Website,PublisherVertical
     start = None
     end = None
     if args.has_key('date_range'):
         if args['date_range'] != '':
             if args['date_range'].find(",") > 0:
                 start,end=args['date_range'].split(",")
             else:
                 try:
                     start = datetime.strptime(args['date_range'],"%m/%d/%Y")
                     end = start
                 except:
                     pass
             if (start != None and end != None) & (not isinstance(start,datetime) and not isinstance(end,datetime)):
                 try:
                     self.date_start = datetime.strptime(start,"%m/%d/%Y")
                     self.date_end = datetime.strptime(end,"%m/%d/%Y")
                 except:
                     self.date_start = datetime.strptime(start,"%Y-%m-%d")
                     self.date_end = datetime.strptime(end,"%Y-%m-%d")
             else:
                 var_now = datetime.now()
                 self.date_start = var_now
                 self.date_end = var_now
         else:
             var_now = datetime.now()
             self.date_start = var_now
             self.date_end = var_now
     else:
         #need handling for text date formats like yesterday for example, not sure where this comes from yet might just be able to remove yesterday and put a date range there.
         calc_date = prep_date(args.get('date',','))
         if (calc_date == 'None,None') | (calc_date == '') | (calc_date == None) | (calc_date == ','):
             var_now = datetime.now()
             calc_date = var_now
         if isinstance(calc_date, str):
             if calc_date.find(",") > 0:
                 start,end = calc_date.split(",")
                 try:
                     self.date_start = datetime.strptime(start,"%m/%d/%Y")
                     self.date_end = datetime.strptime(end,"%m/%d/%Y")
                 except:
                     self.date_start = datetime.strptime(start,"%Y-%m-%d")
                     self.date_end = datetime.strptime(end,"%Y-%m-%d")
             else:
                 try:
                     self.date_start = datetime.strptime(calc_date,"%m/%d/%Y") 
                     self.date_end = datetime.strptime(calc_date,"%m/%d/%Y")
                 except:
                     self.date_start = datetime.strptime(calc_date,"%Y-%m-%d") 
                     self.date_end = datetime.strptime(calc_date,"%Y-%m-%d")
         else:
             self.date_start = calc_date
             self.date_end = calc_date
     request = args.get("request",None)
     self.group_by = request.GET.get('group_by',0)
     self.widget_id=args.get("widget_id",None)
     self.user_widget_id=args.get("user_widget_id",None)
     self.data_columns = args.get("custom_columns",None)
     self.publisher_set = []
     self.advertiser_set = []
     if request.GET.getlist('run_reporting_by_publisher') != []:
         self.publisher_set = request.GET.getlist('run_reporting_by_publisher')
     elif request.GET.get('run_reporting_by_group', None) != None:
         for publisher in PublisherGroup.objects.get(pk=request.GET.get('run_reporting_by_group')[2:]).publishers.all():
             self.publisher_set.append(publisher.id)
     elif request.GET.getlist('advertiser_category') != []:
         org_set = Organization.objects.filter(vertical__in = request.GET.getlist('advertiser_category'))
         for org in org_set:
             self.advertiser_set.append(int(org.id))
     elif request.GET.getlist('run_reporting_by_vertical') != []:
         int_ids = []
         for string_id in request.GET.getlist('run_reporting_by_vertical'):
             int_ids.append(int(string_id))
         for x in Website.objects.filter(vertical__in = PublisherVertical.objects.filter(order__in = int_ids)):
             self.publisher_set.append(int(x.publisher_id))
     elif request.GET.get('specific_advertiser',None) and int(request.GET.get('run_reporting_by',0)) == 1 :
         self.advertiser_set = request.GET['specific_advertiser']