From 2fd78dfa0019d1b1d25f89a7729b5ebb0f341a93 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Tue, 14 Jun 2011 18:11:09 -0500 Subject: Allow mirror country field to be persisted to DB as NULL You need a custom field type in Django to allow this. Signed-off-by: Dan McGee --- mirrors/models.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'mirrors/models.py') diff --git a/mirrors/models.py b/mirrors/models.py index bcde210c..4f70e5a9 100644 --- a/mirrors/models.py +++ b/mirrors/models.py @@ -1,8 +1,17 @@ +import socket +from urlparse import urlparse + from django.db import models from django.core.exceptions import ValidationError -import socket -from urlparse import urlparse +class NullCharField(models.CharField): + description = "String (up to %(max_length)s), NULL if value is empty" + _south_introspects = True + + def get_prep_value(self, value): + if value == '': + return None + return self.to_python(value) TIER_CHOICES = ( (0, 'Tier 0'), @@ -58,7 +67,7 @@ class MirrorUrl(models.Model): protocol = models.ForeignKey(MirrorProtocol, related_name="urls", editable=False, on_delete=models.PROTECT) mirror = models.ForeignKey(Mirror, related_name="urls") - country = models.CharField(max_length=255, blank=True, null=True, + country = NullCharField(max_length=255, null=True, blank=True, db_index=True) has_ipv4 = models.BooleanField("IPv4 capable", default=True, editable=False) -- cgit v1.2.3-2-g168b From 0f6c80e9a36bc5770e95543b4374c5ace4383cf5 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Fri, 29 Jul 2011 23:34:24 -0500 Subject: mirrors: do protocol formatting in template Signed-off-by: Dan McGee --- mirrors/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mirrors/models.py') diff --git a/mirrors/models.py b/mirrors/models.py index 4f70e5a9..a8217844 100644 --- a/mirrors/models.py +++ b/mirrors/models.py @@ -42,7 +42,7 @@ class Mirror(models.Model): def supported_protocols(self): protocols = MirrorProtocol.objects.filter( urls__mirror=self).order_by('protocol').distinct() - return ", ".join([p.protocol for p in protocols]) + return sorted(protocols) def downstream(self): return Mirror.objects.filter(upstream=self).order_by('name') -- cgit v1.2.3-2-g168b