app/soc/modules/ghop/logic/cleaning.py
author Madhusudan.C.S <madhusudancs@gmail.com>
Thu, 27 Aug 2009 12:02:00 +0200
changeset 2820 eb57ebee8b91
child 2860 ea9909161840
permissions -rw-r--r--
Added GHOP Form cleaning module. Reviewed by: Lennard de Rijk
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2820
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/python2.5
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     2
#
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     3
# Copyright 2009 the Melange authors.
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     4
#
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     5
# Licensed under the Apache License, Version 2.0 (the "License");
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     6
# you may not use this file except in compliance with the License.
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     7
# You may obtain a copy of the License at
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     8
#
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     9
#   http://www.apache.org/licenses/LICENSE-2.0
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    10
#
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    11
# Unless required by applicable law or agreed to in writing, software
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    12
# distributed under the License is distributed on an "AS IS" BASIS,
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    13
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    14
# See the License for the specific language governing permissions and
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    15
# limitations under the License.
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    16
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    17
"""GHOP module cleaning methods.
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    18
"""
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    19
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    20
__authors__ = [
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    21
    '"Madhusudan.C.S" <madhusudancs@gmail.com>',
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    22
    ]
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    23
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    24
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    25
from django import forms
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    26
from django.utils.translation import ugettext
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    27
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    28
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    29
def cleanTaskComment(comment_field, action_field, ws_field):
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    30
  """Cleans the comment form and checks to see if there is either
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    31
  action or comment content.
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    32
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    33
  Raises ValidationError if:
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    34
    -There is no action taking place and no comment present
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    35
    -The action is needs_review and there is no comment or work submission
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    36
     present
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    37
  """
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    38
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    39
  def wrapper(self):
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    40
    """Decorator wrapper method.
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    41
    """
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    42
    cleaned_data = self.cleaned_data
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    43
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    44
    content = cleaned_data.get(comment_field)
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    45
    action = cleaned_data.get(action_field)
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    46
    work_submission = cleaned_data.get(ws_field)
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    47
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    48
    if action == 'noaction' and not content:
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    49
      raise forms.ValidationError(
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    50
          ugettext('You cannot have comment field empty with no action.'))
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    51
    if action == 'needs_review' and not content and not work_submission:
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    52
      raise forms.ValidationError(
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    53
          ugettext('You cannot have both comment field and work '
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    54
                   'submission fields empty.'))
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    55
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    56
    return cleaned_data
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    57
eb57ebee8b91 Added GHOP Form cleaning module.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    58
  return wrapper