app/projrev/views/helpers/templatetags/review_helpers.py
author Madhusudan.C.S <madhusudancs@gmail.com>
Wed, 12 Aug 2009 22:41:21 +0530
changeset 43 55e650bb9dbe
parent 42 4cf4c1f0e5bb
child 44 6fda3f3cc873
permissions -rw-r--r--
Star values recalled.
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
43
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    55
@register.inclusion_tag('projrev/templatetags/_as_star_for_score.html',
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    56
                         takes_context=True)
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    57
def as_star_for_score(context, name):
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    58
  """
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    59
  """
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    60
  context['name'] = name
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    61
  if 'prev_data' in context and name in context['prev_data']:
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    62
    context['value'] = context['prev_data'][name]
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    63
  else:
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    64
    context['value'] = 0
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    65
 
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    66
  return context
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    67
41
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    68
@register.filter()
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    69
def serial_no(project, arg):
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    70
  """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
    71
  """
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    72
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    73
  proposals = project.proposal_set.all().order_by('-submitted_on')
43
55e650bb9dbe Star values recalled.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 42
diff changeset
    74
41
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    75
  if proposals:
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    76
    if arg == 'new':
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    77
      proposal = proposals[0]
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    78
    elif arg == 'old':
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    79
      if len(proposals) > 1:
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    80
        proposal = proposals[1]
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    81
      else:
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    82
        proposal = None
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    83
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    84
    if proposal:
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    85
      return str(proposal.id)
64249ebaf65a Added Serial numbers support for lists.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 31
diff changeset
    86
42
4cf4c1f0e5bb Review form changes.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 41
diff changeset
    87
  return 'NA'
4cf4c1f0e5bb Review form changes.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 41
diff changeset
    88
4cf4c1f0e5bb Review form changes.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 41
diff changeset
    89
@register.filter()
4cf4c1f0e5bb Review form changes.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 41
diff changeset
    90
def splitline(comment):
4cf4c1f0e5bb Review form changes.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 41
diff changeset
    91
  """Split into a line
4cf4c1f0e5bb Review form changes.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 41
diff changeset
    92
  """
4cf4c1f0e5bb Review form changes.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 41
diff changeset
    93
4cf4c1f0e5bb Review form changes.
Madhusudan.C.S <madhusudancs@gmail.com>
parents: 41
diff changeset
    94
  return str(comment.split('\n')[0])