edx/edx-platform — pull request #2533 by jrbl (2014-02-08 00:51:17+00:00)
Title: (WIP) request cert endpoint (DNM)

Certificates: URL endpoint for cert gen, setting to enable rolling certification, and sample YAML for 'grade me' button.

* API endpoint for certificate generation, an authenticated post with course
id requests that grading be carried out and a cert generated for
request.user in that course, using the usual grading and certificate
machinery (ie, it does not imply whitelisting, though whitelists and
blacklists will be respected)
- Logs each request as it comes in
- Calls xq.add_cert() and consequently, does grading synchronously on
this app host and then queues request for certificate agent.
- example usage:
```
curl --data "student_id=9999&course_id=Stanford/2013/Some_Class" http://127.0.0.1:8000/request_certificate
```

* Studio advanced setting added, "certificates_show_before_end", which
determines whether a course should permit certificates to be downloadable
by students before the coures's end date has passed.
- Modifications to dashboard view and templates to allow display of
certificate download links before course has ended.
(XXX: may declare failing students as failing before the course has ended.)
- To test, turn the setting on in a course which hasn't ended yet, and
force certificate generation for a student, then check their
dashboard.

* YAML for inserting sample HTML and javascript to show how you might integrate the
/request_certificate endpoint into the courseware.

* TODO:
- make grading calls into a celery task so they happen asynchronously (?)
- needs tests
- needs pep8/pylint