pytask/taskapp/forms.py
changeset 336 01c1e6966d86
parent 332 385702a0bbde
child 347 d291c08c62de
equal deleted inserted replaced
335:c3d5c4fc91ee 336:01c1e6966d86
     1 from django import forms
     1 from django import forms
     2 from pytask.taskapp.models import Task, WorkReport
     2 from pytask.taskapp.models import Task, WorkReport
     3 
     3 
     4 class TaskCreateForm(forms.ModelForm):
     4 class CreateTaskForm(forms.ModelForm):
     5     class Meta:
     5     class Meta:
     6         model = Task
     6         model = Task
     7         fields = ['title', 'desc', 'tags_field', 'pynts']
     7         fields = ['title', 'desc', 'tags_field', 'pynts']
     8 
     8 
     9     def clean_title(self):
     9     def clean_title(self):
    49             else:
    49             else:
    50                 return data
    50                 return data
    51         except Task.DoesNotExist:
    51         except Task.DoesNotExist:
    52             return data
    52             return data
    53 
    53 
       
    54 def AddReviewerForm(choices,instance=None):
       
    55     """ return a form object with appropriate choices """
       
    56     
       
    57     class myform(forms.Form):
       
    58         reviewer = forms.ChoiceField(choices=choices, required=True)
       
    59     form = myform(instance) if instance else myform()
       
    60     return form
       
    61 
       
    62 class ClaimTaskForm(forms.Form):
       
    63     message = forms.CharField(label="Proposal")
       
    64 
       
    65     def clean_message(self):
       
    66         data = self.cleaned_data['message'].strip()
       
    67         if not data:
       
    68             raise forms.ValidationError('Enter something as a proposal')
       
    69         return data
       
    70 
       
    71 
       
    72 def ChoiceForm(choices, instance=None):
       
    73     """ return a form object with appropriate choices """
       
    74     
       
    75     class myform(forms.Form):
       
    76         choice = forms.ChoiceField(choices=choices, required=True)
       
    77     form = myform(instance) if instance else myform()
       
    78     return form
       
    79 
       
    80 def AddTaskForm(task_choices, is_plain=False):
       
    81     """ if is_plain is true, it means the task has no subs/deps.
       
    82     so we also give a radio button to choose between subs and dependencies.
       
    83     else we only give choices.
       
    84     """
       
    85 
       
    86     class myForm(forms.Form):
       
    87         if is_plain:
       
    88             type_choices = [('S','Subtasks'),('D','Dependencies')]
       
    89             type = forms.ChoiceField(type_choices, widget=forms.RadioSelect)
       
    90 
       
    91         task = forms.ChoiceField(choices=task_choices)
       
    92     return myForm()
       
    93 
       
    94 def AssignPyntForm(choices, instance=None):
       
    95     
       
    96     class myForm(forms.Form):
       
    97         user = forms.ChoiceField(choices=choices, required=True)
       
    98         pynts = forms.IntegerField(min_value=0, required=True, help_text="Choose wisely since it cannot be undone.")
       
    99     return myForm(instance) if instance else myForm()
       
   100 
       
   101 def RemoveUserForm(choices, instance=None):
       
   102 
       
   103     class myForm(forms.Form):
       
   104         user = forms.ChoiceField(choices=choices, required=True)
       
   105         reason = forms.CharField(min_length=1, required=True)
       
   106     return myForm(instance) if instance else myForm()
       
   107 
       
   108 class WorkReportForm(forms.ModelForm):
       
   109 
       
   110     class Meta:
       
   111         model = WorkReport
       
   112         fields = ['remarks', 'attachment']
       
   113