diff --git a/.github/workflows/deploytest.yml b/.github/workflows/deploytest.yml index e3ab41691b..cd2b7f95cc 100644 --- a/.github/workflows/deploytest.yml +++ b/.github/workflows/deploytest.yml @@ -82,4 +82,4 @@ jobs: sudo apt-get update -y sudo apt-get install -y gettext - name: Test Django makemessages - run: python contentcuration/manage.py makemessages + run: python contentcuration/manage.py makemessages --all diff --git a/Makefile b/Makefile index 734c628ade..5f0035c334 100644 --- a/Makefile +++ b/Makefile @@ -65,9 +65,7 @@ i18n-extract-frontend: i18n-extract-backend: # generate backend messages - cd contentcuration && python manage.py makemessages - # workaround for Django 1.11 makemessages spitting out an invalid English translation file - python bin/fix_django_messages.py + cd contentcuration && python manage.py makemessages --all i18n-extract: i18n-extract-frontend i18n-extract-backend diff --git a/bin/fix_django_messages.py b/bin/fix_django_messages.py deleted file mode 100644 index 45fb400860..0000000000 --- a/bin/fix_django_messages.py +++ /dev/null @@ -1,29 +0,0 @@ -import os - -script_dir = os.path.dirname(os.path.abspath(__file__)) -root_dir = os.path.abspath(os.path.join(script_dir, '..')) - - -def fix_django1_11_en_po(): - """ - When Django 1.11 creates a new English .po file as a result of a call to makemessages, it generates it with - placeholder values for the plural forms definition. This replaces that text with the correct plural forms values, - based on the fix used for Django 2.0. - - See here for more info: https://code.djangoproject.com/ticket/28709 - - :return: - """ - en_file = os.path.join(root_dir, 'contentcuration', 'locale', 'en', 'LC_MESSAGES', 'django.po') - f = open(en_file) - data = f.read() - f.close() - - data = data.replace(' nplurals=INTEGER; plural=EXPRESSION;', ' nplurals=2; plural=(n != 1);') - - f = open(en_file, 'w') - f.write(data) - f.close() - -if __name__ == '__main__': - fix_django1_11_en_po() diff --git a/contentcuration/contentcuration/api.py b/contentcuration/contentcuration/api.py index c7fb1c249c..871efcd876 100644 --- a/contentcuration/contentcuration/api.py +++ b/contentcuration/contentcuration/api.py @@ -1,8 +1,6 @@ """ This module contains utility functions used by API endpoints. """ -from future import standard_library -standard_library.install_aliases() import hashlib import logging import os diff --git a/contentcuration/contentcuration/catalog_settings.py b/contentcuration/contentcuration/catalog_settings.py index d1bd6a2b78..cf2fd3f788 100644 --- a/contentcuration/contentcuration/catalog_settings.py +++ b/contentcuration/contentcuration/catalog_settings.py @@ -1,7 +1,7 @@ # flake8: noqa from .production_settings import * # noqa -LANGUAGES += (("ar", ugettext("Arabic")),) # noqa +LANGUAGES += (("ar", gettext("Arabic")),) # noqa LIBRARY_MODE = True SITE_READ_ONLY = True diff --git a/contentcuration/contentcuration/celery.py b/contentcuration/contentcuration/celery.py index 1ae0072279..6e13137d64 100644 --- a/contentcuration/contentcuration/celery.py +++ b/contentcuration/contentcuration/celery.py @@ -7,7 +7,7 @@ from contentcuration.utils.celery.app import CeleryApp # set the default Django settings module for the 'celery' program. -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'contentcuration.settings') +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "contentcuration.settings") app = CeleryApp('contentcuration') @@ -19,4 +19,4 @@ @app.task(bind=True) def debug_task(self): - print('Request: {0!r}'.format(self.request)) + print("Request: {0!r}".format(self.request)) diff --git a/contentcuration/contentcuration/context_processors.py b/contentcuration/contentcuration/context_processors.py index dca47c14a3..86d372895b 100644 --- a/contentcuration/contentcuration/context_processors.py +++ b/contentcuration/contentcuration/context_processors.py @@ -1,6 +1,6 @@ from django.conf import settings -from django.core.urlresolvers import get_resolver from django.template.loader import render_to_string +from django.urls import get_resolver from django.utils.html import mark_safe from django_js_reverse.core import _safe_json from django_js_reverse.core import generate_json @@ -11,14 +11,18 @@ def site_variables(request): - return {'INCIDENT': settings.INCIDENT, - 'BETA_MODE': settings.BETA_MODE, - 'DEPRECATED': "contentworkshop" in request.get_host(), - 'STORAGE_BASE_URL': "{bucket}/{storage_root}/".format(bucket=settings.AWS_S3_BUCKET_NAME, storage_root=settings.STORAGE_ROOT), - 'STORAGE_HOST': settings.AWS_S3_ENDPOINT_URL, - 'DEBUG': settings.DEBUG, - 'LANG_INFO': json_for_parse_from_data(language_globals()), - 'LOGGED_IN': not request.user.is_anonymous()} + return { + "INCIDENT": settings.INCIDENT, + "BETA_MODE": settings.BETA_MODE, + "DEPRECATED": "contentworkshop" in request.get_host(), + "STORAGE_BASE_URL": "{bucket}/{storage_root}/".format( + bucket=settings.AWS_S3_BUCKET_NAME, storage_root=settings.STORAGE_ROOT + ), + "STORAGE_HOST": settings.AWS_S3_ENDPOINT_URL, + "DEBUG": settings.DEBUG, + "LANG_INFO": json_for_parse_from_data(language_globals()), + "LOGGED_IN": not request.user.is_anonymous, + } def url_tag(self): @@ -37,7 +41,7 @@ def url_tag(self): context={"data": _safe_json(data), "js_name": "window.Urls"}, ) return { - 'I18N_URLS': mark_safe( + "I18N_URLS": mark_safe( """ - - diff --git a/contentcuration/contentcuration/frontend/shared/views/form/CountryField.vue b/contentcuration/contentcuration/frontend/shared/views/form/CountryField.vue index 94a0bb9f90..31b602150c 100644 --- a/contentcuration/contentcuration/frontend/shared/views/form/CountryField.vue +++ b/contentcuration/contentcuration/frontend/shared/views/form/CountryField.vue @@ -28,6 +28,7 @@ countries.registerLocale(require('i18n-iso-countries/langs/es.json')); countries.registerLocale(require('i18n-iso-countries/langs/ar.json')); countries.registerLocale(require('i18n-iso-countries/langs/fr.json')); + countries.registerLocale(require('i18n-iso-countries/langs/pt.json')); export default { name: 'CountryField', diff --git a/contentcuration/contentcuration/frontend/shared/views/policies/CommunityStandardsModal.vue b/contentcuration/contentcuration/frontend/shared/views/policies/CommunityStandardsModal.vue index 3caa93a7ef..e861a29652 100644 --- a/contentcuration/contentcuration/frontend/shared/views/policies/CommunityStandardsModal.vue +++ b/contentcuration/contentcuration/frontend/shared/views/policies/CommunityStandardsModal.vue @@ -1,6 +1,13 @@