# Return a list of all the columns for the matrix
return [b for a,b in versions]
+class FeatureMatrixField(models.IntegerField):
+ def __init__(self, verbose_name, visible_default=True):
+ super(FeatureMatrixField, self).__init__(null=False, blank=False, default=0, verbose_name=verbose_name, choices=choices)
+ self.visible_default = visible_default
+
class Feature(PgModel, models.Model):
group = models.ForeignKey(FeatureGroup, null=False, blank=False)
featurename = models.CharField(max_length=100, null=False, blank=False)
featuredescription = models.TextField(null=False, blank=True)
#WARNING! All fields that start with "v" will be considered versions!
- v74 = models.IntegerField(null=False, blank=False, default=0, verbose_name="7.4", choices=choices)
- v80 = models.IntegerField(null=False, blank=False, default=0, verbose_name="8.0", choices=choices)
- v81 = models.IntegerField(null=False, blank=False, default=0, verbose_name="8.1", choices=choices)
- v82 = models.IntegerField(null=False, blank=False, default=0, verbose_name="8.2", choices=choices)
- v83 = models.IntegerField(null=False, blank=False, default=0, verbose_name="8.3", choices=choices)
- v84 = models.IntegerField(null=False, blank=False, default=0, verbose_name="8.4", choices=choices)
- v90 = models.IntegerField(null=False, blank=False, default=0, verbose_name="9.0", choices=choices)
- v91 = models.IntegerField(null=False, blank=False, default=0, verbose_name="9.1", choices=choices)
+ v74 = FeatureMatrixField(verbose_name="7.4")
+ v80 = FeatureMatrixField(verbose_name="8.0")
+ v81 = FeatureMatrixField(verbose_name="8.1")
+ v82 = FeatureMatrixField(verbose_name="8.2")
+ v83 = FeatureMatrixField(verbose_name="8.3")
+ v84 = FeatureMatrixField(verbose_name="8.4")
+ v90 = FeatureMatrixField(verbose_name="9.0")
+ v91 = FeatureMatrixField(verbose_name="9.1")
purge_urls = ('/about/featurematrix/.*', )
else:
return 'detail/%s/' % self.id
-versions = [(f.name,f.verbose_name) for f in Feature()._meta.fields if f.name.startswith('v')]
+versions = [(f.name,f.verbose_name) for f in Feature()._meta.fields if f.name.startswith('v') and f.visible_default]