app/projrev/views/proposal.py
changeset 15 8c9e6c98de82
parent 14 9d720dfded68
child 16 bed14c9685a5
equal deleted inserted replaced
14:9d720dfded68 15:8c9e6c98de82
   291 
   291 
   292 def rankGet(request, micr_code=None):
   292 def rankGet(request, micr_code=None):
   293   """
   293   """
   294   """
   294   """
   295 
   295 
       
   296   context = {}
       
   297 
   296   if not micr_code:
   298   if not micr_code:
   297     template = 'projrev/proposal/list.html'
   299     template = 'projrev/proposal/list.html'
   298     context = {
   300     context['projects'] = Project.objects.all()
   299         'projects': Project.objects.all(),
   301     context['row_url'] = '/proposal/rank/'
   300         'row_url': '/proposal/rank/',
       
   301         }
       
   302 
   302 
   303     return render_to_response(template, RequestContext(request, context))
   303     return render_to_response(template, RequestContext(request, context))
   304 
   304 
   305   projects = Project.objects.get(micr_code=micr_code)
   305   project = Project.objects.get(micr_code=micr_code)
   306 
   306 
   307   proposal_path = str(
   307   proposal = project.proposal_set.all().order_by('-submitted_on')[0]
   308       projects.proposal_set.all().order_by('-submitted_on')[0].document)
   308 
   309 
   309   if proposal:
   310   proposal_name = proposal_path.split('/')[-1]
   310     proposal_path = str(proposal.document)
   311 
   311 
   312   reviews = projects.review_set.all()
   312     proposal_name = proposal_path.split('/')[-1]
       
   313 
       
   314     context['proposal_path'] = proposal_path
       
   315     context['proposal_name'] = proposal_name
       
   316     context['last_submitted'] = proposal.submitted_on
       
   317 
       
   318   reviews = project.review_set.all().order_by('-reviewed_on')
       
   319   nr_reviews = len(reviews)
       
   320   if reviews:
       
   321     context['last_reviewed'] = reviews[0].reviewed_on
       
   322     context['nr_reviews'] = nr_reviews
   313 
   323 
   314   review_score = [0] * 9
   324   review_score = [0] * 9
   315   for review in reviews:
   325   for review in reviews:
   316     review_score[0] += review.attribute1
   326     review_score[0] += review.attribute1
   317     review_score[1] += review.attribute2
   327     review_score[1] += review.attribute2
   323     review_score[7] += review.attribute8
   333     review_score[7] += review.attribute8
   324     review_score[8] += review.attribute9
   334     review_score[8] += review.attribute9
   325 
   335 
   326   total_score = sum(review_score)
   336   total_score = sum(review_score)
   327 
   337 
   328   context = {
   338   review_avg = [0] * 9
   329       'project': projects,
   339   for i, rs in enumerate(review_score):
   330       'proposal_path': proposal_path,
   340     try:
   331       'proposal_name': proposal_name,
   341       review_avg[i] = float(rs) / nr_reviews
   332       'review_score': review_score,
   342     except ZeroDivisionError:
   333       'total_score': total_score,
   343       review_avg[i] = 0
   334       }
   344 
       
   345   try:
       
   346     total_avg = float(total_score) / nr_reviews
       
   347   except ZeroDivisionError:
       
   348     total_avg = 0
       
   349 
       
   350   context['project'] = project
       
   351   context['review_score'] = review_score
       
   352   context['total_score'] = total_score
       
   353   context['review_avg'] = review_avg
       
   354   context['total_avg'] = total_avg
   335 
   355 
   336   template = 'projrev/proposal/rank.html'
   356   template = 'projrev/proposal/rank.html'
   337 
   357 
   338   return render_to_response(template, RequestContext(request, context))
   358   return render_to_response(template, RequestContext(request, context))