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 |