00e096ddf0
* Using radio buttons for widgets is smarter. * Model names cleanup. * Test.ms: totally un-descriptive field name, should be modules. * models, Iso: Likely need more than a date field here. Removed date and added name. * get_success_test/get_failed_test: now on abstract superclass * tests.py: I wasn't using these, so I might as well remove it. * admin.py: convention is not to use * imports. * models.py: "# Create your models here." -> not needed. * urls.py: I wasn't using info_dict anymore; I had a blank second pattern definition, and I should follow indentation patterns from elsewhere in the project. * views.py, add: switched to using mostly direct_to_template to avoid some of the boilerplate. * isotest/templates: was old, not used. * I had 4 + 1 templates, but only two views- these other ones were old, unnecessary and not wired up. Signed-off-by: Dan McGee <dan@archlinux.org>
67 lines
2.5 KiB
Python
67 lines
2.5 KiB
Python
from django.http import HttpResponse, HttpResponseRedirect
|
|
from django.forms import ModelForm, RadioSelect, CheckboxSelectMultiple
|
|
from django.forms import ModelChoiceField
|
|
from isotests.models import Iso, Architecture, IsoType, BootType
|
|
from isotests.models import HardwareType, InstallType, Source, Test
|
|
from isotests.models import ClockChoice, Filesystem, Module, Bootloader
|
|
from django.template import Context, loader
|
|
from django.views.generic.simple import direct_to_template
|
|
|
|
class TestForm(ModelForm):
|
|
class Meta:
|
|
model = Test
|
|
widgets = {
|
|
"architecture": RadioSelect(),
|
|
"iso_type": RadioSelect(),
|
|
"boot_type": RadioSelect(),
|
|
"hardware_type": RadioSelect(),
|
|
"install_type": RadioSelect(),
|
|
"source": RadioSelect(),
|
|
"clock_choice": RadioSelect(),
|
|
"filesystem": RadioSelect(),
|
|
"rollback_filesystem": RadioSelect(),
|
|
"bootloader": RadioSelect(),
|
|
"modules": CheckboxSelectMultiple(),
|
|
"rollback_modules": CheckboxSelectMultiple(),
|
|
}
|
|
iso = ModelChoiceField(queryset=Iso.objects.filter(active=True))
|
|
|
|
def add_result(request):
|
|
if request.method == 'POST':
|
|
form = TestForm(request.POST)
|
|
if form.is_valid():
|
|
form.save()
|
|
return HttpResponseRedirect('/isotests')
|
|
else:
|
|
form = TestForm()
|
|
|
|
context = {'form': form}
|
|
return direct_to_template(request, 'isotests/add.html', context)
|
|
|
|
def view_results(request):
|
|
architecture_list = Architecture.objects.all()
|
|
iso_type_list = IsoType.objects.all()
|
|
boot_type_list = BootType.objects.all()
|
|
hardware_type_list = HardwareType.objects.all()
|
|
install_type_list = InstallType.objects.all()
|
|
source_list = Source.objects.all()
|
|
clock_choice_list = ClockChoice.objects.all()
|
|
module_list = Module.objects.all()
|
|
filesystem_list = Filesystem.objects.all()
|
|
bootloader_list = Bootloader.objects.all()
|
|
|
|
t = loader.get_template("isotests/results.html")
|
|
c = Context({
|
|
'architecture_list': architecture_list,
|
|
'iso_type_list': iso_type_list,
|
|
'boot_type_list': boot_type_list,
|
|
'hardware_type_list': hardware_type_list,
|
|
'install_type_list': install_type_list,
|
|
'source_list': source_list,
|
|
'clock_choices_list': clock_choice_list,
|
|
'filesystem_list': filesystem_list,
|
|
'module_list': module_list,
|
|
'bootloader_list': bootloader_list,
|
|
})
|
|
return HttpResponse(t.render(c))
|