--
You received this message because you are subscribed to the Google Groups "General Open edX discussion" group.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/ad852782-b1e2-46ba-85bc-8d93db72048a%40googlegroups.com.
How would this affect course import and export?I believe unrecognized blocks are ignored on import, but that may be harder to do with tabs, since they are specified in policy.json.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/CFAAC85C-CE8E-4A56-819C-F1610A0C730A%40gmail.com.
-Cale
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/70e847c6-b42e-470f-8ea2-9ffba6d81e2f%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/4dd69f54-5ead-45ea-bf29-3b7ffce6be64%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/e68f5731-3dfd-43c6-a15f-a08babc0d51f%40googlegroups.com.
Andy Armstrong
edX | UI Architect | an...@edx.org
141 Portland Street, 9th floor
Cambridge, MA 02139
http://www.edx.orgI think a good place to start would be to enumerate the different use cases that this solution could help with.
In general, having a custom tab that the author can add blocks to would be very flexible, and much more powerful than the current static tab. In fact, it might be better to replace the static tab with your new tab, because it is straightforward for the author to add an HTML block to it, and then they can easily extend it by adding videos or any other content they might have. In some ways, it is as if they are adding a unit directly as a tab, rather than within a section of the course.
An important point to consider is that adding a discussion block to this custom tab wouldn't work by default, as it would render an inline discussion. The block would have to know that it was being rendered 'outside the course', or it would need an advanced setting, or there would need to be a different class of discussion block. The last two options seem to me that they would be confusing for the author.
IMO for a feature like discussions it would be ideal to register that it wants to automatically add a tab, rather than requiring the course author to explicitly add a new XBlock.
Another approach that we've talked about in the past around this same problem is that rather than having a specific tab type for housing an XBlock, we'd allow XBlocks to expose a course_view, which the XBlock could use to render any course-level content (perhaps configuration details, perhaps something like the Discussions tab, perhaps other uses). Those tabs could be rendered for any XBlock type that appeared in the course.
adding a discussion block to this custom tab wouldn't work by default, as it would render an inline discussion. The block would have to know that it was being rendered 'outside the course', or it would need an advanced setting, or there would need to be a different class of discussion block. The last two options seem to me that they would be confusing for the author.
course (CourseDescriptor with various fields including "tabs")
|
+ chapter
| |
| + sequential
| |
| + vertical
| |
| + html
| + problem
course (CourseDescriptor)
|
+ chapter
| |
| + sequential
| |
| + vertical
| |
| + html
| + problem
|
+ chapter ...
+ tabs
|
+ html (XModule/XBlock representing the "Info" tab)
+ discussion_forum (XBlock implementing the Forum)
+ vertical (Custom tab with custom title and potentially multiple child XBlocks)
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/ff1916be-7f37-4e5a-ab56-c39d89d661ba%40googlegroups.com.
I don't think it makes sense to add CAPA problems, drag and drop, etc. so those wouldn't be on the default list of blocks to add to a tab.
One option is having a "tabs" type XBlock (much like the "course" XModule or the "chapter" XModule), and every child of it would be a separate tab in the courseware.
course (CourseDescriptor)
|
+ chapter
| |
| + sequential
| |
| + vertical
| |
| + html
| + problem
|
+ chapter ...
+ course_tab
| |
| + html (Forum instructions, docs, etc.)
| + discussion_forum (XBlock implementing the Forum)
|
+ course_tab
|
+ html (XModule/XBlock representing the "Info" tab)
That makes sense, but only if we also implement course-scope fields at the same time.
I would love to hear more about course-scope fields.
what benefits course_view + course-scope fields have over XBlockTab + course_view?
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/b5b5952a-5899-492f-b676-c9a7743157a0%40googlegroups.com.
What I think would be much better would be if the LTI XBlock could just declare a course-scoped field called "lti_providers" which contains a list of LTI providers (name, URL, credentials). Then authors configure that once, and it gets applied to all LTI Consumer XBlocks in the course, with no duplication of data and no need to authors to enter things like the "URL" or "lti_id" every time they want to add another instance of an LTI tool in the course.
I think it would also be important to allow the default value of a normal usage-scope field to be inherited (default is the same for all blocks of that type in a course), but still overridable per usage. This would allow instructors to do things like say "All problems in this course should allow 5 attempts", but change that on a per-block basis as necessary. Currently, AFAIK, there is no way for instructors to change some setting like that for all blocks in a course.
I think that we can get much of the same effect in a simpler way by using the course scope for explicit default values stored under a different field name or names (e.g. a course scoped field named "defaults"). That way, we don't have to worry about weird inheritance interactions at all, or wondering where the value of a certain field really came from.
As a side note, one thing I want to be careful of in this discussion is the "Tab" naming convention.
--
You received this message because you are subscribed to the Google Groups "General Open edX discussion" group.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/CAO_oFPyeCRUCjL%2BjC3AcjUaD_sMR245TcDt%2Bjot0eDyBsTgy0w%40mail.gmail.com.
If an XBlock requires some configuration in "course_view", config data will be stored as course-scoped fields (new feature); UI to set them up will be shown in Studio on "Pages" UI (???). This will likely require secondary "studio_course_view" (similar to existing studio_view)
The only concern I have about this implementation is that jquery.xblock dependent solution won't be able to use such course_views, as there are no actual XBlock created - we'll have to adapt jquery.xblock and/or APIs that back it up on edx-platform side.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/633dbbae-4ffc-4fb2-a2d5-04fc4c07e627%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/5363559a-5780-419b-9b68-3a94c6f7c7a5%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/CAG2ZmnAMohtNiX-G9iN7YuMaWJJVt1d%2BDdvHFBaouhDLVSvuZw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/CAEyJbEa5tTT-pHj4xAbWxADid7i5iZm02LXqQ%3DJKupjnFu47vA%40mail.gmail.com.