In [20]:
from app.models import Label,Image,Batch, Comment, STATUS_CHOICES
from app.models import TODO, TAGGING, REVIEWING, DONE
from django.contrib.auth.models import User
from django.db.models import Q

In [4]:
b=Batch.objects.all().first()

In [5]:
b


Out[5]:
<Batch: BID000007>

In [6]:
if b.labeller:
    print b.labeller
else:
    print "not found"


mylabeller

In [15]:
MyUser.objects.filter(user__username='admin')


Out[15]:
<QuerySet [<MyUser: admin>]>

In [18]:
Batch.objects.filter(labeller__user__username='mylabeller')


Out[18]:
<QuerySet []>

In [29]:
total_labelled=0
for b in Batch.objects.filter(labeller__user__username='mylabeller'):
    for i in b.image_set.all():
        if 0<len(i.label_set.all()):
            total_labelled=total_labelled+1
            print "%s, %s is labelled"%(i,b)
        else:
            print "%s, %s is not labelled"%(i,b)
print total_labelled


34c84071-abd7-4f01-86e6-3f2dc6c96a0b.jpg, BID000007 is labelled
88634d71-c69f-4582-b54c-926719da1020.jpg, BID000007 is labelled
54e9550f-5c1f-46d8-b4d5-45899bf0554f.jpg, BID000007 is not labelled
25136c78-05f6-422c-9b82-cbbd42deb261.jpg, BID000007 is labelled
693a478e-439a-45de-8b20-20f4d0e0f240.jpg, BID000009 is labelled
7696acee-37df-4d8c-b85b-30220ac00020.jpg, BID000009 is not labelled
4

In [40]:
msg=""
for u in MyUser.objects.all().order_by('user__username'):
    msg=msg+"user: %s\n"%u 
    if u.isreviewer:
        total_reviewed=0
        for b in Batch.objects.filter(reviewer__user__username=u):
            for i in b.image_set.all():
                if 0<len(i.label_set.all()):
                    total_reviewed=total_reviewed+1
        msg = msg + "  reviewed %s images"%total_reviewed
    else:
        total_labelled=0
        for b in Batch.objects.filter(labeller__user__username=u):
            for i in b.image_set.all():
                if 0<len(i.label_set.all()):
                    total_labelled=total_labelled+1
        msg =msg + "  labelled %s images"%total_labelled
    
    ####DONE####
    done=0
    for b in Batch.objects.filter(Q(status=DONE), Q(reviewer__user__username=u) | Q(labeller__user__username=u)):
        for i in b.image_set.all():
            if 0<len(i.label_set.all()):
                done=done+1
    msg = msg + ", done %s images\n"%done
print msg


user: admin
  reviewed 0 images, done 0 images
user: mylabeller
  labelled 5 images, done 0 images


In [31]:
msg


Out[31]:
('user: admin\n  reviewed 0 images, done 0 imagesuser: mylabeller\n  labelled 5 images',)

In [27]:
msg+"122"


Out[27]:
'122'

In [ ]: