pytask/taskapp/forms.py
author Nishanth Amuluru <nishanth@fossee.in>
Sat, 08 Jan 2011 22:20:41 +0530
changeset 94 385702a0bbde
child 98 01c1e6966d86
permissions -rw-r--r--
Added forms for creating and editing a task
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
94
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
     1
from django import forms
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
     2
from pytask.taskapp.models import Task, WorkReport
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
     3
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
     4
class TaskCreateForm(forms.ModelForm):
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
     5
    class Meta:
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
     6
        model = Task
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
     7
        fields = ['title', 'desc', 'tags_field', 'pynts']
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
     8
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
     9
    def clean_title(self):
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    10
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    11
        data = self.cleaned_data['title'].strip()
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    12
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    13
        if not data:
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    14
            raise forms.ValidationError("This field is required")
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    15
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    16
        try:
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    17
            Task.objects.exclude(status="DL").get(title__iexact=data)
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    18
            raise forms.ValidationError("Another task with same title exists")
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    19
        except Task.DoesNotExist:
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    20
            return data
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    21
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    22
    def clean_desc(self):
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    23
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    24
        data = self.cleaned_data['desc'].strip()
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    25
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    26
        if not data:
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    27
            raise forms.ValidationError("This field is required")
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    28
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    29
        return data
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    30
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    31
class EditTaskForm(forms.ModelForm):
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    32
    class Meta:
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    33
        model = Task
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    34
        fields = ['title', 'desc', 'tags_field', 'pynts']
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    35
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    36
    def clean_desc(self):
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    37
        data = self.cleaned_data['desc'].strip()
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    38
        if not data:
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    39
            raise forms.ValidationError("Enter some description for the task")
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    40
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    41
        return data
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    42
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    43
    def clean_title(self):
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    44
        data = self.cleaned_data['title'].strip()
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    45
        try:
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    46
            prev_task = Task.objects.exclude(status="DL").get(title__iexact=data)
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    47
            if prev_task.id != self.instance.id:
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    48
                raise forms.ValidationError("Another task with same title exists")
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    49
            else:
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    50
                return data
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    51
        except Task.DoesNotExist:
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    52
            return data
385702a0bbde Added forms for creating and editing a task
Nishanth Amuluru <nishanth@fossee.in>
parents:
diff changeset
    53