summaryrefslogtreecommitdiffstats
path: root/isotests/models.py
diff options
context:
space:
mode:
authorTom Willemsen <tom.willemsen@archlinux.us>2011-04-28 20:00:27 +0200
committerDan McGee <dan@archlinux.org>2011-04-28 20:18:29 +0200
commit00e096ddf0654d32e67ac8bc47f3de01ed7e740b (patch)
tree70885935cb7e3e90af07f42708a9d04d818d8e4e /isotests/models.py
parentf4229daac60fa90cbf8d77bfdffd88a467869b3c (diff)
downloadarchweb-00e096ddf0654d32e67ac8bc47f3de01ed7e740b.tar.gz
archweb-00e096ddf0654d32e67ac8bc47f3de01ed7e740b.tar.xz
isotests: style cleanup, ui improvements
* 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>
Diffstat (limited to 'isotests/models.py')
-rw-r--r--isotests/models.py135
1 files changed, 42 insertions, 93 deletions
diff --git a/isotests/models.py b/isotests/models.py
index d9cfc78..bffb2d9 100644
--- a/isotests/models.py
+++ b/isotests/models.py
@@ -1,128 +1,77 @@
from django.db import models
from django.db.models import Max
-from datetime import datetime
-# Create your models here.
-class Iso(models.Model):
- date = models.DateField()
-
- def __unicode__(self):
- return str(self.date)
+class IsoOption(models.Model):
+ class Meta:
+ abstract = True
-class Architecture(models.Model):
name = models.CharField(max_length=200)
def __unicode__(self):
- return self.name
+ return str(self.name)
def get_success_test(self):
- return self.test_set.filter(success=True).aggregate(Max('iso__date'))['iso__date__max']
- def get_failed_test(self):
- return self.test_set.filter(success=False).aggregate(Max('iso__date'))['iso__date__max']
-
-class Isotype(models.Model):
- name = models.CharField(max_length=200)
+ test = self.test_set.filter(success=True).annotate(Max('iso__id'))
+ if test:
+ return test[0].iso.name
+ return None
- def __unicode__(self):
- return self.name
- def get_success_test(self):
- return self.test_set.filter(success=True).aggregate(Max('iso__date'))['iso__date__max']
def get_failed_test(self):
- return self.test_set.filter(success=False).aggregate(Max('iso__date'))['iso__date__max']
+ test = self.test_set.filter(success=False).annotate(Max('iso__id'))
+ if test:
+ return test[0].iso.name
+ return None
-class Boottype(models.Model):
- name = models.CharField(max_length=200)
+class Iso(models.Model):
+ name = models.CharField(max_length=500)
+ active = models.BooleanField(default=True)
def __unicode__(self):
return self.name
- def get_success_test(self):
- return self.test_set.filter(success=True).aggregate(Max('iso__date'))['iso__date__max']
- def get_failed_test(self):
- return self.test_set.filter(success=False).aggregate(Max('iso__date'))['iso__date__max']
-class Hardware(models.Model):
- name = models.CharField(max_length=200)
+class Architecture(IsoOption):
+ pass
- def __unicode__(self):
- return self.name
- def get_success_test(self):
- return self.test_set.filter(success=True).aggregate(Max('iso__date'))['iso__date__max']
- def get_failed_test(self):
- return self.test_set.filter(success=False).aggregate(Max('iso__date'))['iso__date__max']
+class IsoType(IsoOption):
+ pass
-class InstallType(models.Model):
- name = models.CharField(max_length=200)
+class BootType(IsoOption):
+ pass
- def __unicode__(self):
- return self.name
- def get_success_test(self):
- return self.test_set.filter(success=True).aggregate(Max('iso__date'))['iso__date__max']
- def get_failed_test(self):
- return self.test_set.filter(success=False).aggregate(Max('iso__date'))['iso__date__max']
+class HardwareType(IsoOption):
+ pass
-class Source(models.Model):
- name = models.CharField(max_length=200)
+class InstallType(IsoOption):
+ pass
- def __unicode__(self):
- return self.name
- def get_success_test(self):
- return self.test_set.filter(success=True).aggregate(Max('iso__date'))['iso__date__max']
- def get_failed_test(self):
- return self.test_set.filter(success=False).aggregate(Max('iso__date'))['iso__date__max']
-
-class Clockchoice(models.Model):
- name = models.CharField(max_length=200)
-
- def __unicode__(self):
- return self.name
- def get_success_test(self):
- return self.test_set.filter(success=True).aggregate(Max('iso__date'))['iso__date__max']
- def get_failed_test(self):
- return self.test_set.filter(success=False).aggregate(Max('iso__date'))['iso__date__max']
-
-class Filesystem(models.Model):
- name = models.CharField(max_length=200)
-
- def __unicode__(self):
- return self.name
- def get_success_test(self):
- return self.test_set.filter(success=True).aggregate(Max('iso__date'))['iso__date__max']
- def get_failed_test(self):
- return self.test_set.filter(success=False).aggregate(Max('iso__date'))['iso__date__max']
+class Source(IsoOption):
+ pass
-class Module(models.Model):
- name = models.CharField(max_length=200)
+class ClockChoice(IsoOption):
+ pass
- def __unicode__(self):
- return self.name
- def get_success_test(self):
- return self.test_set.filter(success=True).aggregate(Max('iso__date'))['iso__date__max']
- def get_failed_test(self):
- return self.test_set.filter(success=False).aggregate(Max('iso__date'))['iso__date__max']
+class Filesystem(IsoOption):
+ pass
-class Bootloader(models.Model):
- name = models.CharField(max_length=200)
+class Module(IsoOption):
+ pass
- def __unicode__(self):
- return self.name
- def get_success_test(self):
- return self.test_set.filter(success=True).aggregate(Max('iso__date'))['iso__date__max']
- def get_failed_test(self):
- return self.test_set.filter(success=False).aggregate(Max('iso__date'))['iso__date__max']
+class Bootloader(IsoOption):
+ pass
class Test(models.Model):
user_name = models.CharField(max_length=500)
user_email = models.EmailField()
iso = models.ForeignKey(Iso)
- arch = models.ForeignKey(Architecture)
- isotype = models.ForeignKey(Isotype)
- boottype = models.ForeignKey(Boottype)
- hardwaretype = models.ForeignKey(Hardware)
- installtype = models.ForeignKey(InstallType)
+ architecture = models.ForeignKey(Architecture)
+ iso_type = models.ForeignKey(IsoType)
+ boot_type = models.ForeignKey(BootType)
+ hardware_type = models.ForeignKey(HardwareType)
+ install_type = models.ForeignKey(InstallType)
source = models.ForeignKey(Source)
- clock = models.ForeignKey(Clockchoice)
+ clock_choice = models.ForeignKey(ClockChoice)
filesystem = models.ForeignKey(Filesystem)
- ms = models.ManyToManyField(Module, null=True, blank=True)
+ modules = models.ManyToManyField(Module, null=True, blank=True)
rollback = models.BooleanField()
rollback_filesystem = models.ForeignKey(Filesystem,
related_name="rollback_test", null=True, blank=True)