示例#1
0
def data_edit(request, hash):
    chart = Chart.get_by_id(pretty_decode(hash))
    if chart.user != request.g_app_user:
        return HttpResponse("nacho chart")
    if request.method == "POST":
        old_dataset = chart.data or None
        if chart.data:
            fs = DataRowFormSet(data=request.POST, instances=chart.data.data_rows)
        else:
            fs = DataRowFormSet(data=request.POST)
        if fs.is_valid():
            keys = []
            for form in fs.forms:
                if hasattr(form, "cleaned_data"):
                    dr = DataRow(**form.cleaned_data)
                    keys.append(dr.save())
            version = old_dataset.version + 1 if old_dataset else 1
            cds = ChartDataSet(version=version, previous_version=old_dataset, data_rows=keys)
            cds.save()
            chart.data = cds
            chart.has_data = True
            chart.save()
            return HttpResponseRedirect(reverse("chart-detail", args=(chart.get_hash(),)))
    else:
        if chart.data:
            fs = DataRowFormSet(instances=chart.data.data_rows)
        else:
            fs = DataRowFormSet()
    return render_to_response("charter/data_edit.html", {"formset": fs, "user": request.g_app_user})
示例#2
0
def pop_data(request):
    import time, random

    chart_types = ["pie", "bar", "line"]
    dr = DataRow(data_key="asdf", data_value=str(random.randint(0, 1000)))
    dr_key = dr.put()
    dr2 = DataRow(data_key="asdf2", data_value=str(random.randint(0, 1000)))
    dr2_key = dr2.put()
    dr3 = DataRow(data_key="asdf2", data_value=str(random.randint(0, 1000)))
    dr3_key = dr3.put()
    cds = ChartDataSet(version=1, data_rows=[dr_key, dr2_key])
    cds.put()
    cds2 = ChartDataSet(version=2, previous_version=cds, data_rows=[dr_key, dr3_key])
    cds2.put()
    c = Chart(name="%s" % time.time(), chart_type=chart_types[random.randint(0, 2)], data=cds2, user=request.g_app_user)
    c.put()
    return HttpResponseRedirect(reverse("chart-detail", args=(c.get_hash(),)))