This is a really interesting discussion, and one that relates to something
I've been thinking about for awhile (but speaks to, I'm afraid, a bigger
project):  it'd be convenient if Studio had a "read-only" mode, and a
corresponding "read-only" level of access.  We often have cases where a TA
from one course could benefit from seeing what's behind how something in
another course was created, but we need to give them full edit-access to
the course in order to give them read-access to Studio for the course, and
then take on the risk that they might accidentally change something in
Studio.

It sounds like some of Ike's course teams could benefit from this type of
mode, too, since they may not realize that any changes they make from
Studio will be overwritten by the next import.  If such a mode were
available, then a "view this unit in Studio" link would be helpful even for
some XML-backed courses, since as Ike says, some of their courses are
imported into Studio, so having an easy way to get at "why does this unit
look the way it does?" could be convenient, even if that's not where edits
happen.

I wonder whether enabling a read-only mode could be a project the Studio
team may want to put on their backlog someday?  In the meantime, we could
enable this button by default, but you could imagine an "advanced setting"
field (or policy.json key/value) that would allow particular courses to
choose to not display it.


On Thu, Mar 20, 2014 at 6:21 AM, ichuang <notifications@github.com> wrote:

> In lms/djangoapps/courseware/courses.py:
>
> > +
> > +def get_cms_block_link(block, page):
> > +    """
> > +    Returns a link to block_index for editing the course in cms,
> > +    assuming that the block is actually cms-backed.
> > +    """
> > +    locator = loc_mapper().translate_location(
> > +        block.location.course_id, block.location, False, True
> > +    )
> > +    return "//" + settings.CMS_BASE + locator.url_reverse(page, '')
> > +
> > +def get_studio_url(course_id, page):
> > +    """
> > +    Get the Studio URL of the page that is passed in.
> > +    """
> > +    is_studio_course = (modulestore().get_modulestore_type(course_id) == MONGO_MODULESTORE_TYPE)
>
> Appreciate it, @shnayder <https://github.com/shnayder>. Our course teams
> are large, and involve a wide range of users, including TAs and outside
> contributors, with varying levels of expertise and sophistication. We also
> have computer-savvy faculty team-teaching with faculty who eschew such
> mundane things. In addition MIT has many ongoing collaborations with
> outside partners authoring courses jointly. These are very much social
> coding efforts, and it's not easy to keep all the authors on one page,
> particularly with fragile links. One of our authors got very frustrated and
> unhappy when carefully authored Studio content was irretrievably destroyed
> by another author working on the same unit, who simply deleted it in one
> click. The lack of un-delete and the lack of visibility into what other
> authors are doing makes Studio authoring untenable for all but our simplest
> single-author course teams. We are finding this to be the case with our
> partners as well.
> ... <#144dfa791c7957fd_>
> On Thu, Mar 20, 2014 at 8:49 AM, Victor Shnayder <notifications@github.com>wrote:
> In lms/djangoapps/courseware/courses.py: > + > +def
> get_cms_block_link(block, page): > + """ > + Returns a link to block_index
> for editing the course in cms, > + assuming that the block is actually
> cms-backed. > + """ > + locator = loc_mapper().translate_location( > +
> block.location.course_id, block.location, False, True > + ) > + return "//"
> + settings.CMS_BASE + locator.url_reverse(page, '') > + > +def
> get_studio_url(course_id, page): > + """ > + Get the Studio URL of the page
> that is passed in. > + """ > + is_studio_course =
> (modulestore().get_modulestore_type(course_id) == MONGO_MODULESTORE_TYPE)
> @ichuang <https://github.com/ichuang> <https://github.com/ichuang> I was
> figuring that if the course teams were creating content in xml/latex/etc
> and importing, they would understand that editing in Studio wouldn't work.
> Maybe I'm being overly optimistic. I'm going to discuss options with some
> folks here and get back to you. -- Reply to this email directly or view it
> on GitHub<https://github.com/edx/edx-platform/pull/2552/files#r10792878>
> .
>
> --
> Reply to this email directly or view it on GitHub<https://github.com/edx/edx-platform/pull/2552/files#r10794007>
> .
>