Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
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
edx-platform
Commits
37eedf07
Commit
37eedf07
authored
May 26, 2016
by
Renzo Lucioni
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #12572 from edx/renzo/program-detail-routing
Adjust program detail page URL routing
parents
ff6e9b7f
e77166c2
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
12 deletions
+32
-12
common/test/acceptance/pages/lms/programs.py
+1
-1
lms/djangoapps/learner_dashboard/tests/test_programs.py
+23
-3
lms/djangoapps/learner_dashboard/urls.py
+5
-5
lms/djangoapps/learner_dashboard/views.py
+3
-3
No files found.
common/test/acceptance/pages/lms/programs.py
View file @
37eedf07
...
...
@@ -24,7 +24,7 @@ class ProgramListingPage(PageObject):
class
ProgramDetailsPage
(
PageObject
):
"""Program details page."""
url
=
BASE_URL
+
'/dashboard/programs/123'
url
=
BASE_URL
+
'/dashboard/programs/123
/program-name/
'
def
is_browser_on_page
(
self
):
return
self
.
q
(
css
=
'.js-program-details-wrapper'
)
.
present
lms/djangoapps/learner_dashboard/tests/test_programs.py
View file @
37eedf07
"""
Tests for viewing the programs enrolled by a learner
.
Unit tests covering the program listing and detail pages
.
"""
import
datetime
import
httpretty
import
unittest
from
urlparse
import
urljoin
...
...
@@ -10,6 +9,7 @@ from django.conf import settings
from
django.core.urlresolvers
import
reverse
from
django.test
import
override_settings
,
TestCase
from
edx_oauth2_provider.tests.factories
import
ClientFactory
import
httpretty
from
opaque_keys.edx
import
locator
from
provider.constants
import
CONFIDENTIAL
...
...
@@ -234,14 +234,20 @@ class TestProgramDetails(ProgramsApiConfigMixin, TestCase):
"""
def
setUp
(
self
):
super
(
TestProgramDetails
,
self
)
.
setUp
()
self
.
user
=
UserFactory
()
self
.
details_page
=
reverse
(
'program_details_view'
,
args
=
[
'123'
])
self
.
client
.
login
(
username
=
self
.
user
.
username
,
password
=
'test'
)
def
test_login_required
(
self
):
"""
Verify that login is required to access the page.
"""
self
.
create_programs_config
()
self
.
client
.
logout
()
response
=
self
.
client
.
get
(
self
.
details_page
)
self
.
assertRedirects
(
response
,
...
...
@@ -249,6 +255,7 @@ class TestProgramDetails(ProgramsApiConfigMixin, TestCase):
)
self
.
client
.
login
(
username
=
self
.
user
.
username
,
password
=
'test'
)
response
=
self
.
client
.
get
(
self
.
details_page
)
self
.
assertEquals
(
response
.
status_code
,
200
)
...
...
@@ -257,6 +264,19 @@ class TestProgramDetails(ProgramsApiConfigMixin, TestCase):
Verify that the page 404s if disabled.
"""
self
.
create_programs_config
(
program_details_enabled
=
False
)
self
.
client
.
login
(
username
=
self
.
user
.
username
,
password
=
'test'
)
response
=
self
.
client
.
get
(
self
.
details_page
)
self
.
assertEquals
(
response
.
status_code
,
404
)
def
test_page_routing
(
self
):
"""Verify that the page can be hit with or without a program name in the URL."""
self
.
create_programs_config
()
response
=
self
.
client
.
get
(
self
.
details_page
)
self
.
assertEquals
(
response
.
status_code
,
200
)
response
=
self
.
client
.
get
(
self
.
details_page
+
'program_name/'
)
self
.
assertEquals
(
response
.
status_code
,
200
)
response
=
self
.
client
.
get
(
self
.
details_page
+
'program_name/invalid/'
)
self
.
assertEquals
(
response
.
status_code
,
404
)
lms/djangoapps/learner_dashboard/urls.py
View file @
37eedf07
"""
Learner's Dashboard urls
"""
"""Learner dashboard URL routing configuration"""
from
django.conf.urls
import
url
from
.
import
views
urlpatterns
=
[
url
(
r'^programs/(?P<program_uuid>[0-9a-f-]+)/$'
,
views
.
program_details
,
name
=
'program_details_view'
),
url
(
r'^programs/$'
,
views
.
view_programs
,
name
=
'program_listing_view'
),
# Matches paths like 'programs/123/' and 'programs/123/foo/', but not 'programs/123/foo/bar/'.
url
(
r'^programs/(?P<program_id>\d+)/[\w\-]*/?$'
,
views
.
program_details
,
name
=
'program_details_view'
),
]
lms/djangoapps/learner_dashboard/views.py
View file @
37eedf07
"""
New learner dashboard views.
"""
"""
Learner dashboard views
"""
from
urlparse
import
urljoin
from
django.conf
import
settings
...
...
@@ -50,8 +50,8 @@ def view_programs(request):
@login_required
@require_GET
def
program_details
(
request
,
program_
uu
id
):
# pylint: disable=unused-argument
"""View
programs in which the user is engaged
."""
def
program_details
(
request
,
program_id
):
# pylint: disable=unused-argument
"""View
details about a specific program
."""
show_program_details
=
ProgramsApiConfig
.
current
()
.
show_program_details
if
not
show_program_details
:
raise
Http404
...
...
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