Feanil Patel
729495e1aa
Merge pull request #20871 from amitvadhel/INCR-475
...
Incr 475
2019-06-26 14:51:15 -04:00
Uzair Rasheed
88835c3cc4
Merge pull request #20865 from edx/INCR-478/python-modernize-375-of-380
...
Python-modernize on edx-platform (375 of 380)
2019-06-26 18:57:12 +05:00
Ned Batchelder
b3a731550c
Fix problems that drf-yasg uncovered.
...
These were originally fixed individually, but had to be reverted, and
are now combined in one commit. The originals were:
7b9040f6b0 This enum was backwards
8774ff1f9b Use ref_name to disambiguate serializers that drf-yasg would otherwise assume are the same.
8a44397139 Is this field missing because it is None?
4a1154a7ca Give a safer buffer for clearing the rate limiting
64c47856dd DRF 3.7.4 changed how you delegate to another view, so don't
7359ca4fb2 Is this right? It fixes two tests
fdd66e5390 Adjust the expected error message for DRF 3.7.7
9257f68fd8 The default TIME_ZONE should be UTC
2019-06-21 18:04:15 -04:00
amitvadhel
e304ab0c3f
INCR-475: Make compatible with Python 3.x
2019-06-21 13:41:23 +03:00
uzairr
9835b21191
Python-modernize on edx-platform (375 of 380)
...
After executing python-modernize and isort, few changes occurred in
import sequence as well as unicode func is replaced by six.text_type
func.
INCR-478
2019-06-21 12:15:36 +05:00
usama sadiq
1630911131
Updated to Python3
...
Added absolute import in both files
2019-06-20 16:07:17 +05:00
amitvadhel
05bf848b1f
INCR-477: pylint: disable import-error for urljoin
2019-06-19 09:16:03 +03:00
amitvadhel
94f410f432
INCR-477: Make compatible with Python 3.x
2019-06-19 08:35:43 +03:00
Ned Batchelder
39c7a2db7c
Revert "Use drf-yasg for Open API documentation"
2019-06-11 16:05:00 -04:00
Ned Batchelder
64c47856dd
DRF 3.7.4 changed how you delegate to another view, so don't
...
The error in the test was:
```
AssertionError: The `request` argument must be an instance of `django.http.HttpRequest`, not `rest_framework.request.Request`.
```
The (controversial) incompatible change was in 3.7.4: https://github.com/encode/django-rest-framework/pull/5618
I'll look into whether there's another way to address it.
<details>
<summary>Full error report</summary>
```
AssertionError: The `request` argument must be an instance of `django.http.HttpRequest`, not `rest_framework.request.Request`.
Stacktrace
self = <lms.djangoapps.discussion_api.tests.test_views.CommentViewSetListTest testMethod=test_profile_image_request_for_null_endorsed_by>
def test_profile_image_request_for_null_endorsed_by(self):
"""
Tests if 'endorsed' is True but 'endorsed_by' is null, the api does not crash.
This is the case for some old/stale data in prod/stage environments.
"""
self.register_get_user_response(self.user)
thread = self.make_minimal_cs_thread({
"thread_type": "question",
"endorsed_responses": [make_minimal_cs_comment({
"id": "endorsed_comment",
"user_id": self.user.id,
"username": self.user.username,
"endorsed": True,
})],
"non_endorsed_resp_total": 0,
})
self.register_get_thread_response(thread)
self.create_profile_image(self.user, get_profile_image_storage())
response = self.client.get(self.url, {
"thread_id": thread["id"],
"endorsed": True,
> "requested_fields": "profile_image",
})
lms/djangoapps/discussion_api/tests/test_views.py:1446:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/test.py:291: in get
response = super(APIClient, self).get(path, data=data, **extra)
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/test.py:208: in get
return self.generic('GET', path, **r)
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/test.py:237: in generic
method, path, data, content_type, secure, **extra)
../venvs/edxapp/local/lib/python2.7/site-packages/django/test/client.py:416: in generic
return self.request(**r)
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/test.py:288: in request
return super(APIClient, self).request(**kwargs)
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/test.py:240: in request
request = super(APIRequestFactory, self).request(**kwargs)
../venvs/edxapp/local/lib/python2.7/site-packages/django/test/client.py:501: in request
six.reraise(*exc_info)
../venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/exception.py:41: in inner
response = get_response(request)
../venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py:249: in _legacy_get_response
response = self._get_response(request)
../venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py:187: in _get_response
response = self.process_exception_by_middleware(e, request)
../venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py:185: in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
../venvs/edxapp/local/lib/python2.7/site-packages/django/utils/decorators.py:185: in inner
return func(*args, **kwargs)
../venvs/edxapp/local/lib/python2.7/site-packages/django/views/decorators/csrf.py:58: in wrapped_view
return view_func(*args, **kwargs)
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/viewsets.py:95: in view
return self.dispatch(request, *args, **kwargs)
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/views.py:494: in dispatch
response = self.handle_exception(exc)
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/views.py:491: in dispatch
response = handler(request, *args, **kwargs)
lms/djangoapps/discussion_api/views.py:505: in list
form.cleaned_data["requested_fields"],
lms/djangoapps/discussion_api/api.py:659: in get_comment_list
results = _serialize_discussion_entities(request, context, responses, requested_fields, DiscussionEntity.comment)
lms/djangoapps/discussion_api/api.py:468: in _serialize_discussion_entities
request, results, usernames, discussion_entity_type, include_profile_image
lms/djangoapps/discussion_api/api.py:413: in _add_additional_response_fields
username_profile_dict = _get_user_profile_dict(request, usernames=','.join(usernames))
lms/djangoapps/discussion_api/api.py:350: in _get_user_profile_dict
user_profile_details = AccountViewSet.as_view({'get': 'list'})(request).data
../venvs/edxapp/local/lib/python2.7/site-packages/django/views/decorators/csrf.py:58: in wrapped_view
return view_func(*args, **kwargs)
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/viewsets.py:95: in view
return self.dispatch(request, *args, **kwargs)
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/views.py:477: in dispatch
request = self.initialize_request(request, *args, **kwargs)
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/viewsets.py:118: in initialize_request
request = super(ViewSetMixin, self).initialize_request(request, *args, **kwargs)
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/views.py:381: in initialize_request
parser_context=parser_context
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <rest_framework.request.Request object at 0x7f597c773890>
request = <rest_framework.request.Request object at 0x7f597fa20f90>
parsers = [<openedx.core.lib.api.parsers.MergePatchParser object at 0x7f59810c32d0>]
authenticators = [<edx_rest_framework_extensions.auth.jwt.authentication.JwtAuthentication object at 0x7f597c713690>, <openedx.core.lib...rest_framework_extensions.auth.session.authentication.SessionAuthenticationAllowInactiveUser object at 0x7f597c773390>]
negotiator = <rest_framework.negotiation.DefaultContentNegotiation object at 0x7f597fa20410>
parser_context = {'args': (), 'kwargs': {}, 'view': <openedx.core.djangoapps.user_api.accounts.views.AccountViewSet object at 0x7f597c7846d0>}
def __init__(self, request, parsers=None, authenticators=None,
negotiator=None, parser_context=None):
assert isinstance(request, HttpRequest), (
'The `request` argument must be an instance of '
'`django.http.HttpRequest`, not `{}.{}`.'
> .format(request.__class__.__module__, request.__class__.__name__)
)
E AssertionError: The `request` argument must be an instance of `django.http.HttpRequest`, not `rest_framework.request.Request`.
../venvs/edxapp/local/lib/python2.7/site-packages/rest_framework/request.py:159: AssertionError
```
</details>
2019-06-10 15:27:39 -04:00
Stu Young
13e624a50b
INCR-307 Run python-modernize on lms/djangoapps/discussion/rest_api ( #20618 )
...
* run python modernize
* run isort
* Fix quality
2019-05-28 12:51:49 -04:00
Jeremy Bowman
ff7292538e
More pylint fixes ( #20692 )
2019-05-28 09:19:31 -04:00
Jeremy Bowman
f9929f32b5
Update quality threshold counts ( #20681 )
2019-05-24 08:27:54 -04:00
Stu Young
4cf2e855c9
INCR-302 Run python-modernize on lms/djangoapps/discussion/django_comment_client/base ( #20626 )
...
* run python modernize
* run isort
* Fix quality
* Fix quality
2019-05-21 11:44:57 -04:00
Stu Young
51948f8895
INCR-306 Run python-modernize on lms/djangoapps/discussion/settings and lms/djangoapps/discussion/tests ( #20619 )
...
* run python modernize
* run isort
* Fix quality
2019-05-21 11:44:00 -04:00
Stu Young
0bb7652a75
incr-303 ( #20623 )
...
* run python modernize
* run isort
* Fix imports
2019-05-16 13:55:47 -04:00
Stu Young
0abce9c18b
incr-305 ( #20621 )
...
* run python modernize
* run isort
2019-05-15 22:07:05 -04:00
Stu Young
937fcded38
incr-301 ( #20625 )
...
* run python modernize
* run isort
2019-05-15 15:21:13 -04:00
Stu Young
fc80b28bbc
INCR-304 Run python-modernize on lms/djangoapps/discussion/management ( #20622 )
...
* run python modernize
* run isort
2019-05-15 15:01:53 -04:00
Brian Mesick
a4a009e57b
Merge pull request #20222 from edx/bmedx/course_enrollment_history
...
Re-adding django-simple-history for CourseEnrollment
2019-05-09 13:02:07 -04:00
DawoudSheraz
ca0800a4b1
added logs for more information
2019-05-08 16:29:33 +05:00
bmedx
17cb93dd51
Re-adding django-simple-history for CourseEnrollment
2019-05-03 16:16:41 -04:00
Nimisha Asthagiri
dfa3728edf
Move django_comment_common from common to openedx
2019-05-03 12:10:18 -04:00
Nimisha Asthagiri
c606aaeb57
Discussion consolidation: quality
2019-05-03 12:09:47 -04:00
Nimisha Asthagiri
7b4b6c3539
Move notifier and notification_prefs to discussion/
2019-05-03 12:09:47 -04:00
Nimisha Asthagiri
e160b23903
Move django_comment_client to discussion/
2019-05-03 12:09:46 -04:00
Nimisha Asthagiri
b949452eb2
Move discussion_api to discussion/rest_api
2019-05-03 12:07:21 -04:00
Nimisha Asthagiri
16edae0822
Move comment_client into django_comment_common
2019-05-03 12:07:20 -04:00
Nimisha Asthagiri
ef0e06cc0a
Revert "Discussions consolidation"
2019-05-02 14:59:56 -04:00
Nimisha Asthagiri
31e9219c89
Discussion consolidation: review comments
2019-05-01 21:13:57 -04:00
Nimisha Asthagiri
df962a31b7
Move django_comment_common to openedx/core/djangoapps/discussion_common
2019-05-01 19:15:02 -04:00
Nimisha Asthagiri
c2e232a3d4
Discussion consolidation: quality
2019-05-01 19:13:10 -04:00
Nimisha Asthagiri
97862d2ed7
Move notifier and notification_prefs to discussion/
2019-05-01 19:13:10 -04:00
Nimisha Asthagiri
db89a64d06
Move django_comment_client to discussion/
2019-05-01 19:13:10 -04:00
Nimisha Asthagiri
3d1bb23809
Move discussion_api to discussion/rest_api
2019-05-01 19:13:10 -04:00
Nimisha Asthagiri
2839851bde
Move comment_client into django_comment_common
2019-05-01 19:13:09 -04:00
David Ormsbee
e2ec126d0d
Initial README for Discussion
2019-04-25 15:13:59 -04:00
Calen Pennington
4c8cd60bbc
REVMI-96: Add a management command to experiment with Access Expiry reminder emails for FBE
2019-03-06 11:44:29 -05:00
Calen Pennington
300c3a34dd
Don't swallow exceptions inside emulate_http_request
2019-03-06 11:44:29 -05:00
Michael Youngstrom
3221c2b91f
Remove lms pytest shards
2019-02-12 11:03:46 -05:00
Shafqat Farhan
17afb2000d
Discussion board AssertionError fixed ( #1242 )
2019-02-08 17:41:11 +05:00
Matthew Piatetsky
6e81c84d8b
fix unicode strings in lms/ part 1
2019-02-05 15:15:02 -05:00
cclauss
8fca11b85c
Use print() function in both Python 2 and Python 3
2019-01-13 17:16:37 +01:00
Matt Tuchfarber
ac29017d88
Move banner REVMI-54
...
Moves banner into the content instead of at the top. Adds a course
expiration fragment to the course home page, the content, the progress
page, and the discussion page.
2019-01-09 10:17:16 -05:00
Matthew Piatetsky
14a899a65d
REVE-104 & REVE-108: Ensure Course Roles' Access
2018-12-07 16:39:09 -05:00
DawoudSheraz
bf99e15707
EDUCATOR-3605 Adding Visible Labels for search and filter inputs on discussion page
2018-12-07 10:26:04 +05:00
brianhw
acc919ca46
Merge pull request #19353 from edx/brian/DE-1121-email-context
...
Add page context to edx.bi.email.sent events
2018-12-04 12:10:27 -05:00
Brian Wilson
f21bf05e37
Add page context to edx.bi.email.sent events.
2018-12-04 02:47:37 -05:00
Calen Pennington
31047260cc
Switch ContentTypeGatingConfig.enabled_as_of and CourseDurationLimitConfig.enabled_as_of to datetimes
2018-11-30 10:02:53 -05:00
Matthew Piatetsky
815acda002
Populate experiment data with holdback key post enrollment and check holdback key when setting user group
2018-11-28 13:40:57 -05:00