app/projrev/views/helpers/templatetags/review_helpers.py
author Madhusudan.C.S <madhusudancs@gmail.com>
Tue, 11 Aug 2009 04:34:01 +0530
changeset 41 64249ebaf65a
parent 31 ef9fdc847543
child 42 4cf4c1f0e5bb
permissions -rw-r--r--
Added Serial numbers support for lists.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     1
"""A Django template tag library containing forms helpers.
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     2
"""
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     3
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     4
__authors__ = [
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     5
  '"Madhusudan.C.S" <madhusudancs@gmail.com>',
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     6
]
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     7
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     8
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     9
from django import template
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    10
41
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    11
26
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    12
register = template.Library()
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    13
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    14
27
37612f295cd4 Added comments for ranks and reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 26
diff changeset
    15
@register.inclusion_tag('projrev/templatetags/_as_review.html')
37612f295cd4 Added comments for ranks and reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 26
diff changeset
    16
def as_review(review):
26
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    17
  """Returns the comment contexts for the template tag.
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    18
  """
97bd3c28c957 Renamed Comments to Reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    19
27
37612f295cd4 Added comments for ranks and reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 26
diff changeset
    20
  total_score = (review.attribute1 + review.attribute2 + review.attribute3 + 
37612f295cd4 Added comments for ranks and reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 26
diff changeset
    21
                 review.attribute4 + review.attribute5 + review.attribute6 +
37612f295cd4 Added comments for ranks and reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 26
diff changeset
    22
                 review.attribute7 + review.attribute8 + review.attribute9)
37612f295cd4 Added comments for ranks and reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 26
diff changeset
    23
37612f295cd4 Added comments for ranks and reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 26
diff changeset
    24
  return {'review': review, 'total_score': total_score}
31
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    25
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    26
@register.inclusion_tag('projrev/templatetags/_as_my_review.html')
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    27
def as_my_review(review):
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    28
  """Returns the comment contexts for the template tag.
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    29
  """
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    30
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    31
  total_score = (review.attribute1 + review.attribute2 + review.attribute3 + 
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    32
                 review.attribute4 + review.attribute5 + review.attribute6 +
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    33
                 review.attribute7 + review.attribute8 + review.attribute9)
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    34
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    35
  project = review.project
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    36
  proposal = project.proposal_set.all().order_by('-submitted_on')[0]
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    37
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    38
  review_context = {
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    39
      'review': review,
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    40
      'total_score': total_score,
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    41
      }
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    42
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    43
  if proposal:
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    44
    proposal_path = str(proposal.document)
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    45
    proposal_name = proposal_path.split('/')[-1]
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    46
    review_context['proposal_path'] = proposal_path
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    47
    review_context['proposal_name'] = proposal_name
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    48
    review_context['institution'] = project.institution
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    49
    review_context['state'] = project.state
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    50
    review_context['district'] = project.district
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    51
    review_context['line_item'] = project.line_item
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    52
ef9fdc847543 Added list of My reviews.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 27
diff changeset
    53
  return review_context
41
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    54
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    55
@register.filter()
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    56
def serial_no(project, arg):
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    57
  """Returns the latest serial number of the project's proposal
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    58
  """
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    59
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    60
  proposals = project.proposal_set.all().order_by('-submitted_on')
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    61
  import logging
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    62
  logging.error(proposals)
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    63
  if proposals:
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    64
    if arg == 'new':
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    65
      proposal = proposals[0]
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    66
    elif arg == 'old':
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    67
      if len(proposals) > 1:
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    68
        proposal = proposals[1]
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    69
      else:
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    70
        proposal = None
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    71
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    72
    if proposal:
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    73
      return str(proposal.id)
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    74
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    75
  return 'NA'