{"action":"created","issue":{"url":"https://api.github.com/repos/edx/edx-enterprise/issues/171","repository_url":"https://api.github.com/repos/edx/edx-enterprise","labels_url":"https://api.github.com/repos/edx/edx-enterprise/issues/171/labels{/name}","comments_url":"https://api.github.com/repos/edx/edx-enterprise/issues/171/comments","events_url":"https://api.github.com/repos/edx/edx-enterprise/issues/171/events","html_url":"https://github.com/edx/edx-enterprise/pull/171","id":250886004,"number":171,"title":"[ENT-486] Programs Landing Page","user":{"login":"UmanShahzad","id":10018065,"avatar_url":"https://avatars0.githubusercontent.com/u/10018065?v=4","gravatar_id":"","url":"https://api.github.com/users/UmanShahzad","html_url":"https://github.com/UmanShahzad","followers_url":"https://api.github.com/users/UmanShahzad/followers","following_url":"https://api.github.com/users/UmanShahzad/following{/other_user}","gists_url":"https://api.github.com/users/UmanShahzad/gists{/gist_id}","starred_url":"https://api.github.com/users/UmanShahzad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/UmanShahzad/subscriptions","organizations_url":"https://api.github.com/users/UmanShahzad/orgs","repos_url":"https://api.github.com/users/UmanShahzad/repos","events_url":"https://api.github.com/users/UmanShahzad/events{/privacy}","received_events_url":"https://api.github.com/users/UmanShahzad/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"UmanShahzad","id":10018065,"avatar_url":"https://avatars0.githubusercontent.com/u/10018065?v=4","gravatar_id":"","url":"https://api.github.com/users/UmanShahzad","html_url":"https://github.com/UmanShahzad","followers_url":"https://api.github.com/users/UmanShahzad/followers","following_url":"https://api.github.com/users/UmanShahzad/following{/other_user}","gists_url":"https://api.github.com/users/UmanShahzad/gists{/gist_id}","starred_url":"https://api.github.com/users/UmanShahzad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/UmanShahzad/subscriptions","organizations_url":"https://api.github.com/users/UmanShahzad/orgs","repos_url":"https://api.github.com/users/UmanShahzad/repos","events_url":"https://api.github.com/users/UmanShahzad/events{/privacy}","received_events_url":"https://api.github.com/users/UmanShahzad/received_events","type":"User","site_admin":false},"assignees":[{"login":"UmanShahzad","id":10018065,"avatar_url":"https://avatars0.githubusercontent.com/u/10018065?v=4","gravatar_id":"","url":"https://api.github.com/users/UmanShahzad","html_url":"https://github.com/UmanShahzad","followers_url":"https://api.github.com/users/UmanShahzad/followers","following_url":"https://api.github.com/users/UmanShahzad/following{/other_user}","gists_url":"https://api.github.com/users/UmanShahzad/gists{/gist_id}","starred_url":"https://api.github.com/users/UmanShahzad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/UmanShahzad/subscriptions","organizations_url":"https://api.github.com/users/UmanShahzad/orgs","repos_url":"https://api.github.com/users/UmanShahzad/repos","events_url":"https://api.github.com/users/UmanShahzad/events{/privacy}","received_events_url":"https://api.github.com/users/UmanShahzad/received_events","type":"User","site_admin":false}],"milestone":null,"comments":29,"created_at":"2017-08-17T09:42:11Z","updated_at":"2017-09-11T15:43:27Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/edx/edx-enterprise/pulls/171","html_url":"https://github.com/edx/edx-enterprise/pull/171","diff_url":"https://github.com/edx/edx-enterprise/pull/171.diff","patch_url":"https://github.com/edx/edx-enterprise/pull/171.patch"},"body":"**Description:** This PR adds a Programs landing page, akin to the course enrollment landing page.\r\n\r\n**JIRA:** [ENT-486](https://openedx.atlassian.net/browse/ENT-486)\r\n\r\n**Dependencies:** None any longer.\r\n\r\n**Merge deadline:** Asap.\r\n\r\n**Testing instructions:**\r\n\r\nYou will need to utilize the LMS, discovery, and ecommerce for properly testing this, as well as fake data to actually see anything. Or this can be moved to the sandbox and be tested there.\r\n\r\n#### Setup\r\n\r\n1. Make authoring organizations on course-discovery.\r\n1. Make courses (audit and verified track) and course runs, and use any authoring organization if applicable. Make them appear on course-discovery.\r\n1. Make a program containing anything you created above, if applicable (and note the UUID). Make it one-click purchasable.\r\n1. Make a program API config (actually, it's just a \"program config\", but we aren't changing the name yet on the model) at LMS path `/admin/programs/programsapiconfig/`. Make sure it's enabled.\r\n1. Make SKU data associated with the course(s) you made above on ecommerce.\r\n1. Make an enterprise customer. Note the UUID.\r\n\r\n#### Initial test of GET, POST, and UI\r\n\r\n1. Login to the LMS as any user who is not enrolled in the course you created.\r\n1. Navigate to `/enterprise/{enterprise_uuid}/program/{program_uuid}/enroll/`. Replace `{enterprise_uuid}` and `{program_uuid}` with the enterprise's UUID and the program's UUID that you noted above, respectively.\r\n1. See something roughly like this page (information present depends on your configuration of fake data):\r\n\r\n![selection_002](https://user-images.githubusercontent.com/10018065/30072566-2a08a348-9284-11e7-8d72-f9c2f94f4b50.png)\r\n\r\n1. Click the Confirm Program button.\r\n1. Ensure that you see the DSC page.\r\n1. Decline consent by clicking \"No, take me back\".\r\n1. Ensure that you're redirected back to the program enrollment landing page, and see the message at the top, as such:\r\n\r\n![selection_001](https://user-images.githubusercontent.com/10018065/30072499-f2f39048-9283-11e7-9f2e-033de5048cbf.png)\r\n\r\n1. Click the Confirm Program button again.\r\n1. This time, grant data sharing consent.\r\n1. Ensure that you see the basket page with the list of courses (or just 1) that you have in the program.\r\n1. Ensure that the price matches what was advertised on the program enrollment landing page that you just navigated away from.\r\n1. Ensure that if a discount was present, that discount is applied in the basket.\r\n1. Fill in basket information to get yourself enrolled in the program.\r\n1. Ensure you are redirected to the Program's detail page (`/dashboard/programs/{program_uuid}/`) upon enrollment.\r\n\r\n#### Making sure GET redirects us to the Program's detail page\r\n\r\n1. After initial enrollment is successful, navigate to `/enterprise/{enterprise_uuid}/program/{program_uuid}/enroll/` once more, replacing UUID placeholders as necessary.\r\n1. Notice you are redirected to the Program's detail page (`/dashboard/programs/{program_uuid}/`) instead of seeing the program enrollment landing page.\r\n\r\n#### Making sure you see adjusted text & price when enrolled in at least 1 course, but not all\r\n\r\n1. If you only had 1 course in the program, create more and put them in the program. If you already had multiple, manually unenroll yourself from one or more of the courses, but not all.\r\n1. Navigate to `/enterprise/{enterprise_uuid}/program/{program_uuid}/enroll/`.\r\n1. See that you are now on the program enrollment landing page.\r\n1. See that for each course you were still enrolled in, it is striked out and next to it reads \"**(enrolled)**\".\r\n1. See that for each course you *weren't* enrolled in, it appears as normal.\r\n1. See that the price is adjusted to match the total of only those courses you're not already enrolled in (consider any discounts, too).\r\n\r\n#### Making sure you see adjusted text & price when enrolled in a course in the program but without having paid for the certificate\r\n\r\n1. Unenroll in at least 1 course in the program manually.\r\n1. Re-enroll in the course, but this time on the audit track. You can use the enterprise course enrollment landing page if you like.\r\n1. Navigate to `/enterprise/{enterprise_uuid}/program/{program_uuid}/enroll/`.\r\n1. See that you are now on the program enrollment landing page.\r\n1. See that for each course you were still enrolled in in audit mode, below the course reads \"**(already enrolled, must pay for certificate)**\".\r\n1. See that for each course you *weren't* enrolled in, it appears as normal.\r\n\r\n**Merge checklist:**\r\n\r\n- [ ] Check that the versions of the requirements in the `platform-master.in` file match edx-platform.\r\n- [x] New requirements are in the right place (`base.in` if only used in enterprise; in the correct `platform-****.in` files if they're hosted in edx-platform)\r\n- [x] Regenerate requirements with `make upgrade && make requirements` (and make sure to fix any errors).\r\n  **DO NOT** just add dependencies to `requirements/*.txt` files.\r\n- [ ] All reviewers approved\r\n- [x] CI build is green\r\n- [ ] Version bumped\r\n- [ ] Changelog record added\r\n- [x] Documentation updated (not only docstrings)\r\n- [ ] Commits are (reasonably) squashed\r\n- [x] Translations are updated\r\n- [ ] PR author is listed in AUTHORS\r\n\r\n**Post merge:**\r\n- [ ] Create a tag\r\n- [ ] Check new version is pushed to PyPi after tag-triggered build is finished.\r\n- [ ] Delete working branch (if not needed anymore)\r\n- [ ] edx-platform PR (be sure to include edx-platform requirements upgrades that were present in this PR)"},"comment":{"url":"https://api.github.com/repos/edx/edx-enterprise/issues/comments/328570462","html_url":"https://github.com/edx/edx-enterprise/pull/171#issuecomment-328570462","issue_url":"https://api.github.com/repos/edx/edx-enterprise/issues/171","id":328570462,"user":{"login":"douglashall","id":224634,"avatar_url":"https://avatars2.githubusercontent.com/u/224634?v=4","gravatar_id":"","url":"https://api.github.com/users/douglashall","html_url":"https://github.com/douglashall","followers_url":"https://api.github.com/users/douglashall/followers","following_url":"https://api.github.com/users/douglashall/following{/other_user}","gists_url":"https://api.github.com/users/douglashall/gists{/gist_id}","starred_url":"https://api.github.com/users/douglashall/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/douglashall/subscriptions","organizations_url":"https://api.github.com/users/douglashall/orgs","repos_url":"https://api.github.com/users/douglashall/repos","events_url":"https://api.github.com/users/douglashall/events{/privacy}","received_events_url":"https://api.github.com/users/douglashall/received_events","type":"User","site_admin":false},"created_at":"2017-09-11T15:43:27Z","updated_at":"2017-09-11T15:43:27Z","author_association":"MEMBER","body":"No need to wait for me @UmanShahzad. Looks like you have what you need to merge! Nice work."}}
{"actor":{"display_login":"douglashall"}}