Cale,
- Usage_key - the same as normal blocks have. I don't think usage_key includes block's parent, so it won't be affected by adding it to a tab vs vertical. Is there any caveat I'm missing? - OLX - if I do recall right XBlocks in Units are stored in "vertical", one unit per file. For a tab it makes sense to reuse the same approach; the only question is where to put that tab XML file. At a glance it should be located in "tabs", as StaticTab stores it's contents there. But it is derived from how HTML module works, so we don't have to replicate it. I don't have final answer on this, but "tabs" folder seems like a correct place. - There might be three approaches: - It doesn't - "student_view" is always rendered - this is slightly simpler to implement and has more flexibility, but might be limited. - Convention-based - we define a new "predefined" view (i.e. "course_tab_view") to be used for course tab. This view might be "abstract", or can just default to "student_view". - Configuration based - export some decorator for XBlock to mark "course_tab_view" explicitly. To me, it looks like convention-based approach with "student_view" fallback is the most efficient one, so if there are no other considerations I would try implementing it first (and structuring the rest of conversation with that assumption in mind). Regards, Eugeny @Opencraft <http://opencraft.com> On Tuesday, June 28, 2016 at 5:10:45 PM UTC+3, Calen Pennington wrote: > > Eugeny, > > 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. > > Questions I have about your proposed implementation: > > - what will the XBlock usage_key would be? > - where will the XBlock content (scope.content) would be stored in OLX? > - How does an XBlock define a view that's specific to the tab? > - For instance, I assume that the Discussion block would have a > different display in the tab than it would inline. > > -Cale > > > On Tue, Jun 28, 2016 at 9:41 AM, <eug...@opencraft.com <javascript:>> > wrote: > >> My current understanding is that XBlockTab will just provide a "place" >> where you can put any XBlock or component, so that it would be displayed in >> tab. >> >> Theoretically it would mean that any XBlock could be added there, and >> that XBlock would work exactly the same in tab or in unit. Practically - I >> don't know yet - there might be a need for an XBlock to implement some >> interface to be able to work in tab, and in that case only certain XBlocks >> will be available for tabs. But I would like to avoid that and have a truly >> generic solution. >> >> In two words: the suggested XBlockTab lives in edx-platform and only >> "hosts" XBlocks. >> >> Regards, >> Eugeny >> @Opencraft <http://opencraft.com> >> >> On Tuesday, June 28, 2016 at 4:30:00 PM UTC+3, Cristian Salamea wrote: >>> >>> >>> >>> On Tue, Jun 28, 2016 at 8:13 AM, Peter Pinch <pdp...@gmail.com> wrote: >>> >>>> 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. >>>> >>> >>> In fact question could be extended to: in future any xblock can add a >>> tab ? >>> >>>> >>>> I'd also want to make sure that there is some meaningful logging and >>>> error messaging to the user when a course is imported and the proper >>>> XBlockTab hasn't been installed. >>>> >>>> On Jun 28, 2016, at 9:06 AM, eug...@opencraft.com wrote: >>>> >>>> Hello world! >>>> >>>> *Background*: OEP is a new (suggested) format for proposing changes to >>>> Open edX platform. More details: >>>> https://github.com/edx/open-edx-proposals/blob/master/oeps/oep-0001.rst >>>> >>>> *Idea: *Allow XBlocks to be displayed in a course tab (like Progress, >>>> Discussion, etc.) >>>> >>>> *Motivation: * >>>> >>>> - In order to completely pull out discussions from edx-platform. >>>> discussion XModule is (almost) converted to an XBlock >>>> <https://github.com/edx/edx-platform/pull/12582>. The next step >>>> would be to replace course discussion tab with discussion XBlock-based >>>> solution. >>>> - This might be useful for building instructor tools (example of a >>>> tool that could benefit from this >>>> >>>> <https://github.com/open-craft/problem-builder/blob/master/problem_builder/instructor_tool.py>). >>>> >>>> This is related to other thread on mailing list >>>> <https://groups.google.com/forum/#!topic/edx-code/Zd2sKQaMhHI> - >>>> kind of alternative implementation. >>>> >>>> *Tentative implementation details: * >>>> >>>> *tl;dr*: XBlockTab (working name) will be similar to existing >>>> StaticTab (powers "Custom Page" feature) and use nested XBlocks concept to >>>> allow using any XBlock (component?) in a Tab. >>>> >>>> Overall, it would work like that: >>>> >>>> - "Pages" page in Studio will have "Add XBlock Page" button added; >>>> this button will cause XBlockTab to be added to a course >>>> - In studio XBlockTab will expose UI for adding XBlocks and (most >>>> likely) other components (problems, video, etc.), similar to one found >>>> in >>>> course Outline editor (Unit page). At a glance it looks like it could >>>> be >>>> exact same UI, but it is not 100% clear yet. >>>> - Components added to an XBlockTab will be persisted to the >>>> modulestore using the same mechanism to allow nested XBlocks. >>>> - In LMS, XBlockTab will render its children (nested) components >>>> sequentially - much like "Unit" (aka vertical module). >>>> >>>> >>>> I'm about writing an OEP this week, so feedback and ideas are very >>>> welcome. >>>> >>>> Regards, >>>> Eugeny >>>> @Opencraft <http://opencraft.com/> >>>> >>>> -- >>>> 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 >>>> >>>> <https://groups.google.com/d/msgid/edx-code/ad852782-b1e2-46ba-85bc-8d93db72048a%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> >>>> -- >>>> 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/CFAAC85C-CE8E-4A56-819C-F1610A0C730A%40gmail.com >>>> >>>> <https://groups.google.com/d/msgid/edx-code/CFAAC85C-CE8E-4A56-819C-F1610A0C730A%40gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> >>> >>> >>> -- >>> >>> >>> [image: Cristian Salamea on about.me] >>> >>> Cristian Salamea >>> about.me/ovnicraft >>> <http://about.me/ovnicraft> >>> >> -- >> 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/70e847c6-b42e-470f-8ea2-9ffba6d81e2f%40googlegroups.com >> >> <https://groups.google.com/d/msgid/edx-code/70e847c6-b42e-470f-8ea2-9ffba6d81e2f%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > > -- 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/4dd69f54-5ead-45ea-bf29-3b7ffce6be64%40googlegroups.com.