Git Product home page Git Product logo

mitocw / edx-platform Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openedx/edx-platform

12.0 12.0 3.0 1.32 GB

the edX learning management system (LMS) and course authoring tool, Studio

Home Page: http://code.edx.org/

License: GNU Affero General Public License v3.0

Python 54.40% JavaScript 26.93% CSS 0.40% HTML 15.01% Shell 0.11% ActionScript 0.01% Makefile 0.01% SCSS 3.13% Jinja 0.01% Mustache 0.01%

edx-platform's People

Contributors

adampalay avatar andy-armstrong avatar auraz avatar awais786 avatar awaisdar001 avatar ayub-khan avatar brianhw avatar bridger avatar cpennington avatar dementrock avatar dianakhuang avatar doctoryes avatar feanil avatar ichuang avatar jmbowman avatar marcotuts avatar mattdrayer avatar matthewpiatetsky avatar mhoeber avatar muhammad-ammar avatar nasthagiri avatar nedbat avatar pmitros avatar polesye avatar robrap avatar sarina avatar singingwolfboy avatar srpearce avatar talbs avatar waheedahmed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

edx-platform's Issues

Discovery: Legacy Dashboard: Grade Downloads

I believe all the legacy dashboard features in "Grade Downloads" have been ported to the new dashboard.

See, for example, https://staging.mitx.mit.edu/courses/DevOps/0.001/2015_Summer/legacy_instructor_dash

  • "Dump List of Enrolled Students" => "Data Download" / "List enrolled students' Profile information"
  • "Dump All Raw Grades for all students in this course" => "Student Admin" / "View Gradebook" ?
  • "Download CSV of all RAW Grades" =>
  • "Download CSV of answer distributions" => "Data Download" / "Generate Problem Grade Report" ?

screenshot-staging mitx mit edu 2015-08-21 11-44-20

Reconsider term “Coach”

Coach is a term that immediately makes people think of Khan Academy—to the point of confusion for one teacher trying to work with us. In many ways, these are instructors/teachers rather than someone that monitors progress.

The term "coach" is used in the following:

  • Membership tab of instructor dashboard (i.e. instructors add CCX Coaches)
  • The "CCX coach" tab
  • code (i.e. the name of the role)
  • documentation

sysadmin dashboard: update symlink when importing a course

As a edx admin using the system panel, I need to be able to change the repo used for courses using gitreload. My process for this is to delete the course via the sysadmin dashboard and then import a replacement from a different git URL. However, when I do this, the symlink to the static assets directory is not updated. It continues to point to the old repo on disk (which I cannot delete) and the course uses old static assets and python library.

All courseware displays when switching user roles

When your user is both Student and Staff in a POC, some users expect to switch from Staff to Student roles to see what a POC-enrolled student sees, and Student to Staff to see what the POC Coach sees. This doesn't work. All courseware is displayed in both cases, regardless of the selection of courseware in the POC Schedule tab. This seems to be a bug, though I don't know what the expected behavior is.

Coach added by Instructor isn't enrolled in course

I experienced this on edge.edx. As an instructor I added a coach. I logged in as the coach and received a page saying that I was not enrolled in any course. I will test this in our sandbox as well and report back.

Multiple Instances (sections) for a single CCx coach

via Dan Seaton:

Multiple Instances (sections) for a single CCx coach
(from Daniel Seaton, DavidsonNext)
Many of our high school instructors teach multiple sections of the same course. On edge, we made them as many “spocs” as they needed. Will CCx ever allow a single instructor to create multiple CCx instances?

  • Discovery: does model allow for multiple CCXs per coach?
  • Create an "CCX admin" tab in Coach dashboard, containing form to create new CCX and list of coach's existing CCXs on this course
  • Change CCX dashboard code so it no longer picks coach's first CCX from CCX table. Instead send coach to "CCX Admin" tab
  • Add/change the form on the CCX dashboard to make it clearer that coach is creating new ccx
  • Add links in "CCX admin" tab to student dashboard, so CCX coach can find her existing CCXs
  • Disallow creation of new CCX on any course with a CCXCon URL setting -- only the CCXconn can create new CCX

Schedule tab: active start date is not displayed

