2
2
# GNU Affero General Public License version 3 (see the file LICENSE).
4
4
from django.db import models
5
from django.forms import ModelForm
5
from django.forms import ModelChoiceField, ModelForm, Textarea, TextInput
6
6
from django.forms import fields
8
8
from offspring.web.queuemanager.models import (
14
from offspring.web.queuemanager.widgets import SelectWithAddNew
14
class ProjectForm(ModelForm):
16
class ProjectBaseForm(ModelForm):
15
17
status = fields.CharField(max_length=200,
16
18
widget=fields.Select(choices=Project.STATUS_CHOICES), required=True)
19
exclude = ('name', 'arch', 'priority', 'is_active', 'config_url')
23
'name' : TextInput(attrs={'style': 'text-transform: lowercase;'}),
24
'series' : TextInput(attrs={'style': 'text-transform: lowercase;'}),
25
'config_url': TextInput(attrs={'size': 50}),
26
'notes' : Textarea(attrs={'cols': 73, 'rows' : 4}),
30
return self.cleaned_data['name'].lower()
32
def clean_series(self):
33
return self.cleaned_data['series'].lower()
36
class CreateProjectForm(ProjectBaseForm):
37
launchpad_project = ModelChoiceField(
38
LaunchpadProject.objects, widget=SelectWithAddNew, required=False)
39
class Meta(ProjectBaseForm.Meta):
40
exclude = ('priority', 'is_active', 'suite')
43
class EditProjectForm(ProjectBaseForm):
44
launchpad_project = ModelChoiceField(
45
LaunchpadProject.objects, widget=SelectWithAddNew, required=False)
46
class Meta(ProjectBaseForm.Meta):
47
exclude = ('name', 'priority', 'is_active')
22
50
class ReleaseForm(ModelForm):
25
53
fields = ( 'name', 'milestone', 'tag', 'checklist_url', 'notes')
56
class LaunchpadProjectForm(ModelForm):
58
model = LaunchpadProject
60
'name' : TextInput(attrs={'style': 'text-transform: lowercase;'}),
64
return self.cleaned_data['name'].lower()