Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
course-discovery
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
course-discovery
Commits
c7cdd3bf
Commit
c7cdd3bf
authored
Apr 03, 2017
by
Waheed Ahmed
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
User autocomplete for staff in django admin.
ECOM-7357
parent
0d8026f6
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
8 deletions
+36
-8
course_discovery/apps/course_metadata/lookups.py
+12
-8
course_discovery/apps/course_metadata/tests/test_lookups.py
+15
-0
course_discovery/apps/publisher/forms.py
+9
-0
No files found.
course_discovery/apps/course_metadata/lookups.py
View file @
c7cdd3bf
...
@@ -73,11 +73,15 @@ class PersonAutocomplete(LoginRequiredMixin, autocomplete.Select2QuerySetView):
...
@@ -73,11 +73,15 @@ class PersonAutocomplete(LoginRequiredMixin, autocomplete.Select2QuerySetView):
return
[]
return
[]
def
get_result_label
(
self
,
result
):
def
get_result_label
(
self
,
result
):
context
=
{
http_referer
=
self
.
request
.
META
.
get
(
'HTTP_REFERER'
)
'uuid'
:
result
.
uuid
,
if
http_referer
and
'/admin/'
in
http_referer
:
'profile_image'
:
result
.
get_profile_image_url
,
return
super
(
PersonAutocomplete
,
self
)
.
get_result_label
(
result
)
'full_name'
:
result
.
full_name
,
else
:
'position'
:
result
.
position
if
hasattr
(
result
,
'position'
)
else
None
context
=
{
}
'uuid'
:
result
.
uuid
,
'profile_image'
:
result
.
get_profile_image_url
,
return
render_to_string
(
'publisher/_personLookup.html'
,
context
=
context
)
'full_name'
:
result
.
full_name
,
'position'
:
result
.
position
if
hasattr
(
result
,
'position'
)
else
None
}
return
render_to_string
(
'publisher/_personLookup.html'
,
context
=
context
)
course_discovery/apps/course_metadata/tests/test_lookups.py
View file @
c7cdd3bf
...
@@ -232,3 +232,18 @@ class AutocompleteTests(TestCase):
...
@@ -232,3 +232,18 @@ class AutocompleteTests(TestCase):
status_code
=
302
,
status_code
=
302
,
target_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
)
course_discovery/apps/publisher/forms.py
View file @
c7cdd3bf
...
@@ -396,6 +396,15 @@ class CourseRunAdminForm(forms.ModelForm):
...
@@ -396,6 +396,15 @@ class CourseRunAdminForm(forms.ModelForm):
class
Meta
:
class
Meta
:
model
=
CourseRun
model
=
CourseRun
fields
=
'__all__'
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
):
def
clean_lms_course_id
(
self
):
lms_course_id
=
self
.
cleaned_data
[
'lms_course_id'
]
lms_course_id
=
self
.
cleaned_data
[
'lms_course_id'
]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment