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
f520f9bd
Commit
f520f9bd
authored
Oct 17, 2017
by
Waheed Ahmed
Committed by
GitHub
Oct 17, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #16202 from edx/waheed/LEARNER-2769-course-dates-web-fragment
Course dates web fragment for mobile apps.
parents
80126fc7
202f1901
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
71 additions
and
0 deletions
+71
-0
openedx/features/course_experience/tests/views/test_course_dates.py
+47
-0
openedx/features/course_experience/urls.py
+6
-0
openedx/features/course_experience/views/course_dates.py
+18
-0
No files found.
openedx/features/course_experience/tests/views/test_course_dates.py
0 → 100644
View file @
f520f9bd
"""
Tests for course dates fragment.
"""
from
datetime
import
timedelta
,
datetime
from
django.core.urlresolvers
import
reverse
from
student.tests.factories
import
UserFactory
from
xmodule.modulestore
import
ModuleStoreEnum
from
xmodule.modulestore.tests.django_utils
import
ModuleStoreTestCase
from
xmodule.modulestore.tests.factories
import
CourseFactory
,
ItemFactory
TEST_PASSWORD
=
'test'
class
TestCourseDatesFragmentView
(
ModuleStoreTestCase
):
"""Tests for the course dates fragment view."""
def
setUp
(
self
):
super
(
TestCourseDatesFragmentView
,
self
)
.
setUp
()
with
self
.
store
.
default_store
(
ModuleStoreEnum
.
Type
.
split
):
self
.
course
=
CourseFactory
.
create
(
org
=
'edX'
,
number
=
'test'
,
display_name
=
'Test Course'
,
start
=
datetime
.
now
()
-
timedelta
(
days
=
30
),
end
=
datetime
.
now
()
+
timedelta
(
days
=
30
),
)
self
.
user
=
UserFactory
(
password
=
TEST_PASSWORD
)
self
.
client
.
login
(
username
=
self
.
user
.
username
,
password
=
TEST_PASSWORD
)
self
.
dates_fragment_url
=
reverse
(
'openedx.course_experience.mobile_dates_fragment_view'
,
kwargs
=
{
'course_id'
:
unicode
(
self
.
course
.
id
)
}
)
def
test_course_dates_fragment
(
self
):
response
=
self
.
client
.
get
(
self
.
dates_fragment_url
)
self
.
assertContains
(
response
,
'Important Course Dates'
)
self
.
assertContains
(
response
,
'Today is'
)
self
.
assertContains
(
response
,
'Course End'
)
self
.
client
.
logout
()
response
=
self
.
client
.
get
(
self
.
dates_fragment_url
)
self
.
assertEqual
(
response
.
status_code
,
404
)
openedx/features/course_experience/urls.py
View file @
f520f9bd
...
...
@@ -4,6 +4,7 @@ Defines URLs for the course experience.
from
django.conf.urls
import
url
from
views.course_dates
import
CourseDatesFragmentMobileView
from
views.course_home
import
CourseHomeFragmentView
,
CourseHomeView
from
views.course_outline
import
CourseOutlineFragmentView
from
views.course_reviews
import
CourseReviewsView
...
...
@@ -63,4 +64,9 @@ urlpatterns = [
dismiss_welcome_message
,
name
=
'openedx.course_experience.dismiss_welcome_message'
,
),
url
(
r'^mobile_dates_fragment'
,
CourseDatesFragmentMobileView
.
as_view
(),
name
=
'openedx.course_experience.mobile_dates_fragment_view'
,
),
]
openedx/features/course_experience/views/course_dates.py
View file @
f520f9bd
"""
Fragment for rendering the course dates sidebar.
"""
from
django.http
import
Http404
from
django.template.loader
import
render_to_string
from
opaque_keys.edx.keys
import
CourseKey
from
web_fragments.fragment
import
Fragment
...
...
@@ -26,3 +27,20 @@ class CourseDatesFragmentView(EdxFragmentView):
}
html
=
render_to_string
(
'course_experience/course-dates-fragment.html'
,
context
)
return
Fragment
(
html
)
class
CourseDatesFragmentMobileView
(
CourseDatesFragmentView
):
"""
A course dates fragment to show dates on mobile apps.
Mobile apps uses WebKit mobile client to create and maintain a session with
the server for authenticated requests, and it hasn't exposed any way to find
out either session was created with the server or not so mobile app uses a
mechanism to automatically create/recreate session with the server for all
authenticated requests if the server returns 404.
"""
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
if
not
request
.
user
.
is_authenticated
():
raise
Http404
return
super
(
CourseDatesFragmentMobileView
,
self
)
.
get
(
request
,
*
args
,
**
kwargs
)
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