Adding new courseware in the CCX Dashboard Schedule tab sets the release date/time to the date it was added to the CCX Schedule, though this date/time is not displayed as the start date in the Schedule tab. This implies that the start date may be undefined. This is misleading. The start date should be displayed.

Move CCXLocator checks out of CourseOverview model

For the remove CCXMembership pull request (https://github.com/edx/edx-platform/pull/8986), we moved CCX key checks out of the templates to avoid having them anywhere. The way we did that was to modify the CourseOverview model to make that check only once.

https://github.com/edx/edx-platform/pull/8986#discussion_r35795445

However, this is not a good long term solution. The ideal way to handle this would be as field overrides, which will require some refactoring.

fix URL, course title in CCX enrollment email

via Zendesk #2301

Hi Peter,
Today when I enroll students in my test CCX, the notification email uses the base course name and the link points to the base course, not to the CCX. See example message below:

If possible, this bug seems important to fix quickly—a smooth enrollment process will probably be important for successful teacher adoption.

Dear Christopher Chudzicki

You have been enrolled in Chris Playground 103 at edge.edx.org by a member of the course staff. The course should now appear on your edge.edx.org dashboard.

To start accessing course materials, please visit https://edge.edx.org/courses/course-v1:CAC+CAC103+FOREVER/

"Chris Playground 103" is the base course name
https://edge.edx.org/courses/course-v1:CAC+CAC103+FOREVER/ is base course link

Should be and (+ccx@48 in my case).

Best,
Chris

Access CCX dashboard through CCX (in addition to accessing it through master course)

via Chris Chudziki:

Accessing CCX Dashboard
Currently coaches can only access the CCX Dashboard through the base course. This seems to be a strange setup: to manage my CCX, I need to enter a different course.

Suggestion: Allow coaches to enter CCX Dashboard through either base course or custom course and make changes in picture below.

screen shot 2015-10-27 at 10 31 20 am

Legacy Dashboard: Export Grades to Remote Gradebook

As an instructor at MIT, I need to be able to export my student's grades to the MIT gradebook.

This works currently in the legacy instructor dashboard. It needs to be moved to the current dashboard, using the same feature flag, with the same functionality. Note that the export has an option to use pre-computed grades.

screenshot-staging mitx mit edu 2015-08-21 10-48-53

CCX: Conflicting start and end dates do not show an error

Tested on sandbox2o.

I noticed that conflicting start and end dates do not provide an error message and can go unnoticed. Changes can be saved as well. I'm not sure if an error message is desired. I provided two examples of conflicting dates below.

screen shot 2015-08-04 at 10 47 41 am

When a course is scheduled in studio, conflicting dates will produce an error message and changes cannot be saved.
screen shot 2015-08-05 at 10 27 41 am
screen shot 2015-08-05 at 10 29 22 am

However, individual subsections can be scheduled with conflicting dates and changes can be saved.
screen shot 2015-08-05 at 10 38 24 am

Legacy Dashboard: Download CSV of all responses to a problem

As an instructor, I'd like to be able to download all the responses to a problem for off-line analysis. It is convenient to do this on-demand from the instructor dashboard so I can act on it while a course is running rather than waiting for summative data after the course is complete.

See https://staging.mitx.mit.edu/courses/DevOps/0.001/2015_Summer/legacy_instructor_dash

screenshot-staging mitx mit edu 2015-08-21 09-52-46

This story will require some discovery to make sure that this function isn't already available in the new instructor dashboard, possibly "Data Download" / "Generate Problem Grade Report"

Add scrollbars to gradebook

As a CCX Coach, I need an intuitive way to scroll through a gradebook with a large number of assignments.

We had a CCX coach ask us how to view the rest of the gradebook since only part of it can be shown at once. The answer is “Drag it”.

Suggestion: Change dragging mechanism to scrolling, which people are probably more familiar with for tables.

Simplify Enrollment tab

As a coach, it is confusing that there are two interfaces to enroll students, each with different options.

In the coach dashboard, only batch enrollment can notify student by email. Is this intentional?

image00

The CCX Enrollment tab was based off an older version of the Membership tab of the Instructor dashboard. The current version uses one UI for enrolling students.

This story may be influence by the outcome of #35

Legacy Dashboard: Course Statistics at a Glance

As an instructor, I would like to be able to see some high-level information about the content of my course.

This feature exists in the old legacy instructor dashboard but has not been ported to the new dashboard. It's possible that the relatively new course_structure api (name?) might be easier to use than the way this was originally implemented.

Schedule: Item start dates are not validated for their relative position in hierarchy

The position of courseware items in the POC schedule tab and its hierarchy imply these items are ordered by their position. This is misleading since there is no validation that start dates conform to the implied ordering by position. This can result in unexpected item visibility to students. For example, a parent item can have a start date in the future, but a child item can have a start date in the past.

When adding a coach to a master course, enroll the coach

As a CCX coach, I need to be able to see the courseware that I will be scheduling in my CCXs. Although course staff can manually enroll me in the course, it would be simpler if I could be added automatically when I am made a CCX Coach.

There isn't an existing course role that fits this requirement perfectly. Student may be too limited, but course staff would alllow the coach to view and change grades on the master course. For this story, the coach should be enrolled as a student -- even if registration has been closed.

Schedule: No error message when time not specified

When adding items to the schedule, if you specify a start date but not a start time in the right hand panel and then click Add Unit, the date isn't added nor is there an error message saying that you can't specify a date without also specifying a date. If you try to set the date for an item that is already in the schedule, but leave the time empty, an error message does appear.

Allow Coach to Specify Timezone

As a CCX student, it would be easier for me to understand due dates if they were displayed in my local timezone. As a CCX coach, I would like to be able to set the timezone for my CCX so that when I enter due dates and times they are in my timezone instead of UTC.

Test Zapier integration

This is a test of the Zapier integration with issues in this repo. This issue should trigger the creation of a story in Pivotal Tracker.

CCX: unenrolled students still appear in Student List Management control

When I unenroll or revoke access for a user in the CCX Enrollment tab, the user's name remains in the Student List Management control even though the CCX is no longer available in the user's dashboard.

  1. As Coach revoke access of a CCX student.
  2. Verify that the student's name remains listed as an enrolled student.
  3. As the student, verify that the CCX is no longer in your Dashboard.

Batch Enrollment - invalid user fails without error message

Either a username or an email address may be entered in the Batch Enrollment panel. If a username that is unknown to the system is entered, no email is sent and no warning message is displayed, even though an error message is written to the log.

2015-05-15 12:11:12,173 INFO 5560 [ccx.views] views.py:369 - Invalid user name or email when trying to invite students: pwilkins-stu02

The instructions on the page say, " ... You will not get notification for emails that bounce," but makes no mention of invalid usernames that don't even generate emails. Unless this behavior is consistent with other edX controls, either an error message should be shown or the page instructions should change.

Allow Coaches to Rename their CCX After Initial Creation

via Chris Chudzicki:

Allow Coaches to Rename their CCX After Initial Creation
Clearly coaches should not change the course name very often, but typos do occur. Also, teachers may want to retroactively standardize name formats, e.g., by adding their name (“Mr. Jones”) after the main title.

Possible implementation: Change the CCX Dashbaord “Grading Policy” panel to “Advanced Settings” and include in there?

This may be easier to address as part of the ui for #34

CCX: Accessibility - add explicit labels

Explicit labels are elements that programmatically associate form fields with accessible text. Many of the fields missing accessible labels in CCX have visible text labels already. They just need to be wrapped in elements. elements can be associated with input fields in one of two ways; an implied relationship is assumed if the input is a child of the, explicit relationships can be defined using a for attribute on the element that references an id attribute on the input.

Instructor Dashboard

Course Team Management

  • The “Enter username or email” form field is missing an explicit label [1].

    CCX Coach Dashboard

    Enrollment Tab

    Batch Enrollment

  • “Email Addresses/Usernames” textarea is missing an explicit label.
  • “Auto Enroll” checkbox is missing an explicit label.
  • “Notify users by email” checkbox is missing an explicit label.

Student List Management

  • “Enter username or email” form field is missing an explicit label.

Schedule Tab

Schedule a Unit

  • “Section” select menu is missing an explicit label.
  • “Subsection” select menu is missing an explicit label.
  • “Unit” select menu is missing an explicit label.
  • “Start Date” is missing explicit label
  • “Start Time” is missing explicit label
  • “Due Date” is missing explicit label
  • “Due Time” is missing explicit label

(copied verbatim from Mark Sadecki's CCX Accessibility audit - July 17, 2015)

CCX: Accessibility - Schedule Table modification

Schedule Table

Unfortunately, there are some significant issues with the way the Schedule Table is implemented. In summary, there is nothing that programmatically indicates the relationship between the nested table rows. They only appear related visually by their padding-left. Also, the controls to expand/collapse have no accessible text[1] and are not associated with the Section/Subsection/Unit name. All of these objects are conveyed as equal table rows.

ARIA has a concept for this. Controls such as these are typically represented as TREEs. However, a TREE would not be represented as a table. The table here is really just being used as a convenient display mechanism.

The effort required to change this to a proper tree structure would be very great. I am recommending a “hack” solution that should be easier to implement but fully accessible:

  • Keep the table structure
  • Add screen reader text[4] that follows each “title” in the Unit column that identifies it as a “Section”, “Subsection”, or “Unit”
  • Add screen reader text for each toggle control that indicates what clicking it will do (either “Expand” or - “Collapse” this will toggle according to its current state)
  • Add controls before the table to “Expand All”/“Collapse All”

Add Help Text to date/time picker

The accessibility of the date and time pickers associated with type=“date” and type=“time” input fields is the responsibility of the user agent. Some UAs will allow the user to manually type a date. For this to work though, it has to be in the right format. Suggest adding help text to these form fields which indicates what the acceptable format is e.g. yyyy-mm-dd or 2015–07–17. The current placeholder indicates that yyyy/mm/dd is acceptable. However Firefox and Safari accept the yyyy-mm-dd format. This makes the current placeholder misleading.

Save Changes

After adding a new unit to the schedule, the Save Changes block is added to the DOM. A screen reader user would not know this has happened. Since an action is required (“Save Changes”) it is appropriate to move focus[2] to this new content. Suggest adding a tabindex=“–1” to this div and moving focus() to it. Saving Changes moves the focus back tot he Schedule a Unit div, and I think that is an acceptable workflow.

Other issues

  • The “Set date” and “Set time” links should really be buttons.
  • When you click them, focus[2] must be moved to the modal dialog that opens.
  • Setting the date or time or closing the dialog should return focus to the control that opened it.
  • The date and time inputs in the dialog box suffer from the same label issues as in “Schedule a Unit” above
  • Focus must remain trapped in the dialog box until it is closed.
  • “Remove” links are all identical and provide no context. It would be helpful to add screen reader text that includes the name of the Unit that would be removed.
  • All of the toggle controls need accessible text.
  • All icon fonts ) need aria-hidden=“true” added to them[3].

(copied from Mark Sadecki's CCX Accessibility audit - July 17, 2015)

[1] All elements that are focusable/interactive must have accessible text associated with them so that when a screen reader user moves focus to them, they understand what the control does. The toggle arrows used in this table have no text associated with them.

[2] Focus management is a key concept in accessibility. Screen readers only read what is currently in focus at any given time. Whenever content is injected into the DOM, it will not be read by the screen reader. If the content is meant to be interacted with, you must move focus to the content that was injected so that the screen reader user can progress through the expected workflow as naturally (or logically) as a mouse user would.

[3] Screen readers are not exclusively used by blind individuals. Many people with cognitive or reading impairments use screen readers as well. Text that is spoken is often displayed visually in a uniform font/style. Icon fonts will be displayed as a generic glyph. at edX, we hide these from visual screen readers with aria-hidden=“true”.

Legacy Dashboard: Pull enrollment data from remote gradebook

As an instructor, I would like to be able to pull my edX course enrollment from a remote gradebook (i.e. Stellar) or push my edX enrollment.

There is a UI and set of functions for enrollment in the legacy dashboard, but the UI is confusing and the functions need to be reviewed to make sure they are actually valuable for users.

screenshot-staging mitx mit edu 2015-08-21 11-47-28

Changes to a CCX course should emit a course_published event,

... just like regular courses. (edX is willing to help with this one as we didn't discuss this specifically. It is a low effort ask and has lots of downstream value)

This is what triggers search indexing, as a well as course structure updates that Insights needs for
outline information. We're going to be building on the latter in order to make the expanded grade report
as well in Q4. Basically, it's all in the general theme of "Make CCX look like just another course to the
rest of the system"

Email students

As a CCX coach, I'd like to be able to easily e-mail all my students.

Currently, it's very hard to scrape the student's e-mail addresses from the membership panel of the CCX Coach dashboard.

Alternately, the email tab of the instructor dashboard could meet this need, if the CCX coach had access to it.

Student enrolled through coach dashboard isn't enrolled

As a coach, I enroll students through the membership tab of the student dashboard. But when I arrive at the CCX as a student, I still get a banner with the message, "You are not enrolled yet
You are not currently enrolled in this course. Sign up for it here!"

For some CCXs, clicking the link and registering still doesn't get the student enrolled.

I suspect this issue may be addressed by #78 but I'm not sure.

screen shot 2015-06-19 at 8 17 46 am
screen shot 2015-06-19 at 8 17 29 am

Show a block's display_name on hover in the gradebook

As a CCX Coach, I find the column labels in the gradebook (e.g. "HW03") obscure. I'd like a way to be able to see exactly which problem my student had done to get that grade.

screen shot 2015-08-14 at 4 06 39 pm

One solution would be to show the display_name of the relevant xblock/xmodule when hovering over the column header.

two different date widgets appear in Chrome

In the Schedule tab, I can get two different date widgets to appear using Chrome.
Steps to reproduce:

  1. Select a unit to add to schedule
  2. click inside the set date textbox, a date picker appears
  3. click the large dropdown icon, the one furthest to the right, a different date picker overlays the first one.

dueling-date-widget

Visual html editor modifies target attribute.

From a course author:

This issue is in the UNIT html "compiler". Any external link specified
in the visual html editor gets recorded with target="[object Object]"
tag, regardless of the target specified in the link dialog box, which
forces a new tab to open when the link is clicked on. I edited the
html code using the raw html editor, so I solved the problem locally,
but it should be solved in the system.

I have not yet confirmed this on our system.

Selecting time in CCX Coach Dashboard

I've noticed that you cannot select the times for 'start date' or 'end date'. Therefore, you cannot properly add content via the 'Schedule' tab in the 'CCX Coach Dashboard'

At the moment, you can only select start and end date/time after you add the content.

This was tested on sandbox2o.

screen shot 2015-07-28 at 3 35 47 pm

Stop throwing errors when grading policy is missing min_count key

From https://odl.zendesk.com/agent/tickets/2401

8.05 has a degenerate but otherwise working grading_policy:

https://github.mit.edu/mitx/content-mit-805x/blob/edgeccx/policies/1T2015/grading_policy.json#L17-L28

Two assignment types are missing the min_count key. When we try to save the CCX schedule, we check the min_count to see if we need to update it due to assignments being removed from the CCX. If the key doesn't exist, it results in a 500:

Traceback (most recent call last):

 File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 109, in get_response
   response = callback(request, *callback_args, **callback_kwargs)

 File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/utils/decorators.py", line 91, in _wrapped_view
   response = view_func(request, *args, **kwargs)

 File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/views/decorators/cache.py", line 75, in _cache_controlled
   response = viewfunc(request, *args, **kw)

 File "/edx/app/edxapp/edx-platform/lms/djangoapps/ccx/views.py", line 99, in wrapper
   return view(request, course, ccx)

 File "/edx/app/edxapp/edx-platform/lms/djangoapps/ccx/views.py", line 258, in save_ccx
   if count < section['min_count']:

KeyError: 'min_count'

We should protect against this. It's safe to assume that min_count = 0 when there is no value.

When creating a CCX, automatically enroll the coach

As a CCX coach, I expect to see my CCXs in my dashboard and I expect to be able to see my CCX courseware without manually enrolling.

I would also like to be able to use the staff/student switch in LMS to switch between staff and student views, similar to what course staff can do in regular courses.

Inaccurate courseware if CCX Coach enrolls instructor of master course

Tested on sandbox2o.mitx.mit.edu

This case is a bit odd. For some reason if the CCX coach happens to enroll the instructor of the master course in the CCX, the courseware is not accurate. The instructor can access the CCX from his dashboard as an individual course (as any other CCX student would). However the courseware is identical to that of the master course and not the specified schedule and courseware of the CCX.

The start and end dates do not reflect the selections the CCX coach made either.

screen shot 2015-08-03 at 4 07 25 pm

screen shot 2015-08-04 at 11 20 47 am

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.