forms.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. '''
  2. @author: olivier.massot, 2018
  3. '''
  4. from django import forms
  5. from django.contrib.auth.forms import UserCreationForm
  6. from django.contrib.auth.models import User
  7. from martor.fields import MartorFormField
  8. from main.models import Story, Epic, Comment
  9. class RegisterForm(UserCreationForm):
  10. class Meta:
  11. model = User
  12. fields = ('username', 'first_name', 'last_name', 'email')
  13. def save(self, commit=True):
  14. user = super(RegisterForm, self).save(commit=False)
  15. user.first_name = self.cleaned_data["first_name"]
  16. user.last_name = self.cleaned_data["last_name"]
  17. user.email = self.cleaned_data["email"]
  18. if commit:
  19. user.save()
  20. class ProfileForm(forms.ModelForm):
  21. class Meta:
  22. model = User
  23. fields = ('username', 'first_name', 'last_name', 'email')
  24. class EpicForm(forms.ModelForm):
  25. description = MartorFormField(label="Description")
  26. class Meta:
  27. model = Epic
  28. fields = ('project', 'name', 'size', 'value', 'description')
  29. def __init__(self, *args, **kwargs):
  30. super(EpicForm, self).__init__(*args, **kwargs)
  31. self.fields['description'].required = False
  32. class StoryForm(forms.ModelForm):
  33. description = MartorFormField(label="Description")
  34. class Meta:
  35. model = Story
  36. widgets = {'epic': forms.HiddenInput(), 'author': forms.HiddenInput()}
  37. fields = ('epic', 'author', 'name', 'weight', 'description', 'assignees', 'sprints')
  38. def __init__(self, *args, **kwargs):
  39. super(StoryForm, self).__init__(*args, **kwargs)
  40. self.fields['description'].required = False
  41. self.fields['assignees'].required = False
  42. self.fields['sprints'].required = False
  43. class CommentForm(forms.ModelForm):
  44. class Meta:
  45. model = Comment
  46. fields = ('content',)
  47. content = MartorFormField(label="Ajouter un commentaire")