예제 #1
0
def budget_detail(request, budget_id):
    budget_owner = User.objects.get(id=Budget.objects.get(id=budget_id).user_id).username
    title = Budget.objects.get(id=budget_id).title
    base = Cost.objects.filter(budget_id=budget_id, user=request.user).values()
    total = Cost.objects.filter(budget_id=budget_id, user=request.user).aggregate(Sum('value'))['value__sum']
    budget = Budget.objects.get(id=budget_id).value
    date = []
    date_url = []
    categories = []
    categories_id = []

    for item in Cost.objects.filter(budget_id=budget_id, user=request.user).values('title', 'publish', 'category_id'):
        date.append(str(item['publish']))
        date_url.append(str(item['publish']).replace('-', '/'))
        categories.append(Category.objects.get(id=item['category_id']).title)
        categories_id.append(Category.objects.get(id=item['category_id']).id)

    categories_title = []
    categories_title_id =[]
    categories_data = []

    for item in Category.objects.values('title', 'id'):
        val = Cost.objects.filter(budget_id=budget_id, user=request.user,
                                  category_id=item['id']).aggregate(Sum('value'))['value__sum']
        if val is not None:
            categories_title.append(item['title'])
            categories_title_id.append(item['id'])
            categories_data.append(val)

    try:
        total_budget = budget - total
    except TypeError:
        total_budget = 0

    info = zip(base, date, date_url, categories, categories_id)

    data = {
        'money': [float(x) for x in categories_data],
        'labels': categories_title
    }
    p1 = Donut(data, values='money', label='labels', plot_width=390, plot_height=400, legend=None, responsive=True)
    p1.logo = None
    p1.toolbar_location = None
    script, div = components(p1, CDN)

    cat_all = zip(categories_title, categories_data, categories_title_id)
    return render(request, 'core_sm/costs/budget/budget_detail.html', {'info': info,
                                                                'title': title,
                                                                'total': total,
                                                                'budget': budget,
                                                                'total_budget': total_budget,
                                                                'script': mark_safe(script),
                                                                'div': mark_safe(div),
                                                                'cat_all': cat_all,
                                                                'categories_data': categories_data,
                                                                'budget_owner': budget_owner})
예제 #2
0
def Donut_Pie(df):
    pd.options.html.border = 1
    percentage = df.percentage.values.tolist()
    Type = df.Type.values.tolist()

    data = pd.Series(percentage, index=Type)
    plot = Donut(data, title="Overall Sentiment % wise")

    plot.logo = None
    script, div = components(plot, CDN)
    return script, div
예제 #3
0
def fnCreate_Pie(df):
    pd.options.html.border = 1

    Location = df.Location.values.tolist()
    count = df['count'].tolist()

    data = pd.Series(count, index=Location)
    plot = Donut(data, title="Top 5 Country-wise tweets")

    plot.logo = None
    script, div = components(plot, CDN)
    return script, div
예제 #4
0
def Donut_Pie(df,stS):
    pd.options.html.border=1
    percentage = df.Count.values.tolist()
    Type= df.Aspects.values.tolist()
    
    data = pd.Series(percentage, index = Type)
    plot = Donut(data, title= stS +" Sentiment Aspects segmentation")
    
    plot.logo=None
    
#    show(plot)
    script, div = components(plot,CDN)    
    return script, div 
예제 #5
0
             var_name='spectrograph')

wedge_b = Donut(df,
                plot_height=220,
                plot_width=220,
                color=source.data['color'])
wedge_r = Donut(df,
                plot_height=220,
                plot_width=220,
                color=source.data['color'])
wedge_z = Donut(df,
                plot_height=220,
                plot_width=220,
                color=source.data['color'])

wedge_b.logo = None
wedge_r.logo = None
wedge_z.logo = None

wedge_b.toolbar_location = None
wedge_r.toolbar_location = None
wedge_z.toolbar_location = None

curdoc().add_root(row(widgetbox(title, width=700)))

curdoc().add_root(row(widgetbox(slider, width=700)))

curdoc().add_root(
    row(
        column(
            widgetbox(Div(text="<b>Cameras:</b>")), p,
예제 #6
0
def category_detail(request, category_id):
    category_title = Category.objects.get(id=category_id).title
    spends = Cost.objects.filter(category_id=category_id, user=request.user)
    stats = []
    days = []
    days_url = []
    for item in spends:
        stats.append(Budget.objects.get(id=item.budget_id).title)

    for item in spends.values('publish'):
        days.append(str(item['publish']))
        days_url.append(str(item['publish']).replace('-', '/'))

    data = zip(spends, stats, days, days_url)

    data_sum = Cost.objects.filter(category_id=category_id, user=request.user).aggregate(Sum('value'))['value__sum']
    data_avg = Cost.objects.filter(category_id=category_id, user=request.user).aggregate(Avg('value'))['value__avg']
    data_min = Cost.objects.filter(category_id=category_id, user=request.user).aggregate(Min('value'))['value__min']
    data_max = Cost.objects.filter(category_id=category_id, user=request.user).aggregate(Max('value'))['value__max']

    category_budget_title = []
    category_budget_spends = []
    category_budget_id = []

    for item in Budget.objects.values('title', 'id'):
        val = Cost.objects.filter(budget_id=item['id'], category_id=category_id, user=request.user).aggregate(Sum('value'))[
            'value__sum']
        if val is not None:
            category_budget_title.append(item['title'])
            category_budget_spends.append(val)
            category_budget_id.append(item['id'])
        else:
            pass

    budgets = []
    budgets_id = []
    budgets_data = []

    for item in Budget.objects.filter(user=request.user).values('title', 'id'):
        val = Cost.objects.filter(category_id=category_id,
                                  user=request.user,
                                  budget_id=Budget.objects.get(id=item['id']).id).aggregate(Sum('value'))['value__sum']
        if val is not None:
            budgets_data.append(val)
            budgets.append(item['title'])
            budgets_id.append(item['id'])

    table_data = {
        'money': [float(x) for x in budgets_data],
        'labels': budgets
    }
    p1 = Donut(table_data, values='money', label='labels', plot_width=390, plot_height=400, legend=None, responsive=True)
    p1.logo = None
    p1.toolbar_location = None
    script, div = components(p1, CDN)

    category_budget_data = zip(category_budget_title, category_budget_spends, category_budget_id)

    return render(request, 'core_sm/costs/category/category_detail.html', {'data': data,
                                                                           'data_sum': data_sum,
                                                                           'data_avg': data_avg,
                                                                           'data_min': data_min,
                                                                           'data_max': data_max,
                                                                           'category_title': category_title,
                                                                           'category_budget_data': category_budget_data,
                                                                           'script': mark_safe(script),
                                                                           'div': mark_safe(div)})