Commit c7cdd3bf by Waheed Ahmed

User autocomplete for staff in django admin.

ECOM-7357
parent 0d8026f6
......@@ -73,11 +73,15 @@ class PersonAutocomplete(LoginRequiredMixin, autocomplete.Select2QuerySetView):
return []
def get_result_label(self, result):
context = {
'uuid': result.uuid,
'profile_image': result.get_profile_image_url,
'full_name': result.full_name,
'position': result.position if hasattr(result, 'position') else None
}
return render_to_string('publisher/_personLookup.html', context=context)
http_referer = self.request.META.get('HTTP_REFERER')
if http_referer and '/admin/' in http_referer:
return super(PersonAutocomplete, self).get_result_label(result)
else:
context = {
'uuid': result.uuid,
'profile_image': result.get_profile_image_url,
'full_name': result.full_name,
'position': result.position if hasattr(result, 'position') else None
}
return render_to_string('publisher/_personLookup.html', context=context)
......@@ -232,3 +232,18 @@ class AutocompleteTests(TestCase):
status_code=302,
target_status_code=302
)
def test_instructor_autocomplete_from_django_admin(self):
""" Verify instructor autocomplete return default data from django admin. """
admin_user = UserFactory(is_staff=True, is_superuser=True)
self.client.logout()
self.client.login(username=admin_user.username, password=USER_PASSWORD)
response = self.client.get(
reverse('admin_metadata:person-autocomplete') + '?q={q}'.format(q='ins'),
HTTP_REFERER=reverse('admin:publisher_courserun_add')
)
self.assertEqual(response.status_code, 200)
data = json.loads(response.content.decode('utf-8'))
expected_results = [{'id': instructor.id, 'text': str(instructor)} for instructor in self.instructors]
self.assertEqual(data.get('results'), expected_results)
......@@ -396,6 +396,15 @@ class CourseRunAdminForm(forms.ModelForm):
class Meta:
model = CourseRun
fields = '__all__'
widgets = {
'staff': autocomplete.ModelSelect2Multiple(
url='admin_metadata:person-autocomplete',
attrs={
'data-minimum-input-length': 3,
'data-html': 'false',
}
),
}
def clean_lms_course_id(self):
lms_course_id = self.cleaned_data['lms_course_id']
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment