Commit Graph

50022 Commits

Author SHA1 Message Date
Brittney Exline
bf88bca776 Version bump for edx-enterprise 2019-06-14 13:57:01 -06:00
Jeremy Bowman
45e390d0ea Upgrade to edx-opaque-keys 1.0.1 (#20817) 2019-06-14 12:15:44 -04:00
Mike Dikan
dd4fbf7736 Merge pull request #20812 from edx/mdikan/update-cookie-banner
Update Cookie Policy Banner
2019-06-14 10:09:10 -04:00
Usama Sadiq
7373a021cc Merge pull request #20816 from edx/usama/prod-338-support-contact-us-form
Support Contact Form Updated
2019-06-14 18:52:18 +05:00
Andytr1
c25aee3329 Merge pull request #20776 from edx/mroytman/EDUCATOR-4355-add-student-key-to-gradebook
add external_user_key to response and add ability to search by userna…
2019-06-14 09:50:45 -04:00
Mike Dikan
51c690f75a Update Cookie Policy Banner
DISCO-1067
2019-06-14 09:47:26 -04:00
usama sadiq
44475b9efc Support Contact Form Updated
- Changed the Subject text field to drop down.
- Added aditional text to guide learners to course forums.
2019-06-14 18:22:14 +05:00
Michael Roytman
05c0510cd3 add external_user_key to response and add ability to search by username, email, or external user key
Code review comments - EDUCATOR-4319

undoing changes temporarily

undoing changes temporarily

Fixed exception handling

re-added changes after hard reset

removed waffle flag (wrong merge

removed waffle flag (wrong merge
2019-06-14 08:36:00 -04:00
atesker
dff3eec0d1 Merge branch 'master' of https://github.com/edx/edx-platform 2019-06-13 14:46:56 -04:00
Douglas Hall
fc88c55c76 Header logo should now redirect to learner dashboard. (#20815) 2019-06-13 11:07:08 -04:00
Zainab Amir
0978b0e533 Merge pull request #20813 from edx/transifex-bot-update-translations2019-06-13
fix(i18n): update translations
2019-06-13 14:29:46 +05:00
edX Transifex Bot
e6e3f1e3fa fix(i18n): update translations 2019-06-13 08:15:21 +00:00
edX Transifex Bot
ec691f3be5 geoip2: update maxmind geolite country database 2019-06-12 16:58:05 -04:00
Farhanah Sheets
658c632178 Merge pull request #19958 from raccoongang/fix_too_many_rerenders_textbooks
Fix bug: re-render is triggered too many times in textbooks.
2019-06-12 13:23:39 -04:00
Matt Tuchfarber
a632123089 Merge pull request #20807 from edx/tuchfarber/ent-2015
Bump edx-enterprise version
2019-06-12 13:09:32 -04:00
David Ormsbee
68905ef4aa Merge pull request #19165 from EDUlib/cert-translate-2
Message related to certificate on courseware progress page are translated to platform language only. Part 2 of 2.
2019-06-12 13:04:46 -04:00
Truong David
9dd5cb86c1 Fix translation issue related to message showed on courseware progress
page related to certification and course mode. Part 2 of 2.

Use ugettext_lazy instead of ugettext to ensure the strings shown are in
the language the user chose. Otherwise the strings are in the platform
language.
Keep the original ugettext for function financial_assistance_form.
The test for that function fails if the text is not in english.
2019-06-12 12:20:16 -04:00
Matt Tuchfarber
9052037bb4 Bump edx-enterprise version 2019-06-12 11:59:44 -04:00
Amit
c54a18c9fc INCR-413: Run python-modernize and isort (#20786)
* INCR-413: Run python-modernize and isort

* INCR-413: Fix for text_type usage
2019-06-12 11:54:48 -04:00
edX cache uploader bot
d0de873217 Updating Bokchoy testing database cache (#20805) 2019-06-12 11:42:36 -04:00
Bessie Steinberg
acdcf9c9ac Merge pull request #20803 from edx/bessiesteinberg/bumb-edx-enterprise-version
bump edx-enterprise to version 1.6.8
2019-06-12 11:23:51 -04:00
atesker
53282be52e Merge branch 'master' of https://github.com/edx/edx-platform 2019-06-12 11:04:32 -04:00
Dave St.Germain
08cf545048 Merge pull request #20790 from edx/dcs/add-sgp
Added Staff Graded Points XBlock
2019-06-12 09:49:37 -04:00
Bessie Steinberg
375ccb7bf9 bump edx-enterprise to version 1.6.8 2019-06-11 16:54:25 -04:00
Ned Batchelder
5dcb8bac33 Merge pull request #20802 from edx/revert-20393-nedbat/drf-yasg
Revert "Use drf-yasg for Open API documentation"
2019-06-11 16:34:21 -04:00
Amit
2f6935863a INCR-344 (#20785) 2019-06-11 16:11:46 -04:00
Ned Batchelder
39c7a2db7c Revert "Use drf-yasg for Open API documentation" 2019-06-11 16:05:00 -04:00
tanyaxp
a7bc22eb9c Remove the course name from the enroll button. (#20635)
Remove the course name from the enroll button.

Replace the course name and change the button text to ‘Enroll Now’. The course name appears above this button.

Use case: The Threat of Nuclear Terrorism course team would prefer "Enroll Now” instead of "Enroll in Nuclear Terrorism" because of various interpretations of what "enrolling in nuclear terrorism" could mean.
2019-06-11 15:59:22 -04:00
Jeremy Bowman
237d264a50 DEPR-12 Remove microsites references from edxmako (#20796) 2019-06-11 15:27:10 -04:00
Ned Batchelder
756dd88691 Merge pull request #20393 from edx/nedbat/drf-yasg
Use drf-yasg for Open API documentation
2019-06-11 13:58:13 -04:00
edX cache uploader bot
a6c802b3f1 Updating Bokchoy testing database cache (#20788) 2019-06-11 12:24:54 -04:00
Amit
087250cff7 INCR-250: Make compatible with Python 3.x without breaking Python 2.7… (#20534)
* INCR-250: Make compatible with Python 3.x without breaking Python 2.7 support --> openedx/core/djangoapps/programs

* INCR-250: Disable pylint warning and replace _f placeholder with actual name

* INCR-250: pylint format correction and fix over length line limit
2019-06-11 10:17:52 -04:00
edx-pipeline-bot
de5d25eccc Merge pull request #20794 from edx/private_to_public_55dd3e1
Mergeback PR from private to public.
2019-06-11 19:17:13 +05:00
Zia Fazal
8c5a53a1f4 Merge pull request #20792 from edx/ziafazal/WL-1927-b
Bumped edx-enterprise version
2019-06-11 19:02:55 +05:00
David Ormsbee
042297c10b Merge pull request #20791 from edx/jenkins/upgrade-python-requirements-1198e5f
Python Requirements Update
2019-06-11 09:14:09 -04:00
Christie Rice
4aba1b21a1 REVEM-372 Remove add_audit_deadline and deprecated_metadata waffle flags (#20769) 2019-06-11 09:05:06 -04:00
Zia Fazal
be9f5f5825 Bumped edx-enterprise version 2019-06-11 17:54:09 +05:00
edX requirements bot
3a460622f7 Updating Python Requirements 2019-06-11 06:51:27 -04:00
Dave St.Germain
702ac94105 Added Staff Graded Points XBlock 2019-06-10 17:03:10 -04:00
Ned Batchelder
7b9040f6b0 This enum was backwards 2019-06-10 15:27:39 -04:00
Ned Batchelder
f0fa5f7169 Enable Studio API docs in devstack 2019-06-10 15:27:39 -04:00
Ned Batchelder
135cbe76d8 yasg settings 2019-06-10 15:27:39 -04:00
Ned Batchelder
8774ff1f9b Use ref_name to disambiguate serializers that drf-yasg would otherwise assume are the same. 2019-06-10 15:27:39 -04:00
Ned Batchelder
8a44397139 Is this field missing because it is None? 2019-06-10 15:27:39 -04:00
Ned Batchelder
4a1154a7ca Give a safer buffer for clearing the rate limiting
The rate limiter counts requests in a 5-minute window.  To be sure we
aren't hitting edge cases, make the future requests 6 minutes plus 1
second in the future.
2019-06-10 15:27:39 -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
Ned Batchelder
7359ca4fb2 Is this right? It fixes two tests 2019-06-10 15:27:39 -04:00
Ned Batchelder
fdd66e5390 Adjust the expected error message for DRF 3.7.7 2019-06-10 15:27:39 -04:00
Ned Batchelder
de8e158ce8 Un-truncate test failure diffs 2019-06-10 15:27:39 -04:00
Ned Batchelder
9257f68fd8 The default TIME_ZONE should be UTC
In production, we use UTC as the time zone.  DRF 3.7.7 now puts all
times in the currently set timezone where it used to use UTC.  By
setting TIME_ZONE to UTC, we keep the same results we used to get.

In a few places, we had to change the expected test results to be UTC.
2019-06-10 15:27:39 -04:00