Example #1
0
def get_stats(threshold=5):
    userlist = [(user.username, total_size(user)) for user in User.objects.all()]
    userlist.sort(key=operator.itemgetter(1), reverse=True)

    labels = []
    sizes = []
    others = 0
    for (i, (username, size)) in enumerate(userlist):
        if i < threshold:
            labels.append(username)
            sizes.append(size)
        else:
            others += size
    if len(labels) == threshold:
        labels.append("Autres")
        sizes.append(others)

    total = float(sum(sizes) or 1)
    values = [str(size / total * 100) for size in sizes]
    return "http://chart.apis.google.com/chart?cht=p3&chd=t:%s&chs=340x100&chl=%s" % (
        ",".join(values),
        "|".join(labels),
    )
Example #2
0
def delete_file(request):
    if request.method != "POST":
        raise Http404
    files = get_list_or_404(File, pk__in=request.POST.getlist("ids"))
    owner = files[0].user
    for file in files:
        if file.owned_by(request.user):
            file.delete()
    return HttpResponse(simplejson.dumps([owner.id, owner.file_set.count(), filesizeformat(total_size(owner))]))
Example #3
0
def manage_users(request):
    if request.method == "POST":
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse("manage_users"))
    else:
        form = UserCreationForm()

    # Remove help text
    form.fields["username"].help_text = ""

    user_list = []
    for user in User.objects.all():
        user_list.append((user, RawPassword.objects.get(user=user), user.file_set.count(), total_size(user)))

    return render(request, "app/manage_users.html", {"user_list": user_list, "form": form, "chart_url": get_stats()})
Example #4
0
def total_size(user):
    return utils.total_size(user)