Skip to content

Commit

Permalink
Revert "[ERP-840] Allow users to register with more languages than th…
Browse files Browse the repository at this point in the history
…ose supporting translations"

This reverts commit 6139632.
  • Loading branch information
lexie committed Nov 29, 2023
1 parent 6139632 commit f83f291
Show file tree
Hide file tree
Showing 7 changed files with 7 additions and 56 deletions.
4 changes: 2 additions & 2 deletions rdrf/rdrf/forms/registration_forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from registration.users import UsernameField, UserModel
from registration.forms import RegistrationForm
from rdrf.helpers.utils import get_preferred_languages, get_all_language_codes
from rdrf.helpers.utils import get_preferred_languages
from registry.patients.models import Patient


Expand All @@ -13,7 +13,7 @@ def _tuple(code, name):


def _preferred_languages():
languages = get_all_language_codes()[1]
languages = get_preferred_languages()
return [_tuple(lang.code, lang.name) for lang in languages] if languages else [_tuple('en', 'English')]


Expand Down
25 changes: 0 additions & 25 deletions rdrf/rdrf/helpers/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -705,31 +705,6 @@ def get_supported_languages():
return [Language(pair[0], pair[1]) for pair in settings.LANGUAGES]


def get_all_language_codes():
from collections import namedtuple
from django.conf import settings
from langcodes import Language, standardize_tag, LANGUAGE_ALPHA3

languages = []
language_info = namedtuple('Language', ['code', 'name'])
languages_in_settings = dict(settings.LANGUAGES)
language_codes = list(languages_in_settings.keys())
extra_language_codes = LANGUAGE_ALPHA3.keys()
language_codes.extend(code for code in extra_language_codes if code not in language_codes)

for subtag in language_codes:
if subtag == 'pseudo':
languages.append(language_info(subtag, subtag))
elif subtag in languages_in_settings and not any(subtag == language.code for language in languages):
languages.append(language_info(subtag, languages_in_settings[subtag]))
else:
language_name = Language.get(standardize_tag(subtag)).autonym()
if 'Unknown' not in language_name and not any(subtag == language.code.split('-')[0] for language in languages):
languages.append(language_info(subtag, language_name))

return [language.code for language in languages], languages


def applicable_forms(registry_model, patient_model):
patient_type = patient_model.patient_type or "default"
return applicable_forms_for_patient_type(registry_model, patient_type)
Expand Down
21 changes: 1 addition & 20 deletions rdrf/rdrf/templates/registration/registration_login_details.html
Original file line number Diff line number Diff line change
@@ -1,25 +1,7 @@
{% load i18n static %}
{#{% convert_language_code 'fr-CA' as browser_language %}#}

<script type="text/javascript" src="{% static 'js/show_password.js' %}"></script>
<script>
function getPureLanguageCode(language) {
return language.split('-')[0];
}

function constructPreferredLanguages() {
const browser_language = navigator.languages[0];
const not_in_languages_array = !{{ all_language_codes|safe }}.includes(browser_language);

{{ preferred_languages|safe }}.forEach((language) => {
$("#id_preferred_languages").append(`
<option value="${language.code}"
${(language.code === browser_language) || (not_in_languages_array && getPureLanguageCode(language.code) == getPureLanguageCode(browser_language)) ? 'selected' : ''}
>${language.name}</option>
`);
});
}

$(document).ready(function() {
initToggleShowPassword($("input[id^='id_password']"), $("#id_toggle-password"));

Expand All @@ -31,7 +13,6 @@
passwordHint.addEventListener('hidden.bs.collapse', function() {
$(passwordHintToggle).text('{% trans "Show password requirements" %}');
});
constructPreferredLanguages();
});
</script>

Expand Down Expand Up @@ -76,7 +57,7 @@
{% if preferred_languages %}
<div class="col-12">
<label for="id_preferred_languages">{{form.preferred_languages.label}}</label>
<select name="preferred_languages" class="form-select" id="id_preferred_languages" aria-label="Preferred languages"></select>
{{form.preferred_languages}}
</div>
{% endif %}
</div>
Expand Down
6 changes: 2 additions & 4 deletions rdrf/rdrf/views/registration_rdrf.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from registration.backends.default.views import RegistrationView, ActivationView

from rdrf.models.definition.models import Registry
from rdrf.helpers.utils import get_preferred_languages, get_all_language_codes
from rdrf.helpers.utils import get_preferred_languages

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -44,12 +44,10 @@ def dispatch(self, request, *args, **kwargs):
return super().dispatch(request, *args, **kwargs)

def get_context_data(self, **kwargs):
all_language_codes, languages_dict = get_all_language_codes()
context = super().get_context_data(**kwargs)
context['registry_code'] = self.registry_code
context['preferred_languages'] = [{'code': lang.code, 'name': lang.name} for lang in languages_dict]
context['preferred_languages'] = get_preferred_languages()
context['is_mobile'] = self.request.user_agent.is_mobile
context['all_language_codes'] = all_language_codes
return context

def post(self, request, *args, **kwargs):
Expand Down
4 changes: 2 additions & 2 deletions rdrf/registry/groups/admin_forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from django.utils.safestring import mark_safe
from django.utils.translation import gettext as _

from rdrf.helpers.utils import get_supported_languages, get_all_language_codes
from rdrf.helpers.utils import get_supported_languages
from registry.groups import GROUPS as RDRF_GROUPS
from registry.groups.forms import working_group_optgroup_choices
from registry.groups.models import WorkingGroup
Expand Down Expand Up @@ -116,7 +116,7 @@ class UserChangeForm(UserMixin, forms.ModelForm):
password = ReadOnlyPasswordHashField(
help_text=(OldUserChangeForm.base_fields['password'].help_text.format('../password/')))

preferred_language = ChoiceField(choices=get_all_language_codes()[1])
preferred_language = ChoiceField(choices=get_supported_languages())

class Meta:
fields = "__all__"
Expand Down
1 change: 0 additions & 1 deletion rdrf/registry/groups/registration/patient.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ def send_activation_email(self, registry_code, user, patient, self_registration=

def update_django_user(self, django_user, registry):
form_data = self.form.cleaned_data
django_user.preferred_language = form_data.get('preferred_languages', 'en')
return self.setup_django_user(django_user, registry, GROUPS.PATIENT, form_data['first_name'], form_data['surname'])

def get_template_name(self):
Expand Down
2 changes: 0 additions & 2 deletions requirements/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,3 @@ gql-query-builder==0.1.7
awslambdaric==2.0.4
django-cache-memoize==0.1.10
./clients/xnat/generated
langcodes==3.3.0
language_data==1.1

0 comments on commit f83f291

Please sign in to comment.