Skip to content
This repository has been archived by the owner on Dec 5, 2023. It is now read-only.

Commit

Permalink
Add home country (hc) to the langnames file
Browse files Browse the repository at this point in the history
  • Loading branch information
phillip-hopper committed Feb 17, 2018
1 parent 0b4051f commit 16838d7
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 8 deletions.
3 changes: 1 addition & 2 deletions readme-dev.md
Expand Up @@ -7,7 +7,7 @@ Also, the instructions assume you are using PyCharm or IntelliJ IDEA.

### Ubuntu prerequisites

sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk
sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk libpq-dev


### Install python versions
Expand Down Expand Up @@ -144,4 +144,3 @@ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key a
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
```

2 changes: 1 addition & 1 deletion requirements.txt
Expand Up @@ -27,7 +27,7 @@ Pillow==3.0.0
pinax-invitations==4.0.4
pinax-theme-bootstrap==7.2.0
pinax-types==0.10.0
psycopg2==2.6.1
psycopg2==2.7.4
python-dateutil==2.4.2
pytz==2015.7
redis==2.10.5
Expand Down
4 changes: 2 additions & 2 deletions td/models.py
Expand Up @@ -438,7 +438,7 @@ def names_text(cls):
def names_data(cls, short=False):
languages = cls.objects.all().order_by("code")
if short:
data = [dict(pk=x.pk, lc=x.lc, ln=x.ln, ang=x.ang, lr=x.lr) for x in languages]
data = [dict(pk=x.pk, lc=x.lc, ln=x.ln, ang=x.ang, lr=x.lr, hc=x.cc) for x in languages]
else:
# Filter out languages that have pending or rejected temporary language
# NOTE: Can this be simplified or turned into a list comprehension?
Expand All @@ -450,7 +450,7 @@ def names_data(cls, short=False):
x = lang
if x:
data.append(dict(pk=x.pk, lc=x.lc, ln=x.ln, ang=x.ang, alt=x.alt_name_all, cc=x.cc_all, lr=x.lr,
gw=x.gateway_flag, ld=x.get_direction_display()))
gw=x.gateway_flag, ld=x.get_direction_display(), hc=x.cc))
return data

@classmethod
Expand Down
16 changes: 15 additions & 1 deletion td/tests/test_views.py
Expand Up @@ -20,7 +20,7 @@
from ..resources.models import Questionnaire
from ..views import TempLanguageListView, TempLanguageDetailView, TempLanguageUpdateView, AjaxTemporaryCode,\
TempLanguageAdminView, TempLanguageWizardView, LanguageDetailView, codes_text_export, names_text_export,\
names_json_export, gateway_languages_autocomplete
names_json_export, names_json_export_short, gateway_languages_autocomplete
from ..forms import TempLanguageForm
from ..tests.models import NoSignalTestCase

Expand Down Expand Up @@ -86,6 +86,20 @@ def test_return_json(self, mock_jsondata_get):
self.assertIsInstance(response, JsonResponse)


class NamesJsonExportShortTestCase(TestCase):

@patch("td.models.Language.names_data")
def test_return_json(self, mock_lang_names_data):
mock_lang_names_data.return_value = [dict(pk=1, lc="en", ln="English", ang="English", lr="Europe", hc="GB")]
response = names_json_export_short(None)

# Must call Language.names_data(True)
mock_lang_names_data.assert_called_once_with(True)

# Must return JsonResponse
self.assertIsInstance(response, JsonResponse)


class LanguageDetailViewTestCase(TestCase):
def setUp(self):
self.request = RequestFactory().get("uw/languages/")
Expand Down
2 changes: 2 additions & 0 deletions td/urls.py
Expand Up @@ -23,6 +23,7 @@
codes_text_export,
names_text_export,
names_json_export,
names_json_export_short,
export_svg,
languages_autocomplete,
gateway_languages_autocomplete,
Expand All @@ -37,6 +38,7 @@
url(r"^exports/codes-d43.txt$", codes_text_export, name="codes_text_export"),
url(r"^exports/langnames.txt$", names_text_export, name="names_text_export"),
url(r"^exports/langnames.json$", names_json_export, name="names_json_export"),
url(r"^exports/langnames_short.json$", names_json_export_short, name="names_json_export_short"),
url(r"^exports/gatewaylanguages-map/$", export_svg, name="gateway_languages_map_export"),

url(r"^uw/", include("td.resources.urls")),
Expand Down
15 changes: 13 additions & 2 deletions td/views.py
Expand Up @@ -51,14 +51,23 @@ def names_json_export(request):
# NOTE: Temp solution to langnames.json caching problem
# NOTE: This is the caching way
# data = get_langnames()
# NOTE: This is the direct, snychronous way
# NOTE: This is the direct, synchronous way
# data = Language.names_data()
# NOTE: This is the DB/management command way
langnames = JSONData.objects.get(name="langnames")
# Set safe to False to allow list instead of dict to be returned
return JsonResponse(langnames.data, safe=False)


def names_json_export_short(request):

# NOTE: This is the direct, synchronous way
data = Language.names_data(True)

# Set safe to False to allow list instead of dict to be returned
return JsonResponse(data, safe=False)


@csrf_exempt
def export_svg(request):
svg = request.POST.get("data")
Expand Down Expand Up @@ -87,7 +96,9 @@ def get_langnames(short=False):

def languages_autocomplete(request):
term = request.GET.get("q").lower()
data = get_langnames(short=True)
# Using `Language.names_data(True)` because `get_langnames(short=True)` produces inconsistent results
# data = get_langnames(short=True)
data = Language.names_data(True)
d = []
if len(term) <= 3:
term = term.encode("utf-8")
Expand Down

0 comments on commit 16838d7

Please sign in to comment.