pytask/taskapp/forms.py
changeset 94 385702a0bbde
child 98 01c1e6966d86
equal deleted inserted replaced
93:54152e4f5cd7 94:385702a0bbde
       
     1 from django import forms
       
     2 from pytask.taskapp.models import Task, WorkReport
       
     3 
       
     4 class TaskCreateForm(forms.ModelForm):
       
     5     class Meta:
       
     6         model = Task
       
     7         fields = ['title', 'desc', 'tags_field', 'pynts']
       
     8 
       
     9     def clean_title(self):
       
    10 
       
    11         data = self.cleaned_data['title'].strip()
       
    12 
       
    13         if not data:
       
    14             raise forms.ValidationError("This field is required")
       
    15 
       
    16         try:
       
    17             Task.objects.exclude(status="DL").get(title__iexact=data)
       
    18             raise forms.ValidationError("Another task with same title exists")
       
    19         except Task.DoesNotExist:
       
    20             return data
       
    21 
       
    22     def clean_desc(self):
       
    23 
       
    24         data = self.cleaned_data['desc'].strip()
       
    25 
       
    26         if not data:
       
    27             raise forms.ValidationError("This field is required")
       
    28 
       
    29         return data
       
    30 
       
    31 class EditTaskForm(forms.ModelForm):
       
    32     class Meta:
       
    33         model = Task
       
    34         fields = ['title', 'desc', 'tags_field', 'pynts']
       
    35 
       
    36     def clean_desc(self):
       
    37         data = self.cleaned_data['desc'].strip()
       
    38         if not data:
       
    39             raise forms.ValidationError("Enter some description for the task")
       
    40 
       
    41         return data
       
    42 
       
    43     def clean_title(self):
       
    44         data = self.cleaned_data['title'].strip()
       
    45         try:
       
    46             prev_task = Task.objects.exclude(status="DL").get(title__iexact=data)
       
    47             if prev_task.id != self.instance.id:
       
    48                 raise forms.ValidationError("Another task with same title exists")
       
    49             else:
       
    50                 return data
       
    51         except Task.DoesNotExist:
       
    52             return data
       
    53