summaryrefslogtreecommitdiff
path: root/mirrors/models.py
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-12-05 01:29:30 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-12-05 01:29:30 +0000
commit420a9ea6ab7a912f2288b6f8e852ea2e19556ec9 (patch)
treeb337b7e29cf8303d0b78b5cb165919ffc1a57c4a /mirrors/models.py
parent9426870d705cdc8f18b860e00da909e0e812bef7 (diff)
parent183c4d9cefa95f46c3fa3a6936f837542426eac2 (diff)
Merge branch 'master' of /srv/git/repositories/parabolaweb
Diffstat (limited to 'mirrors/models.py')
-rw-r--r--mirrors/models.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/mirrors/models.py b/mirrors/models.py
index bcde210c..a8217844 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'),
@@ -33,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')
@@ -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)