mirror of
https://github.com/postgres/pgweb.git
synced 2025-08-03 15:38:59 +00:00

The fact that we tried to populate it already in the definition of the form broke the ability to run "migrate" on a completely new system. Issue reported by Andrew Dunstan
40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
from django import forms
|
|
from django.db.models import Q
|
|
|
|
from pgweb.core.models import Version
|
|
|
|
|
|
class _version_choices():
|
|
def __iter__(self):
|
|
yield ('-1', '** Select version')
|
|
q = Q(supported=True) | Q(testing__gt=0)
|
|
for v in Version.objects.filter(q):
|
|
for minor in range(v.latestminor, -1, -1):
|
|
if not v.testing or minor > 0:
|
|
# For beta/rc versions, there is no beta0, so exclude it
|
|
s = v.buildversionstring(minor)
|
|
yield (s, s)
|
|
yield ('Unsupported/Unknown', 'Unsupported/Unknown')
|
|
|
|
|
|
class SubmitBugForm(forms.Form):
|
|
name = forms.CharField(max_length=100, required=True)
|
|
email = forms.EmailField(max_length=100, required=True)
|
|
pgversion = forms.CharField(max_length=20, required=True,
|
|
label="PostgreSQL version")
|
|
os = forms.CharField(max_length=50, required=True,
|
|
label="Operating system")
|
|
shortdesc = forms.CharField(max_length=100, required=True,
|
|
label="Short description")
|
|
details = forms.CharField(required=True, widget=forms.Textarea)
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super(SubmitBugForm, self).__init__(*args, **kwargs)
|
|
|
|
self.fields['pgversion'].widget = forms.Select(choices=_version_choices())
|
|
|
|
def clean_pgversion(self):
|
|
if self.cleaned_data.get('pgversion') == '-1':
|
|
raise forms.ValidationError('You must select a version')
|
|
return self.cleaned_data.get('pgversion')
|