summaryrefslogtreecommitdiff
path: root/mirrors
diff options
context:
space:
mode:
Diffstat (limited to 'mirrors')
-rw-r--r--mirrors/migrations/0015_assign_country_codes.py4
-rw-r--r--mirrors/models.py2
-rw-r--r--mirrors/utils.py4
-rw-r--r--mirrors/views.py9
4 files changed, 14 insertions, 5 deletions
diff --git a/mirrors/migrations/0015_assign_country_codes.py b/mirrors/migrations/0015_assign_country_codes.py
index c1b0f969..5d83e02c 100644
--- a/mirrors/migrations/0015_assign_country_codes.py
+++ b/mirrors/migrations/0015_assign_country_codes.py
@@ -4,12 +4,12 @@ from south.db import db
from south.v2 import DataMigration
from django.db import models
-from django_countries.countries import OFFICIAL_COUNTRIES
+from django_countries.data import COUNTRIES
class Migration(DataMigration):
def forwards(self, orm):
- reverse_map = dict((v, k) for k, v in OFFICIAL_COUNTRIES.items())
+ reverse_map = dict((v.upper(), k) for k, v in COUNTRIES.items())
# add a few special cases to the list that we know might exist
reverse_map['GREAT BRITAIN'] = 'GB'
reverse_map['KOREA'] = 'KR'
diff --git a/mirrors/models.py b/mirrors/models.py
index 57664562..0b053043 100644
--- a/mirrors/models.py
+++ b/mirrors/models.py
@@ -5,7 +5,7 @@ from urlparse import urlparse
from django.core.exceptions import ValidationError
from django.db import models
from django.db.models.signals import pre_save
-from django_countries import CountryField
+from django_countries.fields import CountryField
from .fields import IPNetworkField
from main.utils import set_created_field
diff --git a/mirrors/utils.py b/mirrors/utils.py
index 0dd26ae0..fe18cd6a 100644
--- a/mirrors/utils.py
+++ b/mirrors/utils.py
@@ -88,6 +88,8 @@ def annotate_url(url, url_data):
('success_count', 0),
('check_count', 0),
('completion_pct', None),
+ ('duration_avg', None),
+ ('duration_stddev', None),
('last_check', None),
('last_sync', None),
('delay', None),
@@ -177,7 +179,7 @@ def get_mirror_errors(cutoff=DEFAULT_CUTOFF, mirror_id=None, show_all=False):
errors = list(errors)
for err in errors:
- err['country'] = Country(err['url__country'])
+ err['country'] = Country(err['url__country'], flag_url='')
return errors
diff --git a/mirrors/views.py b/mirrors/views.py
index 34336165..26b5b802 100644
--- a/mirrors/views.py
+++ b/mirrors/views.py
@@ -11,7 +11,8 @@ from django.http import Http404, HttpResponse
from django.shortcuts import get_object_or_404, redirect, render
from django.utils.timezone import now
from django.views.decorators.csrf import csrf_exempt
-from django_countries.countries import COUNTRIES
+from django.views.decorators.http import condition
+from django_countries.data import COUNTRIES
from .models import (Mirror, MirrorUrl, MirrorProtocol, MirrorLog,
CheckLocation)
@@ -220,6 +221,11 @@ def url_details(request, name, url_id):
return render(request, 'mirrors/url_details.html', context)
+def status_last_modified(request, *args, **kwargs):
+ return MirrorLog.objects.values_list('check_time', flat=True).latest()
+
+
+@condition(last_modified_func=status_last_modified)
def status(request, tier=None):
if tier is not None:
tier = int(tier)
@@ -297,6 +303,7 @@ class ExtendedMirrorStatusJSONEncoder(MirrorStatusJSONEncoder):
return super(ExtendedMirrorStatusJSONEncoder, self).default(obj)
+@condition(last_modified_func=status_last_modified)
def status_json(request, tier=None):
if tier is not None:
tier = int(tier)