We have an example link that shows a report generated from otml data. But I don't want to post this link to this list because it has real student names in it.
I can document how the report works. The approach used still needs to be worked on, but it does work. It is being used in the CAPA project to get reports or real learner data. ------- A "view" link from the sds is used to launch a jnlp. The sailotrunk.otmlurl is set to a special report otml file: For example: http://continuum.concord.org/otrunk/examples/UDL/udl-friction-34-report.otml <http://saildataservice.concord.org/2/offering/2174/jnlp/8340/view?sailotrunk.otmlurl=http://continuum.concord.org/otrunk/examples/UDL/udl-friction-34-report.otml&sailotrunk.hidetree=false&jnlp_properties=otrunk.view.author%253Dtrue%2526otrunk.view.mode%253Dauthoring> This file includes the original activity otml file and a otml file generated by the DIY: <includes> <OTInclude href="udl-friction-34.otml"/> <OTInclude href="http://udldiy.concord.org/external_otrunk_activities/9/ot_learner_data.xml"/> </includes> The generated otml file defines a OTUserList object that contains references to the learner data files for all the users that have run that activity. So in this case it is all the users that have run "external_otrunk_activities/9" The OTUserList is referenced in the report otml by first assigning it to a local_id. The top level object of the original activity is also assigned a local_id: <idMap> <idMapping local_id="section_card_container" id="678b5190-0bcf-012a-b542-0017f2cc694e!/section-card-container"/> <idMapping local_id="user_list" id="7a9876a6-e64c-11dc-bee7-001b631eb2da!/user_list"/> </idMap> The report otml has an object and view for OTMultiUserRoot: <OTMultiUserRoot local_id="multi_user_root" userList="${user_list}"> <reportTemplate> <OTUDLReport local_id="report"> <sectionContainer> <object refid="${section_card_container}"/> </sectionContainer> </OTUDLReport> </reportTemplate> </OTMultiUserRoot> The OTMultiUserRootView loads in all the databases listed in the userList object. Then it displays the view for the reportTemplate object. In this case that is the OTUDLReportView. The OTUDLReportView makes the custom report for UDL activities. The otrunk apis that it uses to build the report are: // get the list of loaded in users OTUserListService userListService = (OTUserListService) getViewService(OTUserListService.class); Vector users = userListService.getUserList(); // get a user's version of a particular authored object OTObject userObject = otrunk.getUserRuntimeObject(authoredObject, user); So in the current OTUDLReportView it is figures out if a student has viewed a section of the unit (in udl the thing a student runs is a unit, which consists of sections). Then it displays a checkmark in a table if they have. You can see the full otml source by curling the url above and then curling its included otml files. You can see the source for the OTMultiUserRoot inside of the otrunk project. You can see the source for the OTUDLReportView inside of the otrunk-udl project. You can see another style of OTrunk report that in the otrunk-capa project: org.concord.otrunkcapa.OTCAPAReportTemplateView This one uses a script to generate the report. I'm not sure where some example scripts are, I would guess otrunk-examples. Scott --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "SAIL-Dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/SAIL-Dev?hl=en -~----------~----~----~----~------~----~------~--~---
