Forum .LRN Q&A: Importing, Managing and Delivering Courses Using IMS Specifications out for Testing!

G'day everyone,

For the past few weeks I've been working on LORS and improving its functionality to solve some typical-everyday problems:

Say you are a professor that has to teach a course and have tons of materials about the subject but really haven't have the time to order it all and determine a sequence in which the learning materials should be given to the students. In addition, you've been told that all these new Learning Management Systems are a real pain to deal with and that to structure and sequence content on them is just to painful/annoying to bare with. Moreover, the whole hype about learning objects is confusing you more than anything else.

Or, say that you are a manager that has implemented a new system/process in your company and need the employees to take a course about the implementation of the system/process.

In these two cases, you really don't know where to start... 😊 Therefore, I went a bit outside the scope of .LRN/OpenACS and found a couple of tools that can easily help the exhausted lecturer as well as the busy manager.

As you might remember LORS is sum of libraries that incoporate e-Learning specifications to .LRN/OpenACS with the aim exchangability and reusability. LORS as such doesn't have a user interface, hence I created a LORS Management package for .LRN that allows you to import, manage and deliver content to your class/community fairly easily (even without you knowing that you are messing around with learning objects).

For such thing, I put together a kinda tutorial so these poor lecturers/managers can easily structure their existing learning materials. The creation of these structures and sequence of materials (that can as well be learning objects) are done using opensource Reload Editor (http://www.reload.ac.uk/). This tutorial document shows you have to easily gather your existing material in a way that makes sense for you and create some basic metadata so it can be findable and reusable later. Following I think about 6 or 7 steps you can have a fairly OK idea on how to put together an IMS Content Package that includes IMS Metadata and SCORM without even realizing you have created such thing... you see the beauty is not telling them what they are doing 😉

Once the course is packaged, a lecturer/manager can upload it to .LRN -using the LORS Management package, and have their students taking it. Since the package also contains a hierarquical organization of the content, I use this hierarchy to outline a pseudo-delivery runtime environment. So students can easily browse around the organization of your course very easily, but at the same time following the logical sequence you created as structure. Moreover, since IMS metadata "tags" these contents, we can easily find them as isolated 'pieces of knowledge'... or view and add further metadata if required.

In addition, since LORS Management makes use of file-storages, for all file management stuff, it inherits quite cool features just as versioning and recently added WebDav support (thank you DaveB)! Also, although I haven't personally tried it though, you could create curriculums that include thiscontent. [Ola, I might need your help here].

Summarizing, LORS Mgt allows you to:

  1. Import Course Content (using IMS Content Packaging, Medatada and/or SCORM).
  2. Manage Course from a class in .LRN
  3. Manage Course Structure
  4. View/Edit IMS Metadata Online
  5. Deliver a Course to class/community members
  6. Export Course Content to IMS CP Package.

It is still a beta version as I'm still fixing things here and there. But here you can have a look at it:

http://mlweg.pc.ee.usyd.edu.au:8081/

professor access

  user: mailto:admin@user.com
  pass: admin

student access

  user: mailto:random@striker.com
  pass: random

Once you are inside, if you logged in as a student, you will have the LORS Mgt portlet with the links to course. If you logged in as a professor, have a look at the admin page in the EBUS3001 class, and click on  Manage LORS under the LORS Management Administration Applet.

If you get lost, please see the documentation:

http://mlweg.pc.ee.usyd.edu.au:8081/lorsm/doc/

If you need packages to upload/play with, I would strongly recomend you to have a look at the tutorial in the documentation and just create your own... if you lack creativity, you can have a look here (http://mlweg.pc.ee.usyd.edu.au:8080/files/index?folder_id=4014) since there are some I've been using for testing.

Any suggestions, comments and bugs are more than welcome!

Thanks to Matthias Melcher and Jack Ramsey for their ideas and invaluable suggestions. Also many thanks to Rafa, Al, Don, Rocael, Caroline, Carl, Malte, Denis, Venky et al.

Ernie

Ernie...I am really impressed. You are the best.

Is there any way I can help?

Greetings,
Nima

Most Excellent!  I need this! I can't wait to get my hands on this and set it up!  Good work!  Bruce
Awesome! I can't wait to try it out.
This really rocks, Ernie.  Are you or Rafa coming to Heidelberg?  It would be great to have a demo of this as part of our .LRN conference!
Hi Nima,

<blockquote> Is there any way I can help?
</blockquote>

YES, you can use the tutorial to create some courses and upload them into it. Maybe get some actual users of the system to do it, as they will be the end users of it.

If they really don't know how to structure their content, maybe a suggestion could be to use their syllabus as a guideline.

For example, this is a course that I help teach here at Sydney Uni:

http://weg.ee.usyd.edu.au/courses/ebus3001/

This is just the schedule of the class as it is all broken down in weeks. However, it is a good start for a lecture, since he/she already has done this. So using Reload, you can easily create that structure and import it straight into .LRN... Here's the actual package I created following this class schedule:

http://mlweg.pc.ee.usyd.edu.au:8080/files/view/ims_packages/ebus3001.zip

and this is how it looks like on .LRN (you'll have to log in for this one):

http://mlweg.pc.ee.usyd.edu.au:8081/dotlrn/classes/electricalandinformationengineering/ebus3001

So I hope that helps

Also reviewing and suggesting some functionality will also help.

Thanks,

Ernie

Don,

Rafa is going to Heidelberg. If he gets some time, he'll do a presentation on this.

Thanks,

Ernie

Nice... very, very nice.

I just uploaded an entire course on "Structured Course Development, Learning Objects, and E-Learning Standards content Packaging"... it took 1 minute to find on the web, and 2 minutes to upload the zip file! Log into Ernie's test server and check it out!

Nice... very, very nice!

Ernie,

I just uploaded a course (Word docs) but I am unable to view any of the files/objects, either through the LORS interface or through the Admin page.

Message:
Content Item Not Found
The requested item is not available for viewing. The item is either not available on this server or it is not in a publishable state Unpublished items can be viewed via the CMS interface if the CMS package is installed.

DeeDee

Ernie has implemented an additional really cool thing that allows uploads from WebCT and Blackboard courses. These are more than just IMS content packaging because you can upload activities and students list, etc.
I believe he is writing documentation for that
DeeDee, thank you for reporting the first bug 😉

I have fixed that now, and it is working fine.

The problem here seems to be directories that have " " (whitespaces). Although the specifications recommend not to use spaces, we should contemplate for it since I expect most teachers use Windows systems where whitespaces are used more frequently.

Once again, thank you for helping improving this...

Ernie

I am not able to browse the content of an uploaded course in file-storage as admin. Is this a intentional or bug #2?
Carl,

This is not quite a bug.

The reason for this is that I use file-storage 5.1 instead of the version you get when you download .LRN 2.0.3. I wanted to use file-storage 5.1 as it has changed quite a bit by DaveB and I thought it would be more appropiate to do that.

However, you can very easily work around this and access the fs folder from the admin page: in the Manage LORS screen, you'll see the list of all course available, and column with links called "Course Structure". If you click there, it will give you all info about the course as well as a link (Storage Folder) straight to the file-storage folder.

Once .LRN adopts file-storage 5.1, this will not longer be a problem.

Thanks,

Ernie

Ernie,

Thanks. This is truly wonderful! I just uploaded one of the Photoshop course examples of the ADL SCORM 2004 RTE. It works perfectly, except for some advanced functionality in the 'Exam' component. There, it gave the following Javascript Application error messages:

"Unable to find API adapter"

"Unable to locate the LMS's API Implementation. SetValue was not successful."

Probably, this is not a bug, but a functionality further down the roadmap.

Thanks, once again, for a remarkable contribution!

Suresh,

Yes, the "Unable to find API adapter" message that you see is because LORS Mgt does not include a SCORM Run-time environment (yet). However, all the SCORM information to deliver and mange the course *is* already in the system.

The "delivery environment" for the IMS packages that LORS Mgt supports now, it is based on the structure given by the package (see the documentation as it explains how it is done). However, SCORM does it in a similar fashion as well, hence adapting it to SCORM wouldn't be as hard.

Anyway, the error message is because the page you are loading is trying to find the API adapter to communicate with the LMS, and since it's not being provided, you get the error message.

Jack Ramsey from Intellium is rewritting his Runtime environment so we can use it to deliver SCORM courses. The reason why he's taking his time is because he has much more important things to do now... like take care of his new baby-boy born this week! 😉 [Congrats Chip!]

As soon as we have his work finished, we'll added up to LORS Mgt.

Thank you,

Ernie

Collapse
Posted by Ernie Ghiglione on
Everyone,

Thanks to Jeff Davis, I have added all LORS Management packages to CVS.

You will need the four packages to install it in .LRN. In addition, make sure that you have file-storage version *5.1*, as otherwise you'll get a bunch of errors.

LORS

    cvs -z3 -d :pserver:mailto:anonymous@openacs.org:/cvsroot co openacs-4/packages/lors

LORS Management

    cvs -z3 -d :pserver:mailto:anonymous@openacs.org:/cvsroot co openacs-4/packages/lorsm

LORS Management Portlet

    cvs -z3 -d :pserver:mailto:anonymous@openacs.org:/cvsroot \
    co openacs-4/packages/lorsm-portlet

LORS Management Applet

    cvs -z3 -d :pserver:mailto:anonymous@openacs.org:/cvsroot \
    co openacs-4/packages/dotlrn-lorsm

Once you got the packages, from the package management page, install the LORS Management Applet (dotlrn-lorsm) and that should take care of installing all the dependent packages in their correspondent places.

Reinitiate your site, go to you class admin page, add the Applet, and voila.. it's all there 😉

Hopefully, very shortly we will have a bug tracker set up to report bugs and potential features.

Thanks,

Ernie

Collapse
Posted by Orzenil Silva Junior on
Olá Ernie,

Great work! I was very anxious for this news.

I followed your instructions here and update file-storage to 5.1 on my 2.0.3 dotlrn installation. All packages for LORS management installs ok. No problem, no pain.

But I fall into trouble when I activated applet for a dotlrn class. I had the following error:
------------

You have found a bug in our code.

Please notify the webmaster and include the following text. Thank You.

*** portal::evaluate_element callback Error! ***

Database operation "select" failed (exception NSDB, "Query was not a statement returning rows.")

ERROR:  No such attribute cp.course_name

SQL:
    select
          cp.man_id,
          cp.course_name,
          cp.identifier,
          cp.version,
    text '[view]' as course_structure,
          case
              when hasmetadata = 't' then 'Yes'
              else 'No'
          end as hasmetadata,
          case
              when isscorm = 't' then 'Yes'
              else 'No'
          end as isscorm,
          cp.fs_package_id,
          cp.folder_id,
      acs.creation_user,
      acs.creation_date,
      acs.context_id
    from
          ims_cp_manifests cp, acs_objects acs
    where
          cp.man_id = acs.object_id
    and
          acs.context_id = '2472'

-------

I see at database schema and ims_cp_manifest table is there but there is not a course_name atribute in it.

Thanks

Orzenil

Collapse
Posted by Ernie Ghiglione on
Bom dia Orzenil,

Como vai?

the ims_cp_manifest table must have a course_name column. Can you do the following for me?

$ psql your-database-name

your-database-name# \d ims_cp_manifests

that should give you a list of all the columns on this table. If for some reason it doesn't look like this:
          Table "public.ims_cp_manifests"
    Column    |          Type          | Modifiers
---------------+-------------------------+-----------
man_id        | integer                | not null
course_name  | character varying(1000) |
identifier    | character varying(1000) |
version      | character varying(100)  |
orgs_default  | character varying(100)  |
hasmetadata  | boolean                |
parent_man_id | integer                |
isscorm      | boolean                |
folder_id    | integer                |
fs_package_id | integer                |

Then, I think we might have had a problem while installing. What version of postgres are you using?

Thanks,

Ernie

Ernie...one question: How did you enable lors to get integrated with dotlrn? Can you write a short "howto"? I tried to follow one of the existing packages (forum, ...) but was not able to get it run in dotlrn.
Olá para todos!

Congratulations for your work Ernie...

I try the follow steps(in postgresql 7.3.4):

-installation of dotlrn 2.0.3;
-create a class;
-upgrade file-storage to 5.1.0;
-installation of packages: lors, lorsm, lorsm-portlet, dotlrn-lorsm;

when i tryed to upload a zipped file (photoshop course),i received this error:

wrong # args: should be "lsearch ?mode? list pattern"
    while executing
"lsearch -all -exact $i_identref [lindex $resource 1"
    ("foreach" body line 3)
    invoked from within
"foreach resource $res_list {

    set find_item_id [lsearch -all -exact $i_identref [lindex $resource 1]]

    if {$find_item_id != -1} {

        foreach item..."
    ("uplevel" body line 328)
    invoked from within
"uplevel 1 $transaction_code "
    (procedure "db_transaction" line 1)
    invoked from within
"db_transaction {

    ## adds folder to the CR
    set parent_id $folder_id
    set fs_dir $tmp_dir

    # checks for write permission on the parent f..."
    ("uplevel" body line 35)
    invoked from within
"uplevel {
          ad_page_contract {
    Upload an IMS Content Package 3

    Scope:

    Add files to the CR
    Process imsmanifest.xml

    @author ..."
    (procedure "code::tcl::/web/service0/packages/lorsm/www/course-add-3" line 2)
    invoked from within
"code::tcl::$__adp_stub"
    invoked from within
"if { [file exists $__adp_stub.tcl] } {

      # ensure that data source preparation procedure exists and is up-to-date
      adp_init tcl $__adp_stub
..."
    ("uplevel" body line 3)
    invoked from within
"uplevel {

    if { [file exists $__adp_stub.tcl] } {

      # ensure that data source preparation procedure exists and is up-to-date
      adp_init t..."
    (procedure "adp_prepare" line 2)
    invoked from within
"adp_prepare "
    (procedure "template::adp_parse" line 30)
    invoked from within
"template::adp_parse [file root [ad_conn file]] {}"
    (procedure "adp_parse_ad_conn_file" line 7)
    invoked from within
"$handler"
    ("uplevel" body line 2)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
                $handler
            } ad_script_abort val {
                # do nothing
            }"
    invoked from within
"rp_serve_concrete_file [ad_conn file]"
    (procedure "rp_serve_abstract_file" line 60)
    invoked from within
"rp_serve_abstract_file "$root/$path""
    ("uplevel" body line 2)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
    rp_serve_abstract_file "$root/$path"
    set tcl_url2file([ad_conn url]) [ad_conn file]
    set tcl_url2path_info([ad_conn url]) [ad_conn path_inf..."

and this is the list of columns:

Table "public.ims_cp_manifests"
    Column    |          Type          | Modifiers
---------------+-------------------------+-----------
man_id        | integer                | not null
course_name  | character varying(1000) |
identifier    | character varying(1000) |
version      | character varying(100)  |
orgs_default  | character varying(100)  |
hasmetadata  | boolean                |
parent_man_id | integer                |
isscorm      | boolean                |
folder_id    | integer                |
fs_package_id | integer                |
Indexes: ims_cp_man_id_pk primary key btree (man_id)
Foreign Key constraints: ims_cp_man_id_fk FOREIGN KEY (man_id) REFERENCES acs_objects(object_id) ON UPDATE NO ACTION ON DELETE CASCADE

TIA
[ ]'s

Nima,

I just added a page to the documentation on how to install LORS Management to .LRN and how to add it to a course. The documentation comes with the package.

I hope that helps, let me know otherwise.

Thanks,

Ernie

Hi Felipe,

I think the reason you are getting this error is because you are using TCL 8.3. The lsearch command in 8.3 doesn't support some of the -all flag (http://www.tcl.tk/man/tcl8.3/TclCmd/lsearch.htm).

The part that in which the code is breaking is when is trying to find the correspondent resource and match it to item's identifierref. A resource can be linked (or referenced) to one of many items.

If you install TCL 8.4 (as mentioned here in the installation instructions for AOLserver, https://openacs.org/doc/openacs-5-0-0/aolserver4.html) it should work just fine. Otherwise, you can modify the code to get all the items that a single resource is referenced to... it shouldn't be hard, but it will take some time.

It does the same for files as well, so upgrading to TCL 8.4 might be the best option.

Thanks,

Ernie

i move to aolserver4 and it works

Thanks Ernie...

Ernie...how easy is it to upload a new version of an existing course in dotlrn?

In my opinion no new versions should be created but the old one should be deleted completely and replaced by the new uploaded course.

What do you think?

Hi Nima,

<blockquote> Ernie...how easy is it to upload a new version of an
existing course in dotlrn?
</blockquote>

Very easy, just upload the new file, change the name of the directory to add it to, and it's done 😉

Since LORS re-uses file-storage's functionality, and the fs uses the CR, then you get all the perks of file-storage and CR... in this case: versioning. So say you uploaded a course but then you changed your material, you can just go to the file-storage folder where it was uploaded and upload the new modify file (creating a new revision of the file). After that, students taking the course will only see the latest version of the modified file (although the older version is still there).

So if what you need to do is just modifications of the course content, you can use file-storage to add new revisions of your files.

If you have developed a new version of a course, I think it makes sense to add it as you add a new course.

Future work could include versioning of courses, but I'm thinking whether that is actually necessary or practically feasible. Would some require to have several versions of the same course?  Anyone wants to contribute here?

BTW, I'll try to see if I can get a delete course option in the next couple of weeks.

Thanks,

Ernie

I don't think that versioning of courses is needed because usually a course evolve but are unique.

I can only think of the case where a course content is created differently due to different audience but this case could also be solved by simply uploading the second one to a new folder.

Regarding uploading changed files right in file storage would create the inconvenience when a course is automatically generated by an editor. So the author has to exract the changed file an upload instead of simply uploading the new zip. Think of the case where the author even doesn't know which file is directly affected because he is using a course editor that generates a content dynamically.

So Nima for what you are saying, I assume that a delete option and then uploading the new changed course would do, right?

Anyone else have other opinions, suggestions?

Thanks,

Ernie

Felipe,

Just for the record, you can use LORS also with AOLServer 3.x... you just need TCL 8.4 instead of 8.3. As a matter of fact, I believe I use it with AOLServer 3.5.6 (I think).

Ernie

The advantage of versioning courses is that if you have metadata attached to course elements that you have added, that metadata won't be lost if a revised version is uploaded. If you simply delete the course, the comments, ratings, viewing history, etc for that course will be lost.

From that standpoint I think versioning is quite valuable and something I would certainly prefer to see.

Not to mention that I think it would be faster to version than to delete and re-upload.

Collapse
Posted by Ernie Ghiglione on
Hello there,

Just to let you know that LORS has a bug tracker on openacs.org. If you find any problems or bugs with LORS or any other of its components, please post a bug there.

Thank you,

Ernie

Collapse
Posted by Matthias Melcher on
I have problems finding LORS on the public test servers http://test.openacs.org/ . Before reporting bugs they should be reproduced there, right?
On that occasion: Will it be available on the volunteer's translation server to help localize it?
Collapse
Posted by Ernie Ghiglione on
Hi Matthias,

I have spoken to Rocael already as he's going to take over the .LRN administration of the test servers to install LORS on them. He's in meetings in the UK at the moment, but going back to Guatemala next week. As soon as he's back home he promise he'll install it there and we can start working in the translation bits.

Thank you,

Ernie

Ernie, the test server is not running.
Greetings,
Nima
Nima,

Yes, the server was down until last Friday. The hard disk on that server had a failure a week and a half ago. Fortunately, we got a replacement on Thursday, so I've been setting it up and now it is ready to go.

In addition, I have put on that server LORSm version 0.2, which I'll announce in a following posting.

You can login using the same information as before:

http://mlweg.pc.ee.usyd.edu.au:8081/

professor access

  user: mailto:admin@user.com
  pass: admin

student access

  user: mailto:random@striker.com
  pass: random

Once again, feel free to use it/test it and upload any type of content packages that you have.

And sorry about the inconvenience,

Ernie

Collapse
Posted by Ernie Ghiglione on
Hi there,

For a few weeks now some small number of people have accessed to LORSm version 0.2. It was suppose to be open for everyone to test, but a hardware failure frustrated this idea until now.

On LORSm version 0.2, I added four new features:

1.- The ability to search and find a learning object in the repository (using openfts as a search engine).

2.- Disable and enable courses (so professor can turn on/off courses as they pleased).

3.- Tracking student progress and the time they spend on the course.

4.- Modifying metadata by uploading IMS MD compliant XML files (so you can easily edit your metadata with Reload and then just upload the XML file).

These new features are an addition to the improved features we have in the previous version:

    * Import Course Content (IMS CP & SCORM).
    * Course Management
    * Course Structure
    * Metadata Viewer
    * Course Delivery
    * Export Course Content

To have a look:

http://mlweg.pc.ee.usyd.edu.au:8081/

professor access

  user: mailto:admin@user.com
  pass: admin

student access

  user: mailto:random@striker.com
  pass: random

Please feel free to play around with it, upload any type of content package that you might have created or found. There's a bit of documentation at http://mlweg.pc.ee.usyd.edu.au:8081/lorsm/doc/

In just a few days I'll check this version into CVS for people to use. First I want to get most critical bugs out of the way. Once that is done, with the help of Rocael, we'll put LORS on the .LRN testing site.

Comments, suggestions, ideas, bugs are welcome.

Thanks,

Ernie

Collapse
Posted by Deirdre Kane on
Ernie,

Is it possible to delete/remove content packages?

DeeDee

Collapse
Posted by Ernie Ghiglione on
Hi DeeDee,

<blockquote> Is it possible to delete/remove content packages?
</blockquote>

For this version you get a chance to "disable" the course, but can't delete it.

One of my concerns about deleting the actual content for a course is dependencies.

Say another professor is using a part of the course for a different subject... then we need to figure out which part have to be removed and which ones should remain. It's not really difficult, but it just takes time, then the permission system kicks in and it makes it a bit more interesting.

I'll see how we can go about removing courses completely from the repository without causing major damage for the next version (0.3).

Once again, thanks for taking the time to suggest functionalities.

Ernie

Collapse
Posted by Malte Sussdorff on
We should not delete the pages outright, but mark them deleted. If someone else is reusing the content, he should get a notification that the content has been deleted by the original author and a one click link to copy the deleted item to a new location, with him as the author.

Actually, this is something we should do in general within the CR, what do you think?

Ciao Ernie,

How do you reach the admin UI for LORSm?

I logged in as mailto:admin@user.com but I can't seem to do much admin oriented stuff.

Thanks!

Collapse
Posted by Ernie Ghiglione on
<blockquote> We should not delete the pages outright, but mark them deleted.
</blockquote>

Yeah, I guess we learned that when Milan from AIESEC deleted the entire certification test site... hhehehee.. oh Malte, the good old days 😉

Back again, yes, they idea is not to delete it back mark it as gone.

<blockquote> If someone else is reusing the content, he should get a notification
that the content has been deleted by the original author and a one
click link to copy the deleted item to a new location, with him as
the author.
</blockquote>

I thought about the notification for deletion and also for new versions of content available.

However, the tricky part will come when the part of the course is being used by several other lecturers (not just one).

Although, in the past few days, I've been trying to think on a different approach to this altogether. An approach that will make much more sense for a learning object repository:

What might works is a paradigm where content is uploaded not necessarily into a .LRN class, but to the repository directly. Then once the course is there, it can be "used" or linked by the owner in any of the classes that HE/SHE is part of. Additionally, the content owner should be the one who determines to what extend he/she wants his/her courses/learning objects/content to be shared with others. For instance as a content owner I could say 'Well, I'm just going to share this with people in my department'. Or if copyright issues are managed tightly in the University/company, then the content owner can say 'No, I just want this to stay within the limits of this class'. Using this approach we will be accommodating for both: repository centric content and class centric content.

So if we pursue this approach, then a lecturer that has upload content for people to reuse won't really delete the actual content, but will turn down permissions for other people to use it. A UI could be done so the content creator can see who's using the content that he's providing and in what context they are using it.

I think this will be more "open" (again, for lack of a better word) approach to content within a learning object repository.

Luckily, I think I'm on a stage where I can easily modify what I have so far to accommodate for this new approach.

I'd really like to hear what other people would have to say about this idea and whether it is the right way to go.

Ernie

<blockquote> How do you reach the admin UI for LORSm?
</blockquote>

Once you are in, you can go to the class Control Panel and there's a big "Manage LORSm" link there.

You can also find the documentatio here (although the latest features haven't been documented yet, but you'll figure them out):

http://mlweg.pc.ee.usyd.edu.au:8081/lorsm/doc/

Ernie

I went here: http://mlweg.pc.ee.usyd.edu.au:8081/dotlrn/classes/electricalandinformationengineering/ebus3001/ebus3001/one-community?page_num=0

as admin.

I must be blind, because I can't see a link to the control panel or to manage LORSm.

Collapse
Posted by Malte Sussdorff on
Using permissions to delete items: Go for it. I've always said people are not making good use of the permission system in the first place :). You can use permissions also for visibility (see my post on the ims_cp_items table). Furthermore, you could automatically notify all people that have *write* permission on a certain object.
Ola,

I just logged in as mailto:admin@user.com, pass admin and i can see the control panel for the class the link goes to.

DeeDee

<blockquote> I must be blind, because I can't see a link to the control
panel or to manage LORSm.
</blockquote>

Ola, you are not going blind... no worries. Accidentaly, while doing some other testing, I downgraded mailto:admin@user.com to student. Therefore you couldn't really see the Control Panel.

As DeeDee pointed out, it's fixed now.

Sorry about that mate,

Ernie

Ah, I can see it now. It's looking good, mate!

Thanks.

Hi Ernie,

I am testing LORS with our course editor. You can see a working example here:

http://mlweg.pc.ee.usyd.edu.au:8081/dotlrn/classes/electricalandinformationengineering/ebus3001/ebus3001/lorsm/delivery/?man%5fid=3606

The editor requires no html knowledge at all. The user is still able to enter html tags though. All pages are rendered using templates and styles. Right now we support
only one style. But we will add a print style and 1-2 other
styles the user can select from. Optionally the user can
customize the css file and the templates.

At present we support html and SCORM 1.2. Until summer we
will also try to support Word, Docbook, PDF, and flash. I will try to start an undergraduate project for that purpose. Is the WEG interested in that?

We have already started implementing SCORM 1.3 SN. It will get finished in December though.

We expect our quizz engine to finish wihtin the next two weeks. It is an applet that interacts beween user and LMS and generates dynamic content depending on user entry. This
way we can serve user specific pages. The quizz engine will
pass the user entry to the LMS via SCORM RTE.

By-the-way, the editor is written in Java. Right now we are busy to port it to Eclipse. Can't tell when this part is finished. It showed are pretty difficult to use the persistence managers of Eclipse. But we are still working on that.

I will send you a beta version of the Editor as soon as we have included our quizz engine and I have uploaded a fully working course to your test server.

Greetings,
Nima

P.S.: I looked at the tracking info you have implemented. Will it be possible to see tracking info on page level?

Quickly our milestones with the editor:

End of June 2004 - First beta release incl. the quizz engine
End of Summer - Port to Eclipse -> CVS, WebDAV support
December - Scorm 1.3 SN support

For Word, PDF, Docbook and Flash I can't tell. I have to implement a generic templating engine first. Also we need to setup a undergraduate project for that.

Nima,

It is really cool to hear of what you are doing.  😊

<blockquote> P.S.: I looked at the tracking info you have implemented. Will it be possible
to see tracking info on page level?
</blockquote>

Yes. I'll work on it. It should be available on the following version.

Ernie

Ernie,

did you take a look at OpenCore from Intellum. It is based on OpenACS as well and id also Open Source. Jack Ramsey announced v1.0.2a here.

Greetings,
Nima
Yes, Jack and I have been talking about OpenCore. The idea we had some months back is "merge" to certain degree both packages (OpenCore + LORSm). OpenCore provides a great delivery and tracking environment for SCORM, while LORSm provides the back end IMS specs and respository. See this posting for further details:

https://openacs.org/forums/message-view?message_id=168874

Although I haven't checked the latest version yet, I'll have a look and talk to Jack about how we can go about the integration.

Ernie

Hi Ernie,

the new contacts package of Matthew uses Organisations in its data model as well. Any chance to fix this?

Here the bug report:

https://openacs.org/bugtracker/openacs/bug?bug%5fnumber=2074

And more info:

https://openacs.org/forums/message-view?message_id=198281

Since both packages are required in dotLRN this is an important issue, no?

Greetings,

Nima

Nima,

Yes, some time back Jeff Davis mentioned to me. I haven't update CVS with the new version of LORS (which you might want to check out as it is really neat at the Concord site -Caroline posted the message today).

In my new update, I'll make sure that I modify the conflict so it all goes alright. No worries.

Thanks,

Ernie

When will your latest version of lors be available?
Nima,

By the 31st of August I *must* submit my postgrad thesis... so most likely, the day after. 😊

Thanks,

Ernie

Hi,

I have
- File-Storage 5.1.0a5
- LORS 0.4d
- Kernel  5.2.0d7
- CR  5.2.0d8
installed and uploaded a scorm 1.2 course successfully. Now when I open the course I have two problems:

1. Any page that I try to display I get the following Error:

invalid command name "fs::item_editable_p"
    while executing
"fs::item_editable_p -item_id $content(item_id)"
    invoked from within
"if { [info exists content(item_id)] } {
    set write_p [fs::item_editable_p -item_id $content(item_id)]
} else {
    # No content to edit
    set wri..."
    ("uplevel" body line 39)
    invoked from within
"uplevel {

How do I fix this problem?

2. Since I need to load the SCORM Runtime Wrappers for each page I have to get rid of the fact that each html page is served inside the master template of dotlrn. the pages should be displayed alone. So to allow navigation we either need three frames (navigation, next/prev and content itself) or the navigation buttons have to get included also on the left frame where navigation is.

Greetings,
Nima

Nima, I just fixed the master template error:
copy the new lorsm/templates/lorsm-default.adp to your ../serverdir/templates/

For the navigation arrows, yes, I agree, it should be an small square in the top left frame and exit should go at the end of that same frame. Now navigation is just a pain (Galileo work on that in none do it before, we'll start big deployment of lors on january 05).

This is really tough.

I upgraded fs so that the proc fs::item_editable_p is available. I copied the lorsm/templates/lorsm-default.adp to serverroot/templates and removed the <master> tag in the template.

But now the complete course is messed up due to path problems. LORSM doesn't respect any path information at all. The course is served from a lorsm/ folder so all my graphics, css, java applet .. are not found since the correspondings folders don't exist.

The Scorm Sample RTE and the Reload SCORM Player worked well.

Any idea? Do we have to use a vuh file? We definetly need to fix that. But how?

Greetings,
Nima

Hi Nima,

That is rather odd as LORSm as far as I know is very careful not to mess up folders and modify paths as that causes -as you are experiencing- broken links and all.

Would you be able to make your package available for us to have a closer look?

Thanks,

Ernie

Hi Ernie,

Sure. You can find the sample SCORM 1.2 package I created here: http://dotlrn.uni-mannheim.de/scorm.zip

The package contains the following folder structure:
imsmanifest.xml
7 html-files
- css
- application
- admonitions

As I said. I changed the lorsm-default.adp template serve the content as is without wrapping anything around it.

Greetings,
Nima

Hi Nima,

I just realized that you weren't using LORS 0.5d (HEAD). That one does fix the issues with CSS and all that (https://openacs.org/bugtracker/openacs/bug?filter%2estatus=resolved&bug%5fnumber=2126).

You can check out of the latest or just replace the lorsm-default.* templates from the latest version.

Thanks,

Ernie

Hi Ernie,

just replaced them from files on HEAD but it is still not working. The version numbers I get from CVS form the template files are 1.2, right?

Any idea?

Greetings,
Nima