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)) |