Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trigger Jenkins #23367

Closed
wants to merge 189 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
189 commits
Select commit Hold shift + click to select a range
f3e94a9
Set RELEASE_LINE to 'ironwood'
Jan 18, 2019
89639e7
Ironwood translation resources
Jan 18, 2019
0f287f7
Revert "change banner date localization to use dateutilfactory"
MatthewPiatetsky Jan 20, 2019
1c14030
ENT-1467 Version bump for edx-enterprise to 1.2.8
brittneyexline Jan 22, 2019
2d4eed7
make upgrade to version of edx-proctoring
Jan 22, 2019
cf02924
Fix coverage on remote xdist nodes
jmbowman Jan 18, 2019
bf3f5e3
Don't fail if the JWK settings aren't set
Jan 28, 2019
df354ba
Merge pull request #19674 from edx/nedbat/no-jwk-ok
nedbat Jan 28, 2019
9dca19d
tiny style modification
mahyard Jan 20, 2019
84cd024
Fix Collapse All/Expand All translation
Jan 25, 2019
f000c15
Update Django version to 1.11.20
Feb 11, 2019
e4dfb79
update django wiki for ironwood release
DawoudSheraz Feb 18, 2019
b6c18e0
Merge pull request #19824 from edx/dsheraz/open-release-security-fix
nedbat Feb 19, 2019
bc2b1b1
Fix error when saving CourseEnrollment in admin
clemente Oct 15, 2018
3e085ea
EDUCATOR-3930 fix video player speed adjustments
Rabia23 Jan 23, 2019
bb13168
Fix date format
Feb 20, 2019
baf7e2b
Fix to pass xss commit linter
Feb 21, 2019
7ee1173
Implement public cohort
pkulkark Feb 7, 2019
1118782
Merge pull request #19877 from edx/ormsbee/cp_anonymous_cohort
nedbat Feb 25, 2019
fdd3c1f
Fix import error introduced by 7ee11737 cherry pick
Feb 25, 2019
4938cab
Merge pull request #19878 from edx/ormsbee/cp_anonymous_cohort
nedbat Feb 25, 2019
71a824e
Switch workers to ironwood
Feb 25, 2019
74614cf
Merge pull request #19875 from edx/youngstorm/update-jenkinsfile
Feb 26, 2019
c86ed71
Jenkinsfile typo
Feb 26, 2019
4690f8d
Handle out-of-memory exception on Sysadmin Courses
stvstnfrd Feb 20, 2019
64dce68
Remove course publish from CCX data migration.
Sep 28, 2018
5d24537
Move context to env var
Feb 28, 2019
370e82c
Change git checkout on xdist workers
Feb 28, 2019
8e043f2
Merge pull request #19905 from edx/youngstrom/fix-ironwood-ci-again
Mar 1, 2019
3bd2094
production.py should fallback to aws.py incase the plugin has not yet…
coryleeio Mar 6, 2019
ef2381a
Readding erroneously removed import
coryleeio Mar 14, 2019
6c4982f
Update production.py
coryleeio Mar 14, 2019
7ff3e5c
Merge pull request #19951 from edx/coryleeio/fallback_to_aws_settings…
nedbat Mar 14, 2019
e77c2bf
Skip tests of help doc links on named release branches.
Mar 14, 2019
9348ac6
Merge pull request #20000 from edx/nedbat/ironwood-skip-help-tests
nedbat Mar 15, 2019
f8319d8
Make the studio login over the lms optional using a feature flag
felipemontoya Feb 20, 2019
e3830d2
Additionally logout from a settings list of extra logout URIs
pwnage101 Feb 12, 2019
3a389d5
Load IDA_LOGOUT_URI_LIST in all the necessary places
pwnage101 Feb 13, 2019
0d1a7e1
Fix issue with multiple responses for a single user returned by gener…
xitij2000 Dec 25, 2018
4241edf
Merge pull request #20007 from edx/nedbat/ironwood-19845
nedbat Mar 16, 2019
71b47af
Fix SSO Login when JWT_PRIVATE_SIGNING_JWK is not set
nasthagiri Apr 5, 2019
8daa162
Merge pull request #20160 from edx/arch/fix-sso-when-no-jwts
nasthagiri Apr 9, 2019
ac0d405
Fix slack messaging in pipelines
Apr 18, 2019
fd396be
Fix Facebook and Google social auth buttons.
waheedahmed Apr 10, 2019
7faa527
Merge pull request #20282 from edx/waheed/fix-social-auth-buttons
nedbat Apr 22, 2019
bee111b
Fix search to show courses one time
Apr 25, 2019
c6962c1
Revert "Making honor code not eligible for Certificate"
waheedahmed May 13, 2019
c26d689
Add feature flag to disable honor mode certificates.
waheedahmed May 14, 2019
7a3aee5
Merge pull request #20648 from edx/waheed/add-toggle-disable-honor-cert
waheedahmed May 21, 2019
dc366b3
Fix Elevation in permission over OAuth
awaisdar001 May 8, 2019
f0777ab
Move a message to make it extractable
May 28, 2019
46c022e
Merge pull request #20694 from edx/aj/open-release-security-fix
awaisdar001 May 30, 2019
d39be55
SE-985 Bump completion to 1.0.3 for Ironwood (#20369)
pomegranited May 30, 2019
afbff0b
Use PLATFORM_NAME on the home page
May 16, 2019
32fb474
A trademark-less favicon
May 23, 2019
3bd8956
Fix the underline on footer items
May 23, 2019
0842a66
Correct the trademark notices
May 15, 2019
490ab07
Fix CSSlint issues
May 21, 2019
783f84b
fix xss issue for all dashboard redirect messages
MatthewPiatetsky May 24, 2019
8ec78be
Merge pull request #20729 from cpennington/fix-dashboard
Jun 3, 2019
e817202
Django 1.11.21
Jun 3, 2019
441d638
Updated translation files
Jun 4, 2019
b33db2c
Fix XSS vulnerability on certificates support page.
azarembok Jun 26, 2019
0edf59d
Merge pull request #20904 from edx/azarembok/cert-xss-fix
azarembok Jun 26, 2019
25e929f
fix activation email for incorrect password
DawoudSheraz Jun 20, 2019
998f2bd
Merge pull request #20857 from edx/dsheraz/prod-403
DawoudSheraz Jun 27, 2019
b57df7a
rate limit password reset email requests
noraiz-anwar Jun 19, 2019
34149c7
Update the version of matplotlib running in sandboxes. (#20937)
feanil Jul 2, 2019
f9689aa
Patch Ironwood: Make CustomTagModule safe (remove Mako) [SEC-609].
awaisdar001 Aug 16, 2019
ce92954
social platform validation
asadazam93 Aug 21, 2019
f14ab59
Merge pull request #21350 from edx/aj/sec_609_customtag_fix
awaisdar001 Aug 21, 2019
7731c68
Django 1.11.23
Aug 21, 2019
fe5c627
Merge pull request #21396 from edx/asad/prod-471
asadazam93 Sep 2, 2019
8fa7732
changes required for authoriznet on ironwood
tehreem-sadat Oct 2, 2019
4ce6f7d
Merge pull request #234 from ucsd-ets/tehreem/changes_required_for_au…
tehreem-sadat Oct 2, 2019
590834d
add caliper_app_code_for_ironwood
tehreem-sadat Oct 2, 2019
f32c54d
Merge pull request #235 from ucsd-ets/tehreem/add_caliper_app_for_iro…
tehreem-sadat Oct 2, 2019
6375b5b
add circle-ci test and zendesh replacement code
tehreem-sadat Oct 2, 2019
411842e
Merge pull request #236 from ucsd-ets/tehreem/replace_zendesk_with_em…
tehreem-sadat Oct 2, 2019
e7a9208
add login logout events code and some other circleci changes and some…
tehreem-sadat Oct 3, 2019
bf5a081
Merge pull request #237 from ucsd-ets/tehreem/custom_login_logout_eve…
tehreem-sadat Oct 3, 2019
b3373f0
add kafka and caliper settings for cms production.py
tehreem-sadat Oct 25, 2019
dc2230a
add caliper_app_code_for_ironwood
tehreem-sadat Oct 2, 2019
772029e
add circle-ci test and zendesh replacement code
tehreem-sadat Oct 2, 2019
b6f73f2
add login logout events code and some other circleci changes and some…
tehreem-sadat Oct 3, 2019
24cae03
initial changes
tehreem-sadat Oct 16, 2019
d6f51ea
Merge branch 'develop-i' into tehreem/send_email_instead_of_zendesk_t…
tehreem-sadat Oct 28, 2019
75471d6
Merge pull request #238 from ucsd-ets/tehreem/send_email_instead_of_z…
tehreem-sadat Oct 28, 2019
3028ce0
Merge pull request #242 from ucsd-ets/tehreem/add_kafka_caliper_setti…
tehreem-sadat Oct 28, 2019
c3be5a3
Refactor if conditions for caliper settings
mumarkhan999 Oct 30, 2019
ff209e6
Merge pull request #243 from ucsd-ets/umar/apply-if-condition-on-kafk…
mumarkhan999 Oct 30, 2019
4be3462
initial changes
tehreem-sadat Oct 30, 2019
07600b2
Merge pull request #244 from ucsd-ets/tehreem/improve_send_emails_ins…
tehreem-sadat Nov 6, 2019
1dc14f9
Update caliper app version
mumarkhan999 Nov 6, 2019
7af4b5f
Merge pull request #248 from ucsd-ets/umar/update-caliper-version-to-…
mumarkhan999 Nov 6, 2019
f1f88be
Added Email Content for Support
Nov 6, 2019
f1a90ff
We need to remove enable site configuration check to send an email on…
tehreem-sadat Nov 12, 2019
10b8570
Merge pull request #249 from ucsd-ets/hassan/zendesk_email_content
imhassantariq Nov 13, 2019
9e57467
Merge pull request #252 from ucsd-ets/tehreem/remove_site_configurati…
tehreem-sadat Nov 14, 2019
6dcd257
replace ECOMMERCE_COOKIE_DOMAIN with SESSION_COOKIE_DOMAIN
tehreem-sadat Nov 14, 2019
eb05a44
Merge pull request #254 from ucsd-ets/tehreem/remove_extra_ecommerce_…
tehreem-sadat Nov 14, 2019
6c0872c
FIX: Double event logs are emitted for login operations
danialmalik Nov 19, 2019
7ffe76c
Merge pull request #256 from ucsd-ets/danial/FIX-double-login-event-logs
Nov 19, 2019
562907d
Update openedx-caliper-tracking app version to 0.11.7
mumarkhan999 Nov 29, 2019
38ce4c1
Merge pull request #257 from ucsd-ets/umar/update-openedx-caliper-ver…
mumarkhan999 Nov 29, 2019
725b1ba
Use "/tos" instead of "/honor" as "Terms of service and honor" url
danialmalik Nov 29, 2019
5950b06
Merge pull request #258 from ucsd-ets/danial/change-honor-to-tos-link
Nov 29, 2019
2c0a874
Add pr template
mumarkhan999 Dec 9, 2019
9b17143
Add tests for ucsd_features and modify existing tests accordingly
danialmalik Dec 12, 2019
124d7b2
Merge pull request #259 from ucsd-ets/umar/add_pr_template
mumarkhan999 Dec 16, 2019
4fd1abb
Merge pull request #260 from ucsd-ets/danial/add-tests-for-customizat…
Dec 17, 2019
94be6b8
Automatically verify all users and add a management command
danialmalik Dec 17, 2019
3dd3053
Merge pull request #261 from ucsd-ets/danial/bypass-user-verification
Dec 20, 2019
9b65dce
Fix multiple verification upon registration and profile update
danialmalik Dec 23, 2019
cced8e1
Merge pull request #263 from ucsd-ets/danial/fix-multiple-verifications
Dec 23, 2019
69d2db4
Disable refund failure emails
danialmalik Dec 26, 2019
9fcde39
Merge pull request #266 from ucsd-ets/danial/disable-refund-failure-e…
Dec 27, 2019
25b8e6d
Add test case and logging
danialmalik Jan 1, 2020
dc5a8c9
Merge pull request #267 from ucsd-ets/danial/EDS-140-add_test_cases
Jan 1, 2020
5a8d1d5
change learnx to ucsd online
danialmalik Jan 10, 2020
233ce71
Merge pull request #271 from ucsd-ets/danial/EDS-198-change_learnx_to…
Jan 14, 2020
60ef2c3
update subject for email
danialmalik Jan 17, 2020
47dbd73
Merge pull request #272 from ucsd-ets/danial/update-mail-subject
Jan 17, 2020
3247a74
Default Course Image
imhassantariq Jan 21, 2020
592d121
Merge pull request #274 from ucsd-ets/hassan/default_course_image
imhassantariq Jan 21, 2020
a96b1b1
Default Course Image
imhassantariq Jan 21, 2020
b74449c
Updated Test Eng scripts according to UCSD env
HusnainRazaGhaffar Jan 22, 2020
f7d14cc
Merge pull request #276 from ucsd-ets/jenkins-testeng
NIXKnight Jan 22, 2020
14de29a
Merge pull request #275 from ucsd-ets/hassan/default_course_image
imhassantariq Jan 22, 2020
a020666
Update log message to a more meaningful string
danialmalik Jan 29, 2020
502473a
Merge pull request #281 from ucsd-ets/danial/update-log-message
Jan 29, 2020
6e2c738
Changed the Refund Failure email subject
Jan 29, 2020
817de13
FIX: Pep8 violations
Jan 29, 2020
3261c8e
Merge pull request #283 from ucsd-ets/hamza/fix_pep8_violations
HamzaIbnFarooq Jan 29, 2020
fa0ae73
Merge pull request #282 from ucsd-ets/EDS-220/refund_failure_subject
imhassantariq Jan 29, 2020
4640bac
initial commit to replace certificate by statement of accomplishment
Jan 30, 2020
76709e6
Apply changes required for jenkins testing
danialmalik Feb 4, 2020
0942f44
Fixed the default course image issue in elasticsearch
imhassantariq Feb 6, 2020
510c6d6
Merge pull request #285 from ucsd-ets/danial/update-jenkins-scripts
Feb 6, 2020
d87172a
Merge pull request #287 from ucsd-ets/EDS-227/default_course_image_el…
HamzaIbnFarooq Feb 6, 2020
05b8121
Merge pull request #286 from ucsd-ets/hamza/replacing_certifate_by_st…
HamzaIbnFarooq Feb 6, 2020
89c8afa
Update content for user deletion
mumarkhan999 Feb 6, 2020
2ea1c09
Merge pull request #288 from ucsd-ets/umar/update-content-for-user-de…
mumarkhan999 Feb 6, 2020
9b286de
increase jenkins test worker timeout
danialmalik Feb 7, 2020
5785e7c
Merge pull request #290 from ucsd-ets/danial/increase_workder_timeout
Feb 7, 2020
a1743c3
Update user deletion snippet and its modal
mumarkhan999 Feb 10, 2020
9602157
Merge pull request #292 from ucsd-ets/umar/update-user-deletion-snipp…
mumarkhan999 Feb 10, 2020
c54e5b5
Update caliper version to 0.11.18
mumarkhan999 Feb 11, 2020
79027b7
Merge pull request #295 from ucsd-ets/umar/update-caliper-version-to-18
mumarkhan999 Feb 11, 2020
cf0e21a
Update api.py
mdandrad Feb 11, 2020
4831c87
Fixed the course images tests
imhassantariq Feb 11, 2020
35609ec
Merge pull request #293 from ucsd-ets/EDS-239/fix_course_image_tests
imhassantariq Feb 12, 2020
37c2a72
changed accomplishments to accomplishment on user deletion
Feb 12, 2020
e176d9d
Merge pull request #296 from ucsd-ets/mdandrad/update/register_content
pjamason Feb 13, 2020
fd4baef
Update cert name veriables in configuration file named common.py
mumarkhan999 Feb 14, 2020
20f98ae
Merge pull request #299 from ucsd-ets/umar/update-user-unenroll-content
mumarkhan999 Feb 14, 2020
261c3aa
Add url for what is soa
mumarkhan999 Feb 14, 2020
d0bccf2
Merge pull request #300 from ucsd-ets/umar/add-url-for-what-is-soa-te…
mumarkhan999 Feb 14, 2020
d2c451c
fixing RefundUtilMethodTests's test_refund_failure_notification_is_no…
Feb 14, 2020
97e46f7
Merge pull request #298 from ucsd-ets/hamza/language_change
HamzaIbnFarooq Feb 17, 2020
8ba8561
blocking TestRefundSignal's test_notification_themed_site test due to…
Feb 17, 2020
0529f42
FIX: RegistrationViewTest's python tests
Feb 17, 2020
55bec9e
FIX: TestCourseEmailContext tests
Feb 17, 2020
01f9010
FIX: TestCourseEmailContext tests
Feb 17, 2020
7ce48d3
FIX: changed content for RegistrationViewTest tests
Feb 17, 2020
788baa5
FIX: content change for TestScheduleOverrides tests
Feb 17, 2020
59e5ca0
Update learner_profile_fields.js
mdandrad Feb 18, 2020
6451956
Merge pull request #304 from ucsd-ets/mdandrad/update/profile_content
pjamason Feb 18, 2020
17be73b
Update account_settings_factory.js
mdandrad Feb 19, 2020
3f193e7
Merge pull request #305 from ucsd-ets/mdandrad/update/profile_linked_…
pjamason Feb 20, 2020
9f5b836
EDX-395_row 1 of Google doc
mdandrad Feb 21, 2020
1a24068
Second Row of Google Doc
mdandrad Feb 21, 2020
7997486
Replace certificate language in lms and core
mumarkhan999 Feb 21, 2020
e459f3c
fix SuspeciousFileOperation error
tehreem-sadat Feb 21, 2020
0ca25e0
Merge pull request #308 from ucsd-ets/tehreem/fix_preview_certificate…
tehreem-sadat Feb 24, 2020
fe81b1d
Merge pull request #309 from ucsd-ets/umar/update-lms-common-openedx-…
mumarkhan999 Feb 24, 2020
853bf15
Merge pull request #301 from ucsd-ets/hamza/EDS-233/Fix_python_tests
HamzaIbnFarooq Feb 25, 2020
3e2a608
Address errors
mdandrad Feb 25, 2020
c5c6b89
Add geography discount on course enrollments
danialmalik Feb 10, 2020
d7e68f8
Merge pull request #306 from ucsd-ets/danial/EDS-228-geographic-discount
Feb 26, 2020
c3678a8
Remove verified word
mumarkhan999 Feb 26, 2020
3fa8e76
Merge pull request #312 from ucsd-ets/umar/fix-unenrollment-notificat…
mumarkhan999 Feb 26, 2020
82ffc3c
Merge pull request #311 from ucsd-ets/mdandrad/contentUpdate/updateHe…
pjamason Mar 2, 2020
7d8004d
Broken Link
mdandrad Mar 3, 2020
c1be4ef
Merge pull request #315 from ucsd-ets/mdandrad/patch/brokenLink
pjamason Mar 3, 2020
614266c
Bug Fix
mdandrad Mar 10, 2020
f236f49
content update
mdandrad Mar 10, 2020
e165960
missing text
mdandrad Mar 10, 2020
afa4530
Merge pull request #321 from ucsd-ets/mdandrad/bugFix/AnchorLinkAsText
pjamason Mar 10, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Python CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-python/ for more details
#
version: 2
jobs:
build:
docker:
# specify the version you desire here
# use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers`
- image: circleci/python:2.7.15

# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/postgres:9.4

working_directory: ~/edx-platform

steps:
- checkout

- run:
name: Prepare Environment
command: |
sudo apt-get -y install libxmlsec1-dev libxml2-dev libxslt-dev graphviz libgraphviz-dev libreadline7 libreadline-dev default-libmysqlclient-dev libsqlite3-dev build-essential libgeos-dev mongodb-server mongodb-clients
sudo pip install virtualenv
virtualenv -p python venv
source venv/bin/activate
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
nvm install v8.9.3
npm install
pip install setuptools
pip install --exists-action w -r requirements/edx/testing.txt
pip install coveralls==1.0
pip freeze
- run:
name: Run Tests
command: |
source venv/bin/activate
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
sudo mongod --config /etc/mongodb.conf &
- store_artifacts:
path: test-reports
destination: test-reports
2 changes: 0 additions & 2 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,4 @@ output = reports/coverage.xml
jenkins_source =
/home/jenkins/workspace/$JOB_NAME
/home/jenkins/workspace/$SUBSET_JOB

devstack_source =
/edx/app/edxapp/edx-platform
27 changes: 27 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#### Story Link
[Text to be displayed](Ticket link)

#### PR Description

Please include a summary of the change/issue and include relevant information. List any dependencies that are required for this change.

#### Type of change

Please select the options that are relevant.

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation Change

#### How to test?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configurations.

- [ ] Test A
- [ ] Test B

#### Checklist before merging:

- [ ] Squased
- [ ] Reviewd
12 changes: 12 additions & 0 deletions .tx/config
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,15 @@ file_filter = conf/locale/<lang>/LC_MESSAGES/wiki.po
source_file = conf/locale/en/LC_MESSAGES/wiki.po
source_lang = en
type = PO

[open-edx-releases.release-ironwood]
file_filter = conf/locale/<lang>/LC_MESSAGES/django.po
source_file = conf/locale/en/LC_MESSAGES/django.po
source_lang = en
type = PO

[open-edx-releases.release-ironwood-js]
file_filter = conf/locale/<lang>/LC_MESSAGES/djangojs.po
source_file = conf/locale/en/LC_MESSAGES/djangojs.po
source_lang = en
type = PO
2 changes: 1 addition & 1 deletion cms/djangoapps/contentstore/tests/test_contentstore.py
Original file line number Diff line number Diff line change
Expand Up @@ -2200,7 +2200,7 @@ def test_login(self):

def test_logout(self):
# Logout redirects.
self._test_page("/logout", 302)
self._test_page("/logout", 200)

@override_switch(
'{}.{}'.format(waffle.WAFFLE_NAMESPACE, waffle.ENABLE_ACCESSIBILITY_POLICY_PAGE),
Expand Down
4 changes: 4 additions & 0 deletions cms/envs/aws.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,10 @@
ENTERPRISE_CONSENT_API_URL = ENV_TOKENS.get('ENTERPRISE_CONSENT_API_URL', LMS_INTERNAL_ROOT_URL + '/consent/api/v1/')
# Note that FEATURES['PREVIEW_LMS_BASE'] gets read in from the environment file.

# List of logout URIs for each IDA that the learner should be logged out of when they logout of
# Studio. Only applies to IDA for which the social auth flow uses DOT (Django OAuth Toolkit).
IDA_LOGOUT_URI_LIST = ENV_TOKENS.get('IDA_LOGOUT_URI_LIST', [])

SITE_NAME = ENV_TOKENS['SITE_NAME']

ALLOWED_HOSTS = [
Expand Down
15 changes: 14 additions & 1 deletion cms/envs/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,8 @@
RETIREMENT_SERVICE_WORKER_USERNAME,
RETIREMENT_STATES,

IDA_LOGOUT_URI_LIST,

# Methods to derive settings
_make_mako_template_dirs,
_make_locale_paths,
Expand Down Expand Up @@ -431,7 +433,7 @@
# use the ratelimit backend to prevent brute force attacks
AUTHENTICATION_BACKENDS = [
'rules.permissions.ObjectPermissionBackend',
'ratelimitbackend.backends.RateLimitModelBackend',
'openedx.core.djangoapps.oauth_dispatch.dot_overrides.backends.EdxRateLimitedAllowAllUsersModelBackend',
]

LMS_BASE = None
Expand All @@ -440,6 +442,13 @@
LMS_ENROLLMENT_API_PATH = "/api/enrollment/v1/"
ENTERPRISE_API_URL = LMS_INTERNAL_ROOT_URL + '/enterprise/api/v1/'
ENTERPRISE_CONSENT_API_URL = LMS_INTERNAL_ROOT_URL + '/consent/api/v1/'
FRONTEND_LOGIN_URL = LOGIN_URL
FRONTEND_LOGOUT_URL = lambda settings: settings.LMS_ROOT_URL + '/logout'
derived('FRONTEND_LOGOUT_URL')

# List of logout URIs for each IDA that the learner should be logged out of when they logout of
# Studio. Only applies to IDA for which the social auth flow uses DOT (Django OAuth Toolkit).
IDA_LOGOUT_URI_LIST = []

# These are standard regexes for pulling out info like course_ids, usage_ids, etc.
# They are used so that URLs with deprecated-format strings still work.
Expand Down Expand Up @@ -1559,3 +1568,7 @@
# setting for the FileWrapper class used to iterate over the export file data.
# See: https://docs.python.org/2/library/wsgiref.html#wsgiref.util.FileWrapper
COURSE_EXPORT_DOWNLOAD_CHUNK_SIZE = 8192

############## UCSD Features #########################

FEATURES['DISABLE_REFUND_FAILURE_NOTIFICATION'] = True
5 changes: 5 additions & 0 deletions cms/envs/devstack.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,11 @@ def should_show_debug_toolbar(request):
),
})

IDA_LOGOUT_URI_LIST = [
'http://localhost:18130/logout/', # ecommerce
'http://localhost:18150/logout/', # credentials
]

#####################################################################
from openedx.core.djangoapps.plugins import plugin_settings, constants as plugin_constants
plugin_settings.add_plugins(__name__, plugin_constants.ProjectType.CMS, plugin_constants.SettingsType.DEVSTACK)
Expand Down
41 changes: 39 additions & 2 deletions cms/envs/production.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

from path import Path as path
from xmodule.modulestore.modulestore_settings import convert_module_store_setting_if_needed
from openedx.core.djangoapps.plugins import plugin_settings, constants as plugin_constants
from django.core.urlresolvers import reverse_lazy

from .common import *

Expand Down Expand Up @@ -144,6 +146,10 @@
ENTERPRISE_CONSENT_API_URL = ENV_TOKENS.get('ENTERPRISE_CONSENT_API_URL', LMS_INTERNAL_ROOT_URL + '/consent/api/v1/')
# Note that FEATURES['PREVIEW_LMS_BASE'] gets read in from the environment file.

# List of logout URIs for each IDA that the learner should be logged out of when they logout of
# Studio. Only applies to IDA for which the social auth flow uses DOT (Django OAuth Toolkit).
IDA_LOGOUT_URI_LIST = ENV_TOKENS.get('IDA_LOGOUT_URI_LIST', [])

SITE_NAME = ENV_TOKENS['SITE_NAME']

ALLOWED_HOSTS = [
Expand Down Expand Up @@ -293,6 +299,15 @@
CAS_ATTRIBUTE_CALLBACK['function']
)

# Login using the LMS as the identity provider.
# Turning the flag to True means that the LMS will NOT be used as the Identity Provider (idp)
if FEATURES.get('DISABLE_STUDIO_SSO_OVER_LMS', False):
LOGIN_URL = reverse_lazy('login')
FRONTEND_LOGIN_URL = LOGIN_URL
FRONTEND_LOGOUT_URL = reverse_lazy('logout')

LOGIN_REDIRECT_WHITELIST = [reverse_lazy('home')]

# Specific setting for the File Upload Service to store media in a bucket.
FILE_UPLOAD_STORAGE_BUCKET_NAME = ENV_TOKENS.get('FILE_UPLOAD_STORAGE_BUCKET_NAME', FILE_UPLOAD_STORAGE_BUCKET_NAME)
FILE_UPLOAD_STORAGE_PREFIX = ENV_TOKENS.get('FILE_UPLOAD_STORAGE_PREFIX', FILE_UPLOAD_STORAGE_PREFIX)
Expand Down Expand Up @@ -590,12 +605,34 @@
############## Settings for Course Enrollment Modes ######################
COURSE_ENROLLMENT_MODES = ENV_TOKENS.get('COURSE_ENROLLMENT_MODES', COURSE_ENROLLMENT_MODES)

############### Settings for UCSD Support #####################
SUPPORT_DESK_EMAILS = ENV_TOKENS.get('SUPPORT_DESK_EMAILS')

############### Settings for Edx Caliper Tracking #####################
if FEATURES.get('ENABLE_EVENT_CALIPERIZATION'):
INSTALLED_APPS.insert(
INSTALLED_APPS.index('eventtracking.django.apps.EventTrackingConfig'),
'openedx_caliper_tracking'
)
if FEATURES.get('ENABLE_CALIPER_EVENTS_DELIVERY'):
CALIPER_DELIVERY_ENDPOINT = ENV_TOKENS.get('CALIPER_DELIVERY_ENDPOINT')
CALIPER_DELIVERY_AUTH_TOKEN = AUTH_TOKENS.get('CALIPER_DELIVERY_AUTH_TOKEN')

if FEATURES.get('ENABLE_KAFKA_FOR_CALIPER'):
CALIPER_KAFKA_SETTINGS = ENV_TOKENS.get('CALIPER_KAFKA_SETTINGS')
####################### Plugin Settings ##########################

# This is at the bottom because it is going to load more settings after base settings are loaded
from openedx.core.djangoapps.plugins import plugin_settings, constants as plugin_constants # pylint: disable=wrong-import-order, wrong-import-position
plugin_settings.add_plugins(__name__, plugin_constants.ProjectType.CMS, plugin_constants.SettingsType.AWS)

# Load aws.py in plugins for reverse compatibility. This can be removed after aws.py
# is officially removed.
plugin_settings.add_plugins(__name__, plugin_constants.ProjectType.CMS,
plugin_constants.SettingsType.AWS)

# We continue to load production.py over aws.py
plugin_settings.add_plugins(__name__, plugin_constants.ProjectType.CMS, plugin_constants.SettingsType.PRODUCTION)

########################## Derive Any Derived Settings #######################

derive_settings(__name__)
INSTALLED_APPS.append('openedx.features.ucsd_features')
7 changes: 7 additions & 0 deletions cms/envs/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -355,3 +355,10 @@
########################## Derive Any Derived Settings #######################

derive_settings(__name__)


################## UCSD Features ######################################

INSTALLED_APPS.append('openedx.features.ucsd_features')
FEATURES['ENABLE_EMAIL_INSTEAD_ZENDESK'] = False
FEATURES['DISABLE_REFUND_FAILURE_NOTIFICATION'] = False
11 changes: 7 additions & 4 deletions cms/templates/widgets/footer.html
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
## mako
<%page expression_filter="h"/>
<%!
from django.utils.translation import ugettext as _
from django.urls import reverse
from datetime import datetime
from django.conf import settings
import pytz
from cms.djangoapps.contentstore.config.waffle import waffle, ENABLE_ACCESSIBILITY_POLICY_PAGE
from openedx.core.djangolib.markup import HTML, Text
%>

<div class="wrapper-footer wrapper">
Expand Down Expand Up @@ -43,10 +46,10 @@
<div class="footer-about-copyright">
## Site operators: Please do not remove this paragraph! This attributes back to edX and makes your acknowledgement of edX's trademarks clear.
<p>
## Translators: 'EdX', 'edX', 'Studio', and 'Open edX' are trademarks of 'edX Inc.'. Please do not translate any of these trademarks and company names.
${_("EdX, Open edX, Studio, and the edX and Open edX logos are registered trademarks or trademarks of {link_start}edX Inc.{link_end}").format(
link_start=u"<a data-rel='edx.org' href='https://www.edx.org/'>",
link_end=u"</a>"
## Translators: 'edX' and 'Open edX' are trademarks of 'edX Inc.'. Please do not translate any of these trademarks and company names.
${Text(_("edX, Open edX, and the edX and Open edX logos are registered trademarks of {link_start}edX Inc.{link_end}")).format(
link_start=HTML(u"<a data-rel='edx.org' href='https://www.edx.org/'>"),
link_end=HTML(u"</a>")
)}
</p>
</div>
Expand Down
3 changes: 1 addition & 2 deletions cms/templates/widgets/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,6 @@ <h3 class="title"><span class="label"><a href="${get_online_help_info(online_hel

% else:
<%
login_url = settings.LMS_ROOT_URL + '/login'
register_url = settings.LMS_ROOT_URL + '/register'
%>
<nav class="nav-not-signedin nav-pitch" aria-label="${_('Account')}">
Expand All @@ -245,7 +244,7 @@ <h2 class="sr-only">${_("Account Navigation")}</h2>
</li>
% endif
<li class="nav-item nav-not-signedin-signin">
<a class="action action-signin" href="${login_url}?next=${current_url}">${_("Sign In")}</a>
<a class="action action-signin" href="${settings.FRONTEND_LOGIN_URL}?next=${current_url}">${_("Sign In")}</a>
</li>
</ol>
</nav>
Expand Down
5 changes: 1 addition & 4 deletions cms/templates/widgets/user_dropdown.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,6 @@ <h3 class="title">
</span>
<span class="icon fa fa-caret-down ui-toggle-dd" aria-hidden="true"></span>
</h3>
<%
logout_url = settings.LMS_ROOT_URL + '/logout'
%>
<div class="wrapper wrapper-nav-sub">
<div class="nav-sub">
<ul>
Expand All @@ -54,7 +51,7 @@ <h3 class="title">
</li>
% endif
<li class="nav-item nav-account-signout">
<a class="action action-signout" href="${logout_url}?next=${current_site_url}">${_("Sign Out")}</a>
<a class="action action-signout" href="${settings.FRONTEND_LOGOUT_URL}">${_("Sign Out")}</a>
</li>
</ul>
</div>
Expand Down
2 changes: 1 addition & 1 deletion common/djangoapps/course_modes/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class Meta(object):
def __init__(self, *args, **kwargs):
# If args is a QueryDict, then the ModelForm addition request came in as a POST with a course ID string.
# Change the course ID string to a CourseLocator object by copying the QueryDict to make it mutable.
if len(args) > 0 and 'course' in args[0] and isinstance(args[0], QueryDict):
if args and 'course' in args[0] and isinstance(args[0], QueryDict):
args_copy = args[0].copy()
args_copy['course'] = CourseKey.from_string(args_copy['course'])
args = [args_copy]
Expand Down
16 changes: 9 additions & 7 deletions common/djangoapps/course_modes/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -687,16 +687,18 @@ def min_course_price_for_currency(cls, course_id, currency):
def is_eligible_for_certificate(cls, mode_slug):
"""
Returns whether or not the given mode_slug is eligible for a
certificate. Currently all modes other than 'audit' and `honor`
grant a certificate. Note that audit enrollments which existed
prior to December 2015 *were* given certificates, so there will
be GeneratedCertificate records with mode='audit' which are
certificate. Currently all modes other than 'audit' grant a
certificate. Note that audit enrollments which existed prior
to December 2015 *were* given certificates, so there will be
GeneratedCertificate records with mode='audit' which are
eligible.
"""
if mode_slug == cls.AUDIT or mode_slug == cls.HONOR:
return False
ineligible_modes = [cls.AUDIT]

if settings.FEATURES['DISABLE_HONOR_CERTIFICATES']:
ineligible_modes.append(cls.HONOR)

return True
return mode_slug not in ineligible_modes

def to_tuple(self):
"""
Expand Down
23 changes: 15 additions & 8 deletions common/djangoapps/course_modes/tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -455,17 +455,24 @@ def test_expiration_datetime_explicitly_set_to_none(self):
self.assertIsNone(verified_mode.expiration_datetime)

@ddt.data(
(CourseMode.AUDIT, False),
(CourseMode.HONOR, False),
(CourseMode.VERIFIED, True),
(CourseMode.CREDIT_MODE, True),
(CourseMode.PROFESSIONAL, True),
(CourseMode.NO_ID_PROFESSIONAL_MODE, True),
(False, CourseMode.AUDIT, False),
(False, CourseMode.HONOR, True),
(False, CourseMode.VERIFIED, True),
(False, CourseMode.CREDIT_MODE, True),
(False, CourseMode.PROFESSIONAL, True),
(False, CourseMode.NO_ID_PROFESSIONAL_MODE, True),
(True, CourseMode.AUDIT, False),
(True, CourseMode.HONOR, False),
(True, CourseMode.VERIFIED, True),
(True, CourseMode.CREDIT_MODE, True),
(True, CourseMode.PROFESSIONAL, True),
(True, CourseMode.NO_ID_PROFESSIONAL_MODE, True),
)
@ddt.unpack
def test_eligible_for_cert(self, mode_slug, expected_eligibility):
def test_eligible_for_cert(self, disable_honor_cert, mode_slug, expected_eligibility):
"""Verify that non-audit modes are eligible for a cert."""
self.assertEqual(CourseMode.is_eligible_for_certificate(mode_slug), expected_eligibility)
with override_settings(FEATURES={'DISABLE_HONOR_CERTIFICATES': disable_honor_cert}):
self.assertEqual(CourseMode.is_eligible_for_certificate(mode_slug), expected_eligibility)

@ddt.data(
(CourseMode.AUDIT, False),
Expand Down
Loading