268 Course Objects feature always 2010-07-14 16:16 2010-08-30 13:30 henry henry normal assigned none none 0.5.2 open 0 the default behavior when creating a course should be to add that course to the current community Currently when you create a course in a community you have to explicitly specify to add the course to the current community. The LMS should assume that if you're creating a course in a community, you want the course in that community.

This means in the "Add course to the following communities" area in the create course page, the checkbox for the current community should be checked by default.

Steps to reproduce:
1) Switch to a non-root community and navigate to the create course page.
270 Events minor always 2010-08-27 12:21 2010-08-30 13:29 james ryanhorn normal assigned none none 0.5.2 open 0 TrellisEventObject_reminder defines the following class properties as private, different than parent TrellisEventObject_reminder defines the following class properties as private, while its parent class, TrellisEventObject, defines them as protected

$event_id
$db
$parameters

This is illegal in PHP and will cause an error if you try to load the class file...as you can only use a weaker visibility for the same class properties and methods when inheriting.
271 Certificates feature N/A 2010-08-30 13:27 2010-08-30 13:29 henry henry normal assigned none none 0.5.2 open 0 add support for transparency in images for certificates (and pdfs in general) Someone wrote an extension to FPDF 1.6 that adds support for alpha-channels in PNGs and JPGs:

http://staff.dasdeck.de/valentin/fpdf/fpdf_alpha/ [^]

In order to facilitate this, Trellis' FPDF class must be upgraded from 1.53 to 1.6.
269 Certificates feature N/A 2010-08-16 23:38 2010-08-16 23:38 james james normal assigned none none 0.5.2 open 0 Allow certificate templates to be defined as a client setting Currently the certificate templates that are displayed when creating a new certificate in the admin tool show all certificates that are certificate template files in the system.

These should have an option to be limited to display only those certificate templates applicable to the client or even community.

Adding a client setting would and a slight modification to check for this setting will allow this.
267 Courses feature N/A 2010-07-01 16:13 2010-08-11 10:17 henry henry normal assigned none none 0.5.2 open 0 add waitlist support for course and program sections This will apply to both course sections and program sections. Here is the process outlined:

1) User initiates registration request
2) If section is full, ask user if he wants to be waitlisted
3) Automatically register and notify user once space is available (whether seat limit is increased or users are unregistered)
One table called "waitlist" with the following fields will be added:

insert_timestamp
user_id
section_type (or registration_type)
reference_id


Two client settings will be added:

waitlist_enabled (enables waitlist functionality)
waitlist_user_limit (max number of users that can be waitlisted in a section, defaults to 0 for unlimited)
vcs 2010-08-05 16:27 issue#267 updated code and styling to allow for new content header area in a report header


Repository: /var/svn/trellis-dev, Revision: 8880, Committer: henry
vcs 2010-08-05 20:51 issue#267 added support for section waitlists


Repository: /var/svn/trellis-dev, Revision: 8881, Committer: henry
vcs 2010-08-11 10:17 issue#267 fixed permission for clearing waitlist


Repository: /var/svn/trellis-dev, Revision: 8882, Committer: henry
147 Courses feature N/A 2008-09-16 16:11 2010-08-04 17:57 henry henry normal assigned none none 0.5.1 open 0 modify lc_courseinfo module to create course section registration if passed course_section_id Right now in the learning center courseinfo module, if you pass the request variable 'launch_course' with a value of '1' (along with a course_id) it will launch the course if you are registered in it, or if you are not registered in it, if the 'self_course_registration' setting is set to 'true', it will create the course registration for you using 'course_id' and then proceed to launch the course.

I propose to modify the courseinfo module to accept 'course_section_id', so that if the user wishes to register into and launch a course section, it will do so.
vcs 2010-08-04 17:57 issue#147 modified to allow course section registration


Repository: /var/svn/trellis-dev, Revision: 8879, Committer: henry
234 SCORM minor have not tried 2009-07-20 10:28 2010-07-19 14:38 james henry normal assigned none none 0.5.2 open 0 add SCORM 1.2 support Add SCORM 1.2 into Trellis. When uploading a SCORM package, the version of the package should be identified in the imsmanifest.xml.

Trellis should store the version of the package so that the proper SCORM API can be used.
vcs 2009-07-20 10:32 issue#234 added SCORM 1.2 js/php api


Repository: /var/svn/trellis-dev, Revision: 8713, Committer: james
henry 2009-08-31 16:57 issue#234 debugged SCORM 1.2 js/php api


Repository: /var/svn/trellis-dev, Revision: 8740, Committer: henry

vcs 2009-09-14 16:13 issue#234 created and accommodated two different classes for version 1.2 and 2004


Repository: /var/svn/trellis-dev, Revision: 8742, Committer: henry
vcs 2009-09-14 16:51 issue#234 debugged method visibility


Repository: /var/svn/trellis-dev, Revision: 8743, Committer: henry
vcs 2009-09-14 16:52 issue#234 debugged method visibility


Repository: /var/svn/trellis-dev, Revision: 8744, Committer: henry
vcs 2009-09-14 17:39 issue#234 debugged visibility


Repository: /var/svn/trellis-dev, Revision: 8745, Committer: henry
vcs 2009-09-14 17:39 issue#234 debugged


Repository: /var/svn/trellis-dev, Revision: 8746, Committer: henry
vcs 2009-09-16 12:01 issue#234 debugged


Repository: /var/svn/trellis-dev, Revision: 8749, Committer: henry
vcs 2009-09-16 12:57 issue#234 added ims meta-data title and description and set it to course title and description if set


Repository: /var/svn/trellis-dev, Revision: 8750, Committer: henry
vcs 2009-09-17 16:06 issue#234 moved trellisscorm->upload_pif to lms class, removed trellisscorm->get_version method


Repository: /var/svn/trellis-dev, Revision: 8751, Committer: henry
vcs 2009-09-17 16:10 issue#234 debugged parsing of objectives data element in scorm 1.2 js/php api


Repository: /var/svn/trellis-dev, Revision: 8752, Committer: henry
vcs 2009-09-18 12:52 issue#234 accounted for imsmd title, description and langstring not being prefixed with a namespace


Repository: /var/svn/trellis-dev, Revision: 8753, Committer: henry
vcs 2009-09-18 13:00 issue#234 course title and description should be updated from manifest when uploading to an existing scorm course


Repository: /var/svn/trellis-dev, Revision: 8754, Committer: henry
vcs 2009-09-18 13:17 issue#234 debugged how resource base is set


Repository: /var/svn/trellis-dev, Revision: 8755, Committer: henry
vcs 2009-10-29 09:40 issue#234 added missing '?>' to scorm class files


Repository: /var/svn/trellis-dev, Revision: 8797, Committer: henry
vcs 2010-07-19 14:38 issue 0000234 debugged call to time conversion method (trunk)


Repository: /var/svn/trellis-dev, Revision: 8877, Committer: henry
vcs 2010-07-19 14:38 issue 0000234 debugged call to time conversion method (0.6 branch)


Repository: /var/svn/trellis-dev, Revision: 8878, Committer: henry
266 Trellis Core/Base System minor have not tried 2010-06-30 12:51 2010-06-30 12:52 james james normal assigned none none 0.5.2 open 0 crossdomain.xml support The Trellis request handler should be able to support the XML policy file, crossdomain.xml. This should be handled the same way the reuqest_handler supports favicon.ico and robots.txt
265 AICC minor have not tried 2010-06-30 11:33 2010-06-30 11:34 james james normal assigned none none 0.5.2 open 0 AICC data not being stored properly Some AICC data elements are not being stored in the LMS properly. core_lesson is a data group that is required by some courses in order to resume where the user last left off. Trellis does not store this information so that it can be retrieved at a later time. We should store this information in the responses table for the object. We will need methods to store and get this information when putparam and getparam AICC commands are invoked.
264 AICC minor have not tried 2010-06-28 14:08 2010-06-28 14:08 james james normal assigned none none 0.5.2 open 0 Bug when AICC data contains Windows new line characters Currently the AICC class only supports exploding the AICC data using Unix new line characters (\r\n). It also needs to support the case when the AICC data contains Windows (\n) new line characters.
263 Trellis Core/Base System minor have not tried 2010-06-23 11:42 2010-06-23 14:55 james ryanhorn normal assigned none none 0.5.2 open 0 database schema for documents table is incorrect The database schema for the documents table has a minor error in it which will prevent the table from being created by the system when adding a new client.

In TrellisDatabaseSchema.php:
$this->client_schema['documents']['indexes']['nonunique']['document_category'] = 'document_category';

should be:
$this->client_schema['documents']['indexes']['nonunique']['document_category_id'] = 'document_category_id';
ryanhorn 2010-06-23 14:03 Reminder sent to: james|Change was made in the schema file. Please confirm.
vcs 2010-06-23 14:53 issue 0000263
Fixed database schema for documents table


Repository: /var/svn/trellis-dev, Revision: 8875, Committer: ryan
vcs 2010-06-23 14:53 issue 0000263
Fixed database schema for documents table


Repository: /var/svn/trellis-dev, Revision: 8876, Committer: ryan
ryanhorn 2010-06-23 14:55 Reminder sent to: james|Changes have been committed to https://kiwi.learning.net/svnrepos/terllis-dev [^] (trunk and branches/0.6)
262 Administration/Reports minor always 2010-06-15 17:41 2010-06-21 11:59 henry henry normal assigned none none 0.5.2 open 0 unable to have more than one autocomplete on a page The software currently does not support more than one autocomplete on a page. Whatever function you pass as the getTrellisOperations parameter (to the jquery autocomplete object), it will call the function named "getTrellisOperations" and not the function you passed. In this example:

<script type="text/javascript">
    function my_custom_function {//code here}

    $("#element_id").autocomplete(url,{getTrellisOperations:my_custom_function});
</script>

This should result in my_custom_function getting called when the autocomplete object wishes to call getTrellisOperations. Instead, it still calls "getTrellisOperations".
henry 2010-06-15 17:56 This can be resolved by calling the actual function specified in the object parameters instead of directly calling getTrellisOperations. On line 349 of jquery.autocomplete.js change:

var operations = getTrellisOperations(q, $input.id);

to:

var operations = options.getTrellisOperations(q, $input.id);

261 Trellis Core/Base System feature N/A 2010-06-09 10:25 2010-06-09 12:42 henry henry low assigned none none 0.5.2 open 0 rename country "taiwan, province of china" to just "taiwan" A few users in Taiwan have complained of the designation of Taiwan as a province of China. I would guess most users of the learning center who will need to specify Taiwan as a location will be Taiwanese and hence offended. Although technically precise, this designation is redundant; it does not help to identify Taiwan as a geographic location.
vcs 2010-06-09 12:36 issue#261 changed name of taiwan (0.5)


Repository: /var/svn/trellis-dev, Revision: 8873, Committer: henry
vcs 2010-06-09 12:36 issue#261 changed name of taiwan (0.6)


Repository: /var/svn/trellis-dev, Revision: 8874, Committer: henry
henry 2010-06-09 12:42 Reminder sent to: james|This is completed and ready for review.
260 Trellis Core/Base System minor have not tried 2010-06-04 05:54 2010-06-04 05:54 james james normal assigned none none 0.5.2 open 0 use update_registration when scoring course The TrellisCourse score_course method currently does not use the update_registration method to make changes to the registration when being scored.

Using the update_registration method will allow better flexibility when creating plugin hooks so that these hooks can be fired upon scoring of the course.
250 SCORM minor always 2010-03-10 17:17 2010-05-26 08:09 carlos carlos normal confirmed none none open 0 SCORM PIF upload overwrites short description When a new SCORMPIF course is uploaded to update an existing one, the short description that we originally had is overwritten and gets the value of the original description field. After the upload, both description and short description will have the same value. Right now, the values that we use to populate those fields come from the database and not from the xml, so when we populate the short description field, we should not use the same value that we use for the description field.
vcs 2010-05-06 14:16 issue#250 Change class so it assigns the course_description_short to the short description field instead of the regular description.


Repository: /var/svn/trellis-dev, Revision: 8869, Committer: carlos
201 General/Other minor always 2009-03-11 15:50 2010-05-26 08:08 carlos carlos normal confirmed none none 0.5.0 open 0 No option to add "reply_to" in the send_email() function I am working on a Plugin and I need to add the reply_to option in order to have the recipient of the email respond to the user I need them to respond to.

I suggest to add this under line 559 on core_functions.php:

   if (isset($options['reply_to']))
    {
        $email_reply_to = array_merge($email_reply_to, $options['reply_to']);
    }
    foreach ($email_reply_to as $address => $name)
    {
        $email->AddReplyTo($address, $name);
    }
carlos 2009-03-13 07:48 I realized when you add this option, the old templates would give us the "$email_reply_to not defined" error. What we could do is add a condition to create an empty array if it is not defined. That way we avoid having to add the variable to all of the templates.

    if (!isset($email_reply_to)
    {
       $email_reply_to = array();
    }

    if (isset($options['reply_to']))
    {
        $email_reply_to = array_merge($email_reply_to, $options['reply_to']);
    }
    if(!empty($email_reply_to))
    {
        foreach ($email_reply_to as $address => $name)
        {
            $email->AddReplyTo($address, $name);
        }
    }
james 2009-03-13 08:54 Okay that will work.
vcs 2009-03-13 10:30 issue#201 Suggested code has been added in order to have the option of setting the "reply_to" value.


Repository: /var/svn/trellis-dev, Revision: 8574, Committer: carlos
carlos 2009-05-28 12:26 Reminder sent to: james|I believe this could be marked as resolved too. The patch is already applied and it seems to be working fine.
carlos 2010-05-23 09:34 I am going to mark this as resolved since it has been committed and working fine.
249 Modules minor always 2010-03-03 14:43 2010-05-23 08:56 carlos carlos normal assigned none none open 0 Error if start time bigger than end time regardless the date In coursectioninfo, when a course section is edited if the end time is set to an earlier time that the start time, it always shows the error message "The end time must come after start time". In my opinion, this should only be taken into account when the dates are the same. We just need to add a conditional block. I tested a solution and it is working fine. coursesectioninfo.patch (1 KB) 2010-03-04 10:26
james 2010-03-03 17:52 It should check if the end date/time is before the start date/time. Please provide your patch for this.

carlos 2010-03-04 10:26 The patch has been uploaded.
carlos 2010-05-23 08:56 Reminder sent to: james|I committed the resolution for this one to dev (trunk). I believe the issue can be closed, but wanted to check with you. By the way, do you prefer me letting you know before closing an issue or if I test should I just go ahead and close it?

Thanks,
Carlos
220 Trellis Core/Base System feature N/A 2009-05-18 06:14 2010-05-13 16:47 james james normal assigned none none 0.5.2 open 0 Add support in the core system for the Authoring Tool and Course Management Add support in the core system for the Trellis Authoring Tool and Course Management. The authoring tool will reside within /core/author/.

the course info page will be revamped into a dashboard style page with:

    * course title
    * revision summary
    * list of managers
    * list of editors
    * list of who is currently editing the course
    * course log
    * learning objectives
    * issue summary
    * uploaded files
    * discussion notes
    * course tags

a new permission will be added, possibly "manage_courses" that allows an administrator assign managers and editors to courses. Assigned managers will also be able to assign editors to courses.

managers/editors will be able to check out courses in order to edit them, currently checked out courses will show up on the homepage as will a task list and in the future messages from the messaging system.

the resource library will consist of a global and course specific library with searching capabilities. They will be organized by type: image, video, flash, audio. there will be a preview pane that shows a thumbnail and/or meta data.

the authoring tool will use modular editing panes for different types of packages: text->word processor, test->test generator, etc.
vcs 2009-05-18 06:24 issue#220 added author directory structure and support in the request handler


Repository: /var/svn/trellis-dev, Revision: 8607, Committer: james
vcs 2009-05-18 10:10 issue#220 added is_course_developer to the users_communities table schema


Repository: /var/svn/trellis-dev, Revision: 8611, Committer: james
vcs 2009-05-18 15:26 issue#220 added author errors and updated permission to is_course_author


Repository: /var/svn/trellis-dev, Revision: 8612, Committer: james
vcs 2009-05-18 15:44 issue#220 updated get_mod function to support author path


Repository: /var/svn/trellis-dev, Revision: 8616, Committer: james
vcs 2009-05-18 16:02 issue#220 removed code from set_uri function accidentally committed


Repository: /var/svn/trellis-dev, Revision: 8617, Committer: james
vcs 2009-05-18 16:43 issue#220 added jquery ui for author interface functionality


Repository: /var/svn/trellis-dev, Revision: 8621, Committer: james
vcs 2009-05-19 16:55 issue#220 added author to new_class function


Repository: /var/svn/trellis-dev, Revision: 8627, Committer: james
vcs 2009-06-01 15:48 issue#220 added expandable course description fields


Repository: /var/svn/trellis-dev, Revision: 8639, Committer: james
vcs 2009-06-02 06:53 issue#220 added courses_contributors methods and database schema


Repository: /var/svn/trellis-dev, Revision: 8645, Committer: james
vcs 2009-06-02 06:56 issue#220 fixed get_course_contributors method database query


Repository: /var/svn/trellis-dev, Revision: 8646, Committer: james
vcs 2009-06-02 07:00 issue#220 fixed typos and database alias


Repository: /var/svn/trellis-dev, Revision: 8647, Committer: james
vcs 2009-06-02 07:07 issue#220 fixed typo


Repository: /var/svn/trellis-dev, Revision: 8648, Committer: james
vcs 2009-06-03 02:08 issue#220 use course_contributors table to check if user is permitted to author course


Repository: /var/svn/trellis-dev, Revision: 8652, Committer: james
vcs 2009-06-03 02:12 issue#220 debug is_course_author query, missing AND


Repository: /var/svn/trellis-dev, Revision: 8654, Committer: james
vcs 2009-06-05 08:49 issue#220 added an authoring method to the course object that will return html to create, edit and view the object in the authoring tool


Repository: /var/svn/trellis-dev, Revision: 8662, Committer: james
vcs 2009-06-09 10:09 issue#220 added authoring method to text object


Repository: /var/svn/trellis-dev, Revision: 8677, Committer: james
vcs 2009-06-19 09:19 issue#220 added authoring support to truefalse object


Repository: /var/svn/trellis-dev, Revision: 8688, Committer: james
vcs 2009-06-22 09:34 issue#220 updated course class to support authoring tool, updated authoring database tables


Repository: /var/svn/trellis-dev, Revision: 8693, Committer: james
vcs 2009-06-25 06:25 issue#220 added discussion for course management; added styling and package editing/fixes to author class


Repository: /var/svn/trellis-dev, Revision: 8697, Committer: james
vcs 2009-06-25 07:32 issue#220 added course management/discussion features to course info page


Repository: /var/svn/trellis-dev, Revision: 8699, Committer: james
vcs 2009-06-25 07:33 issue#220 hide course objective form


Repository: /var/svn/trellis-dev, Revision: 8701, Committer: james
vcs 2009-06-25 12:01 issue#220 updated preview course link


Repository: /var/svn/trellis-dev, Revision: 8703, Committer: james
vcs 2009-07-02 05:53 issue#220 added ability to define package types


Repository: /var/svn/trellis-dev, Revision: 8706, Committer: james
vcs 2009-07-02 06:40 issue#220 added add/edit/delete link icons


Repository: /var/svn/trellis-dev, Revision: 8707, Committer: james
vcs 2009-07-02 07:23 issue#220 updated styling


Repository: /var/svn/trellis-dev, Revision: 8708, Committer: james
vcs 2009-07-02 08:38 issue#220 delete object and package, preview course page


Repository: /var/svn/trellis-dev, Revision: 8709, Committer: james
vcs 2009-07-02 08:50 issue#220 added content to the text object when creating course


Repository: /var/svn/trellis-dev, Revision: 8710, Committer: james
vcs 2009-07-24 02:33 issue#220 added accreditor and course unit methods


Repository: /var/svn/trellis-dev, Revision: 8716, Committer: james
vcs 2009-07-24 03:07 issue#220 added order to course unit methods


Repository: /var/svn/trellis-dev, Revision: 8718, Committer: james
vcs 2009-07-29 07:54 issue#220 added trellis resource path constant and template support to parse constants in content


Repository: /var/svn/trellis-dev, Revision: 8720, Committer: james
vcs 2009-08-28 08:42 issue#220 fixed undefined variable


Repository: /var/svn/trellis-dev, Revision: 8735, Committer: james
vcs 2009-08-28 09:26 issue#220 debug typo


Repository: /var/svn/trellis-dev, Revision: 8736, Committer: james
vcs 2009-09-15 06:16 issue#220 fixed viewing of prerequisites and course development features on the course information page


Repository: /var/svn/trellis-dev, Revision: 8747, Committer: james
vcs 2009-10-29 10:16 issue#220 debugged error constant for TRELLIS_E_NOT_COURSE_AUTHOR


Repository: /var/svn/trellis-dev, Revision: 8798, Committer: henry
vcs 2010-05-13 16:47 issue#220 added parent_package_id to the author_packages table - Trellis Database Schema


Repository: /var/svn/trellis-dev, Revision: 8871, Committer: james
259 Administration/Reports minor always 2010-04-28 14:59 2010-04-28 15:17 henry henry normal assigned none none 0.5.2 open 0 trying to browse program sections results in sql error Clicking "Browse Program Sections" in the navigation menu on the left results in a sql error:
Error 31024

SteamDB->select_field(SELECT COUNT(*) FROM ( program_sections prgs, programs prg) LEFT JOIN (SELECT it.reference_id AS program_section_id, u.user_id AS instructor_id, GROUP_CONCAT(DISTINCT CONCAT_WS(' ', u.first_name, u.last_name) SEPARATOR ', ') AS instructor_name FROM users u, instructors it WHERE u.user_id = it.user_id AND instructor_type = 'program_section' GROUP BY reference_id) AS it ON prgs.program_section_id = it.program_section_id LEFT JOIN (SELECT uprg.program_section_id, COUNT(uprg.user_id) AS program_section_users FROM users_programs uprg, users u, users_communities ucm, WHERE uprg.user_id = u.user_id AND u.user_status <> 'disabled' AND u.user_id = ucm.user_id AND ucm.community_id = '5' AND GROUP BY uprg.program_section_id) AS prgs_u ON prgs_u.program_section_id = prgs.program_section_id LEFT JOIN locations l ON prgs.location_id = l.location_id WHERE prgs.program_id = prg.program_id AND prg.community_id = '5' LIMIT 1): the query could not be completed; You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE uprg.user_id = u.user_id AND u.user_status <> 'disabled' AND u.user_id = u' at line 1
In /var/www/trellis_web/0.6/core/global/classes/SteamDB_to_TrellisDB.php on line 443.
henry 2010-04-28 15:02 This happens because of line 1433 in TrellisLMS->get_program_sections(). The SQL query has syntax errors, specifically an extra comma before the WHERE keyword and an extra AND before the GROUP BY keyword.
vcs 2010-04-28 15:15 issue#259, debugged sql query in get_program_sections() method (trunk)


Repository: /var/svn/trellis-dev, Revision: 8867, Committer: henry
vcs 2010-04-28 15:16 issue#259, debugged sql query in get_program_sections() method (0.6 branch)


Repository: /var/svn/trellis-dev, Revision: 8868, Committer: henry
henry 2010-04-28 15:17 Reminder sent to: james|This has been fixed, tested, is working and ready for review.
258 Trellis Core/Base System minor always 2010-04-22 18:48 2010-04-22 18:51 james james normal assigned none none 0.5.2 open 0 updating, moving or deleting a group has permission issues A permission error is thrown if you have access to a group when attempting to update move or delete the group. But if you access to the group in the current community, this error should not be thrown. The update move and remove group methods are always checking the root community (1) for group access. They should check the current community.
vcs 2010-04-22 18:51 issue#258 update the update/delete/move _group methods so that they check the current community for group access permissions


Repository: /var/svn/trellis-dev, Revision: 8866, Committer: james
257 Courses minor always 2010-04-22 17:09 2010-04-22 17:22 henry henry normal assigned none none 0.5.2 open 0 scorm course window not resizable If you launch a scorm course from the course info page, the window is not resizable. It should be.

This does not happen if you launch the course from anywhere else.
henry 2010-04-22 17:10 This happens because the javascript window.open parameter "resizable" is misspelled "resizeable" in base/modules/courseinfo.php

vcs 2010-04-22 17:14 issue#257 fixed misspelled javascript parameter


Repository: /var/svn/trellis-dev, Revision: 8864, Committer: henry
vcs 2010-04-22 17:22 issue#257 fixed misspelled javascript parameter (trunk)


Repository: /var/svn/trellis-dev, Revision: 8865, Committer: henry
255 Administration/Reports minor have not tried 2010-04-20 10:34 2010-04-20 11:27 james james normal assigned none none 0.5.2 open 0 create course section drop-down box for courses truncated The drop-down box on the create course section admin module truncates longer course titles. Let's expand the width of the select box to fit all course titles. we'll add a style to set the width to auto
vcs 2010-04-20 10:39 issue#255 updated the styling of the course select field to prevent truncating course titles


Repository: /var/svn/trellis-dev, Revision: 8861, Committer: james
vcs 2010-04-20 11:27 issue#255 updated to use the width_flexible css class


Repository: /var/svn/trellis-dev, Revision: 8863, Committer: james
256 Administration/Reports minor have not tried 2010-04-20 10:41 2010-04-20 11:01 james james normal assigned none none 0.5.2 open 0 add start/end dates to course section browser also a date filter Update the course section browser to include a date range filter
as well as 2 additional columns "start date" and "end date"
vcs 2010-04-20 11:01 issue#256 added start/end date columns and a date range filter for the start and end date fields


Repository: /var/svn/trellis-dev, Revision: 8862, Committer: james
254 Courses feature N/A 2010-04-15 09:46 2010-04-15 09:48 james james normal assigned none none 0.5.2 open 0 add a method to add a course unit The TrellisLMS class is missing a method that allows adding a course unit to a course.

This method should be named "add_course_unit" and allow the following parameters:
course_id
accreditor_id
accreditor_info
vcs 2010-04-15 09:48 issue#254 added the add_course_unit method to the LMS class


Repository: /var/svn/trellis-dev, Revision: 8860, Committer: james
253 Courses minor always 2010-04-15 09:23 2010-04-15 09:44 james james normal assigned none none 0.5.2 open 0 an empty accreditor id will return if no course units are assigned when using the "get_course_units" method in the TrellisLMS class, the accreditor_id field will be empty if the course does not carry any units for that accreditor.

Expected result:
The accreditor id will be populated with the proper value regardless if the course has units for that accreditor.
An update to the query in the get_course_units method is necessary for it to consistently return the accreditor_id
vcs 2010-04-15 09:26 issue#253 updated get_course_units so that the accreditor_id will always be populated regardless if the course has units for a specific accreditor


Repository: /var/svn/trellis-dev, Revision: 8859, Committer: james
252 SCORM minor always 2010-04-08 12:32 2010-04-08 12:35 james james normal assigned none none 0.5.2 open 0 Error when uploading a SCORM package and resource/file is blank In the case that the imsmanifest.xml provided with a SCORM package contains a blank resource identifier, the method will throw an exception indicating it can not perform the copy function.

Here is an example of a blank resource node in the imsmanifest.xml:

    <resource identifier="R_111" type="webcontent" adlcp:scormType="asset">
      <file href=""/>
    </resource>
vcs 2010-04-08 12:35 issue#252 error when imsmanfest.xml defines a blank resource - so we'll skip if file to copy is blank


Repository: /var/svn/trellis-dev, Revision: 8857, Committer: james
vcs 2010-04-08 12:35 issue#252 error when imsmanfest.xml defines a blank resource - so we'll skip if file to copy is blank


Repository: /var/svn/trellis-dev, Revision: 8858, Committer: james
251 Course Objects feature N/A 2010-03-16 17:57 2010-03-22 14:40 henry henry normal assigned none none 0.5.2 open 0 add feature to only show object results if the package's required score was met For a test, I want to only show the result of each object if the user passed the test. Right now this is controlled using the "show_result" object parameter. Objects will show their results unless "show_result" is explicitly set to false. The problem with this is it does not differentiate between the package being passed or not, so you can either not show results at all, or you can show it regardless of the user passing. I'd like to show the results only if the package was passed (i.e. had its required score met).
vcs 2010-03-22 14:37 issue#251 modified to only show object result if the package's required score was met at least once


Repository: /var/svn/trellis-dev, Revision: 8854, Committer: henry
vcs 2010-03-22 14:40 issue#251 modified to only show object result if the package's required score was met at least once


Repository: /var/svn/trellis-dev, Revision: 8855, Committer: henry
248 General/Other minor have not tried 2010-03-03 14:24 2010-03-03 14:25 carlos normal new none none open 0 Repeated error code in trellis_errors The error code for the errors defined in case that a course section is full and in case that is not empty are duplicated, so the second one is overwriting the first one.
243 Document Management System feature N/A 2009-10-22 13:34 2009-12-28 14:49 henry henry normal assigned none none 0.5.2 open 0 add document categories module to administration interface Document categories are currently set in the client_config.php file which must be updated manually by editing that file. A "Document Categories" module should be added to facilitate dynamic manipulation of categories by learning center administrators.

It's proposed to add a "document_categories" table linked to the "documents" table through a "document_category_id" primary key. A category can also have communities specified to which it should be added.

New permissions entitled "view_document_categories", "delete_document_categories", "edit_document_categories" and "add_document_categories" will also be added.
vcs 2009-10-22 15:14 issue#243 added document_categories table structure


Repository: /var/svn/trellis-dev, Revision: 8779, Committer: henry
vcs 2009-10-22 15:21 issue#243 changed documents_category field in documents table to documents_category_id, also made document_category_id in document_categories table auto increment


Repository: /var/svn/trellis-dev, Revision: 8780, Committer: henry
vcs 2009-10-22 15:56 issue#243 added permissions for document_categories


Repository: /var/svn/trellis-dev, Revision: 8781, Committer: henry
vcs 2009-10-22 16:48 issue#243 added document category errors


Repository: /var/svn/trellis-dev, Revision: 8782, Committer: henry
vcs 2009-10-22 17:25 issue#243 added document category methods to trellisdms class


Repository: /var/svn/trellis-dev, Revision: 8783, Committer: henry
vcs 2009-10-23 11:18 issue#243 added document categories mod to the navigation/mod menu


Repository: /var/svn/trellis-dev, Revision: 8784, Committer: henry
vcs 2009-10-23 11:21 issue#243 changed position, debugged


Repository: /var/svn/trellis-dev, Revision: 8785, Committer: henry
vcs 2009-10-23 11:25 issue#243 added ad_document_categories uri


Repository: /var/svn/trellis-dev, Revision: 8786, Committer: henry
vcs 2009-10-23 12:01 issue#243 debugged typo


Repository: /var/svn/trellis-dev, Revision: 8787, Committer: henry
vcs 2009-10-23 17:13 issue#243 added get_document_category method


Repository: /var/svn/trellis-dev, Revision: 8788, Committer: henry
vcs 2009-10-27 09:17 issue#243 added document_category_id paramater to filter by document_category_id


Repository: /var/svn/trellis-dev, Revision: 8789, Committer: henry
vcs 2009-10-27 09:19 issue#243 added document_categories to get_ids method


Repository: /var/svn/trellis-dev, Revision: 8790, Committer: henry
vcs 2009-10-27 09:23 issue#243 updated documents modules and snippets to utilize new document categories


Repository: /var/svn/trellis-dev, Revision: 8791, Committer: henry
vcs 2009-10-27 09:24 issue#243 added document categories module and snippet


Repository: /var/svn/trellis-dev, Revision: 8792, Committer: henry
vcs 2009-10-27 09:34 issue#243 added document_category_id paramater to filter by document_category_id to get_user_documents method


Repository: /var/svn/trellis-dev, Revision: 8793, Committer: henry
vcs 2009-10-27 09:37 issue#243 updated base documents module to utilize new document categories


Repository: /var/svn/trellis-dev, Revision: 8794, Committer: henry
vcs 2009-10-27 12:24 issue#243 debugged field_name


Repository: /var/svn/trellis-dev, Revision: 8796, Committer: henry
vcs 2009-10-29 13:06 issue#243 minor update to line placement of code


Repository: /var/svn/trellis-dev, Revision: 8800, Committer: henry
vcs 2009-10-29 13:15 issue#243 added permission restrictions


Repository: /var/svn/trellis-dev, Revision: 8801, Committer: henry
vcs 2009-10-29 13:17 issue#243 debugged


Repository: /var/svn/trellis-dev, Revision: 8802, Committer: henry
vcs 2009-12-22 14:17 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 14:32 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 14:47 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 14:56 issue#243 removed no longer used $TRELLIS_document_categories variable from client_config template


Repository: /var/svn/trellis-dev, Revision: 8837, Committer: henry
vcs 2009-12-22 15:02 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 15:11 issue#243 removed no longer used $TRELLIS_document_categories variable from client_config template


Repository: /var/svn/trellis-dev, Revision: 8837, Committer: henry
vcs 2009-12-22 15:17 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 15:26 issue#243 removed no longer used $TRELLIS_document_categories variable from client_config template


Repository: /var/svn/trellis-dev, Revision: 8837, Committer: henry
vcs 2009-12-22 15:32 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 15:56 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 15:58 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 16:01 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 16:05 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 16:38 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 16:39 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 16:40 issue#243 added "none" option for a document's category

Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-22 16:44 issue#243 added "none" option for a document's category


Repository: /var/svn/trellis-dev, Revision: 8836, Committer: henry
vcs 2009-12-23 11:07 issue#243 added default document category "General" to root and new communities


Repository: /var/svn/trellis-dev, Revision: 8838, Committer: henry
vcs 2009-12-23 11:36 issue#243 cosmetic fix to whitespace


Repository: /var/svn/trellis-dev, Revision: 8840, Committer: henry
henry 2009-12-28 14:49 issue#243 added "none" option for a document's category when uploading document


Repository: /var/svn/trellis-dev, Revision: 8841, Committer: henry
221 Administration/Reports minor always 2009-05-19 18:25 2009-12-14 16:19 henry henry normal assigned none none 0.5.2 reopened 0 export row count not matching browser row count when a filter is applied In the User Certificates Browser, I applied a filter that returned 1058 results. I exported those results and the file contained over 1500 results. The export file should contain the same number of results as the browser.

This bug applies to all browsers, and two conditions must be present for this bug to occur:

1) The result set must exceed TRELLIS_EXPORT_ROWS_PER_QUERY.
2) A filter must be applied.

Steps to reproduce:

1) Visit any browser and apply a filter which results in a row count that exceeds TRELLIS_EXPORT_ROWS_PER_QUERY.
2) Export the results.
3) Note the discrepancy in the row count of the exported file.
layout_functions.php.patch (0 KB) 2009-05-19 18:49
regbrowser.php.patch (2 KB) 2009-11-06 06:17
regbrowser.php (10 KB) 2009-06-02 14:51
henry 2009-05-19 18:48 I've attached a patch to layout_functions.php that fixes this bug.

Short Explanation:
This occurs because export_data_table() uses more than one query to obtain the data set when the row count exceeds TRELLIS_EXPORT_ROWS_PER_QUERY, and the filters only get applied to the first query. My patch saves the filters and applies them to all subsequent queries.

Long Explanation:
The export_data_table() function divides the database query into parts equal to the row count divided by TRELLIS_EXPORT_ROWS_PER_QUERY, rounded up. For example, if the row count is 1400 and TRELLIS_EXPORT_ROWS_PER_QUERY is equal to 500, export_data_table() will obtain the data set using 3 queries (1400/500 rounded up). Because the query parts used to build the query get reset after every call, export_data_table() saves the parts into a variable called $query_parts and restores it for every subsequent query call. The filters, however, don't make it into query parts until after $query_parts is set, so the filters don't get saved and aren't applied to queries after the first.
vcs 2009-05-20 10:30 issue#221

saved and applied filters to subsequent queries in the export_data_table function



Repository: /var/svn/trellis-dev, Revision: 8628, Committer: henry
henry 2009-05-20 10:31 Reminder sent to: james|This has been tested, is working and is ready for review.
vcs 2009-05-20 10:47 issue#221 saved and applied filters to subsequent queries in the export_data_table function


Repository: /var/svn/trellis, Revision: 121, Committer: james
henry 2009-05-29 15:39 Further use and investigation has revealed that the fix I applied does not properly resolve the issue. Specifically, saving and setting utilities->filters before the lms->get() method is incomplete because some lms->get() methods call utilities->add_filters(), and in that method the value of utilities->filters gets set anew from utilities->added_filters, thus overwriting the previously saved utilities->filters.

One possible solution is to save utilities->added_filters instead in export_data_table(), because calling utilities->add_filter() won't overwrite what's in utilities->added_filters, but this would require also calling utilities->update_filters() to save the contents of utilities->added_filters to utilities->filters. The problem with this is that utilities->update_filters() is not a public method.

Another possible solution is to alter the admin modules so that the filters are added inside the get_data_rows() function, so that when exporting the data set, the filters are guaranteed to be added to each query call because export_data_table() uses the get_data_rows() function. Also, the adding of filters in these modules is necessarily tied to the get_data_rows() function, meaning that in these modules, the filters only apply with respect to get_data_rows().

The second solution seems best to me right now. What do you think?
henry 2009-05-29 15:41 By the way, to reproduce and see this problem, use the registration browser, apply a filter and export a result set that exceeds TRELLIS_EXPORT_ROWS_PER_QUERY.
james 2009-05-29 16:28 Can you attach a patch of altering the regbrowser as an example?

henry 2009-05-29 16:55 A patch to regbrowser.php has been attached.
henry 2009-05-29 17:02 Or, did you want me to commit a patched regbrowser?
james 2009-06-02 13:09 can you attach your patched regbrowser.php file? I can't seem to apply the patch
henry 2009-06-02 14:51 A patched regbrowser.php has been attached.
james 2009-06-02 15:09 this solution looks like it will work fine, please apply those updates
vcs 2009-06-05 18:37 issue#221 reverted revision 8628 which does not properly resolve the issue


Repository: /var/svn/trellis-dev, Revision: 8666, Committer: henry
vcs 2009-06-05 18:43 issue#221 moved filters inside the get_data_rows() function


Repository: /var/svn/trellis-dev, Revision: 8667, Committer: henry
henry 2009-06-05 18:46 Note that all custom declarations of get_data_rows() inside .client files will need to be updated with the filters from the trunk file. This applies to all browsers.

vcs 2009-06-08 09:16 issue#221 added location_id parameter to lms->get_courses()


Repository: /var/svn/trellis-dev, Revision: 8672, Committer: henry
henry 2009-06-08 09:17 Regarding revision 8672, coursebrowser.php was adding a location_id filter in get_data_rows(). I changed it to be a lms->get_courses() parameter instead.
vcs 2009-06-16 12:43 issue#221 moved filter adding to customizable function filter_data_rows()


Repository: /var/svn/trellis-dev, Revision: 8684, Committer: henry
vcs 2009-06-26 15:21 issue#221 added support for client_data_rows() custom function


Repository: /var/svn/trellis-dev, Revision: 8704, Committer: henry
henry 2009-06-26 16:06 I've modified the way get_data_rows() works in regbrowser in the following ways:

1) Added filter_data_rows() function that is called inside get_data_rows().
2) Added client_data_rows() function that is called inside get_data_rows(), if it exists or is defined in client files.

These are the pros and cons that I can think of:

Pros:
- As regards filter_data_rows() -- firstly, putting the filters inside get_data_rows() resolves this bug, but encapsulating it in a function means that changes to the browser filters don't have to replicated line by line in the client file.
- Similarly for client_data_rows(), this encapsulation means that changes to the base get_data_rows() code need not be replicated in the client file, and the client file can include only custom lines
- I find it helpful to conceptualize the retrieval of data rows into lms method call (get_data_rows()), utilities filtering (filter_data_rows()), and client customization (client_data_rows()), with all three functions customizable.

Cons:
- The use of two function calls instead of inline code can be considered an undesirable performance decrease
- filter_data_rows() may be considered superfluous, as custom filters can be added via client_data_rows(), and the code in filter_data_rows() can simply be inlined in get_data_rows().

What do you think? I only updated regbrowser.php, but this would apply to all browsers.

henry 2009-10-29 13:00 I've decided to get rid of filter_data_rows() and inline the filtering code inside get_data_rows(). I've done this because benefits of encapsulation in this particular case are minimal and considered not worth the performance decrease. Additional filters can be added via client_data_rows().
vcs 2009-10-29 13:00 issue#221 removed use of filter_data_rows() in the document browser


Repository: /var/svn/trellis-dev, Revision: 8799, Committer: henry
james 2009-11-05 14:20 Henry, please attach a patch so that we can review the process using the the client_data_rows() function.
henry 2009-11-06 06:22 A patch to regbrowser.php has been attached. The get_data_rows() function will work in the same manner for all browsers. Note that client_data_rows() allows you to return a dataset which get_data_rows() will then return. This is useful when you want to manipulate the dataset after receiving it from the lms->get() call.
james 2009-11-12 15:34 This looks useful using the client_data_rows() function, let's proceed with that.
vcs 2009-11-13 16:22 issue#221 completely removed the filter_data_rows() function and added support for client_data_rows() inside get_data_rows()


Repository: /var/svn/trellis-dev, Revision: 8804, Committer: henry
vcs 2009-11-13 17:28 issue#221 debugged for case when result set is an empty array


Repository: /var/svn/trellis-dev, Revision: 8805, Committer: henry
henry 2009-12-14 10:51 Reminder sent to: james|Moving the filters inside the get_data_rows() function resolves the issue of incorrect export row count. The addition of client_data_rows() provides encapsulation so that changes to get_data_rows() need not be updated in client files (which was the previous case), and client files can contain custom code only.

Both elements have been tested, are working and are ready for review.
vcs 2009-12-14 15:07 issue#221 removed filter_data_rows() and added client_data_rows() to documentcategories module


Repository: /var/svn/trellis-dev, Revision: 8833, Committer: henry
vcs 2009-12-14 16:19 issue#221 debugged for case when result set is an empty array in docbrowser module


Repository: /var/svn/trellis-dev, Revision: 8834, Committer: henry
247 Administration/Reports minor always 2009-12-08 15:45 2009-12-14 11:25 henry henry normal invalid none none 0.5.2 no change required 0 registration browser displays registrations for disabled courses The registration browser displays registrations for disabled courses when it shouldn't. No information regarding disabled courses should be visible anywhere except when explicitly requested in the course browser.
henry 2009-12-08 15:49 TrellisLMS->get_registrations() should be modified with the addition of "c.course_status <> 'disabled'" in the where clause and TrellisLMS->get_registration() should be modified with an exception thrown if asked to retrieve a registration of a disabled course.
vcs 2009-12-08 16:14 issue#247 don't retrieve disabled courses in get registration methods


Repository: /var/svn/trellis-dev, Revision: 8829, Committer: henry
henry 2009-12-08 16:19 Reminder sent to: james|This has been tested, is working and is ready for review. Note that I used the error message of the registration not existing instead of permission denied. Should this be changed?
vcs 2009-12-08 17:10 issue#247 reverted unnecessary revision 8829


Repository: /var/svn/trellis-dev, Revision: 8830, Committer: henry
henry 2009-12-08 17:12 This is an invalid issue and was caused by a customization on the test learning center. The registration browser will properly display status based on the parameters passed to TrellisLMS->get_registrations().

Also we will hold off on preventing get_registration() to retrieve disabled courses.
246 Administration/Reports minor have not tried 2009-12-03 11:31 2009-12-03 11:32 james james normal assigned none none 0.5.2 open 0 user program browser export error When exporting the results from the user program browser report, it produces the following error:
Undefined index: user_program_completed_courses; .../core/global/classes/TrellisExport.php @ line 270;
- login into admin and click on the Browser Program Users link.
- ensure there is data listed
- click the export tab to export the data
- a blank or error exported file is produced

expected result:
the data listed should be contained within the exported file format
in userprogrambrowser.php, user_program_completed_courses should be changed to user_program_complete_courses
vcs 2009-12-03 11:32 issue#246 fixed undefined index when exporting the data from this report


Repository: /var/svn/trellis-dev, Revision: 8828, Committer: james
245 Administration/Reports minor have not tried 2009-11-23 16:43 2009-11-23 16:45 james james normal assigned none none 0.5.2 open 0 User Program Browser is retrieving all users regardless of user status The User Program Browser is retrieving all users regardless of their user status. More specifically this get_users_programs method should be consistent with all other methods and only get only users who do not have a disabled user status.
vcs 2009-11-23 16:45 issue#245 get_users_programs - do not get users who have a disabled user status


Repository: /var/svn/trellis-dev, Revision: 8817, Committer: james
244 Administration/Reports minor always 2009-11-17 10:25 2009-11-19 16:49 henry henry normal assigned none none 0.5.2 open 0 unable to filter by disabled course in userbrowser When viewing disabled courses in the course browser, clicking on the number of registered users will not show users grouped by that course, as you expect it to, but instead it will list all users. The course is actually missing from the filter group select, which will default to the first choice (without actually applying to the filter).

Steps to reproduce:
1) View disabled courses in the course browser.
2) Click on the number of registered users for a course
3) Observer that you are taken to the user browser page and that the result set is not filtered by that course
henry 2009-11-17 10:28 This happens because the filter grouping excludes courses with "Disabled" status in the user browser. I think either the userbrowser module should be modified to properly filter if given the ID of a disabled course, or the coursebrowser module should not display the filter grouping link for disabled courses.

henry 2009-11-19 14:16 I've decided that the course browser should not link to the user browser for disabled courses. The reason being that in no other module other than the course browser is information related to disabled courses visible. This includes user transcripts, the course count for users displayed in the user browser, and the registration browser. To remain consistent with this treatment of disabled courses, there will be no link to the user browser for disabled courses in the course browser. If the user wishes to view additional information he must change the course status to "Inactive" or "Expired".
vcs 2009-11-19 14:16 issue#244 only link the course users count to user browser if the course is not disabled


Repository: /var/svn/trellis-dev, Revision: 8813, Committer: henry
vcs 2009-11-19 15:43 issue#244 debugged


Repository: /var/svn/trellis-dev, Revision: 8815, Committer: henry
vcs 2009-11-19 16:49 issue 0000244 changed method of disabling course users count link for disabled courses


Repository: /var/svn/trellis-dev, Revision: 8816, Committer: henry
162 Administration/Reports minor always 2008-10-20 17:21 2009-11-19 15:26 henry carlos normal assigned none none 0.5.2 open 0 filtering by uploader in course browser results in sql error Attempting to filter courses by uploader in the course browser results in:

"Error 31024

SteamDB->select_field(SELECT COUNT(*) FROM ( courses c, courses_communities ccm) LEFT JOIN users u ON c.uploader_id = u.user_id WHERE c.course_id = ccm.course_id AND ccm.community_id = '1' AND ( uploader_name LIKE 'henry' AND c.course_status IN ('active', 'inactive', 'staging', 'expired')) LIMIT 1): the query could not be completed; Unknown column 'uploader_name' in 'where clause'
In ../core/global/classes/SteamDB_to_TrellisDB.php on line 443."
uploader_filter_patch.patch (4 KB) 2008-12-15 10:34
henry 2008-10-20 17:23 Note that 'uploader_name' is not an actual field name. It refers to the concatenation of users.first_name and users.last_name (separated by a space) that is selected as uploader_name in TrellisLMS->get_courses().
shaddy 2008-10-22 22:57 solution: remove that from the available fields on which to filter
carlos 2008-12-11 10:12 I would like to know if this was ever removed and if the issue has already been fixed.

james 2008-12-11 13:58 if there is no notes here, then it has not been fixed.
carlos 2008-12-15 10:34 I have tested a solution that seems to fix this problem. Here is the patch.
carlos 2009-05-29 13:16 Reminder sent to: james|This one seems to be working fine. Ready to be reviewed.
carlos 2009-06-03 12:36 issue#162 filtering by uploader has been added to course browser

Repository: /var/svn/trellis-dev, Revision: 8533, Committer: carlos
vcs 2009-11-13 16:19 issue#162 export field for uploader should show the name and not the id, also simplified the filter for uploader



Repository: /var/svn/trellis-dev, Revision: 8803, Committer: henry
henry 2009-11-13 16:26 Was it definitively decided whether or not the uploader filter would be kept?
james 2009-11-13 16:39 let's leave it off for now.
vcs 2009-11-19 15:26 issue#162 removed uploader filter


Repository: /var/svn/trellis-dev, Revision: 8814, Committer: henry
183 Learning Center minor always 2009-01-26 15:35 2009-11-18 15:31 henry henry normal confirmed none none 0.5.2 reopened 0 documents mod returns documents from all communities by default The default behaviour for the documents mod is to return documents from all communities, regardless of the current community.

I suggest changing the default behaviour to return documents only from the current community, as the current behaviour seems contradictory to the main purpose of a community, which is to collectively separate elements in a learning center (e.g. courses, users, catalogs).

This change would also align with the behaviour of the catalogs mod, which returns only catalogs from the current community.
vcs 2009-02-13 16:59 issue#183

return documents only from the current community by default


Repository: /var/svn/trellis-dev, Revision: 8544, Committer: henry
vcs 2009-02-17 17:15 issue#183

removed 0.4 backwards compatibility for calls to get_user_documents() method, as it is not used/needed


Repository: /var/svn/trellis-dev, Revision: 8546, Committer: henry
henry 2009-02-17 17:51 Reminder sent to: james|This has been tested, is working and is ready for review.
vcs 2009-02-17 17:54 issue#183 resolved
return documents only from the current community by default
removed 0.4 backwards compatibility for calls to get_user_documents() method, as it is not used/needed


Repository: /var/svn/trellis, Revision: 101, Committer: james
james 2009-02-17 17:55 resolution has been committed
henry 2009-10-05 15:41 Reopening issue: revision 8544 introduces a new bug whereby a document cannot be accessed if its only method of access is through a program.

Steps to reproduce:
1) Upload a document, do not grant access to all users.
2) Grant access based on a program
3) View documents module and note that the document is not accessible even if you are a user registered in the program

This happens because setting the community id parameter (as is done in revision 8544) will only return documents in that community if "Grant access to all users" was checked, which may not always be the case.
vcs 2009-10-05 16:34 issue#183 when community id is passed, also retrieve documents which don't belong to any community (accessible instead by program or program section)


Repository: /var/svn/trellis-dev, Revision: 8758, Committer: henry
henry 2009-10-05 16:35 Revision 8544 is being kept and revision 8758 was committed to address the new bug/issue.
vcs 2009-10-05 16:38 issue#183 debugged


Repository: /var/svn/trellis-dev, Revision: 8759, Committer: henry
vcs 2009-10-05 16:57 issue#183 debugged


Repository: /var/svn/trellis-dev, Revision: 8760, Committer: henry
vcs 2009-10-05 17:04 issue#183 debugged - '0' is not a valid program section


Repository: /var/svn/trellis-dev, Revision: 8761, Committer: henry
vcs 2009-11-18 15:31 issue#183 if given community id, only match programs and programs sections from that community


Repository: /var/svn/trellis-dev, Revision: 8811, Committer: henry
86 Learning Center feature N/A 2008-07-30 12:52 2009-10-27 10:51 henry henry normal assigned minor fix < 1 day 0.5.0 reopened 0 add category filter to documents mod In the documents module you can sort by category, but you can't filter by it. For a learning center with potentially thousands of documents, it would be useful to be able to filter by category. I propose to use a select box which lists all categories, placed to the left of the search box. It would be in the same form as the search box and would be submitted by either the enter button or by clicking 'Search' (or, possibly on the javascript onchange event for the select box). You select which category you'd like to filter by, and the page will only return documents belonging to that category.
shaddy 2008-07-30 12:56 can you provide more information about how this filter would look/work?
henry 2008-07-30 13:07 yes, please see the updated additional information.
shaddy 2008-08-11 14:15 what if a client doesn't use categories?
vcs 2008-08-15 11:58 issue 0000086
added category filter


Repository: trellis-dev, Revision: 8352, Committer: henry
henry 2008-08-15 13:57 Reminder sent to: <font STYLE="text-decoration: line-through">shaddy</font>|this issue has been tested and is working. this is ready for review.
vcs 2008-08-15 15:28 issue#86
renamed category_filter to filter_category, removed id


Repository: trellis-dev, Revision: 8356, Committer: shaddy
shaddy 2008-08-15 16:21 issue#119 resolved, issue#120 resolved, issue#121 resolved, issue#86 resolved added category filter
added sort by search rank,
added highlighting to documents,
improved searching to count multiple search term occurrences


Repository: trellis, Revision: 52, Committer: shaddy
henry 2009-10-23 14:27 If I change the filter for the category (not entering any search text), I receive a "The search text is not valid." error and no results are returned. The error message should not appear and the documents matching the category specified should be retrieved as expected.
james 2009-10-23 14:43 I agree- if the search term is empty and the category is changed, it will list all the documents in the selected category.
vcs 2009-10-27 10:51 issue#86 added eval(customize_snippet())


Repository: /var/svn/trellis-dev, Revision: 8795, Committer: henry
242 Trellis Core/Base System minor always 2009-09-28 17:11 2009-09-28 17:18 henry normal new none none 0.5.2 open 0 email altbody is missing assignments when using the send_email() function Currently the altbody in an email template will not have its variable assignments assigned (e.g. {$username} will not be replaced with the proper value) if you send the email using the send_email() function. The altbody's assignments should be properly assigned.

Note that the normal body itself will have its assignments properly assigned.

Steps to reproduce:
1) Declare $email_alt_body in an email template and put assignments in it.
2) Declare a new template object, set corresponding assignments, and pass it to the send_email() function along with the email template and your user ID.
3) Receive the email and note the lack of assignment in the message source.
henry 2009-09-28 17:18 This happens because the altbody is built using the same template object that was used to build the body. The same object cannot be used because the build method can only be called once because it clears its assignments after being called. Instead, a clone should be made of the template object and the altbody should be built from that clone.
241 Courses minor N/A 2009-09-21 14:51 2009-09-21 17:39 henry henry normal assigned none none 0.5.2 open 0 expired courses should be able to be reviewed if completed Currently, a user cannot review an expired course that he has completed. A user should be able to do this. He will still not be able to register for an expired course nor will he be able to complete it if he hasn't.
vcs 2009-09-21 15:20 issue#241 show expired courses in completed transcript only


Repository: /var/svn/trellis-dev, Revision: 8756, Committer: henry
vcs 2009-09-21 16:53 issue#241 allow expired courses to be reviewed if the registration status is complete, passed or failed


Repository: /var/svn/trellis-dev, Revision: 8757, Committer: henry
henry 2009-09-21 17:39 Reminder sent to: james|This has been completed and is ready for review.
240 Trellis Core/Base System minor N/A 2009-09-18 16:37 2009-09-21 15:25 henry henry normal assigned none none 0.5.2 open 0 change default character set for the database to utf8 Currently the default character set for the database is latin1. It should be changed to utf8 in order to extend support for different languages.
james 2009-09-21 15:25 we will need to change this within the trellis database schema class.
111 Administration/Reports minor N/A 2008-08-11 12:36 2009-09-15 07:52 henry carlos normal assigned none none 0.5.0 open 0 some modules in administration/reports cannot be customized these modules lack the necessary code to accept customizations inside of a *.client.php file:

actions
cataloginfo
certinfo
certrequirements
courseinfo
courseprogress
coursesections
coursexml
createcatalog
createcert
createcommunity
createcourse
createcoursesection
creategroup
createlocation
createprogram
createprogramsection
docinfo
fastfindmenu
global
grouporder
home
locationinfo
login
packageresponses
permissionmanager
permissionsetmanager
postbulletin
reginfo
scormpif
uploadcourse
uploaddoc
uploadscormpif
shaddy 2008-08-11 12:38 some of these are not designed for or not supposed to be customized as such
shaddy 2008-08-12 13:38 These modules will be excluded:
actions
fastfindmenu
global
home
carlos 2008-12-09 16:43 Based on the modules that are already customized, it seems like the eval(customize_snippet()) sentence would be added after defining the array with the fields for the module and before making the data (form, tables, etc).

As for the php modules, I have been doing some research using the modules that are already customizable and the eval(customize_module()) call should be made after the initialization of the module (collecting and setting the data). We also should notice that on browser modules we want this call to be made before we call get_data_rows, because that is a function that it is customized very often.

If you approve this, I will start proceeding with the changes.

james 2009-01-13 17:08 For the Info modules (courseinfo, cataloginfo, locationinfo), take a look at the programinfo module to see how a module is properly set up for customization. It uses the $submenu_layout array to build the tabs and tasks. Then the build_submenu function to assign the snippets.
vcs 2009-01-14 15:58 trellis issue#111 Info files updated for customization using new structure and build_submenu function


Repository: /var/svn/trellis-dev, Revision: 8533, Committer: carlos
vcs 2009-04-02 10:11 issue#111 submenu array was missing course progress and page event tabs


Repository: /var/svn/trellis-dev, Revision: 8583, Committer: james
carlos 2009-05-28 12:22 Reminder sent to: james|Is this issue solved? I checked the files and it looks good to me. Do you think we are still missing something?
james 2009-05-28 12:37 I looked quickly over some modules and found a couple that are still not updated:
communityinfo and bulletinfo - there may be others as well.
vcs 2009-05-28 16:11 issue#111 added customization to modules bulletininfo, communityinfo, groupinfo and programsectioninfo.


Repository: /var/svn/trellis-dev, Revision: 8632, Committer: carlos
carlos 2009-05-28 16:13 Reminder sent to: james|The modules I considered that needed to be able to be customized have been updated. I have excluded actions, fastfindmenu, global and home.
james 2009-05-29 13:18 These still do no appear to be completed. See my note 0000671 above
vcs 2009-06-01 15:37 issue#111 Added build_submenu structure to the info modules for bulletin, community, group and program section


Repository: /var/svn/trellis-dev, Revision: 8638, Committer: carlos
carlos 2009-06-02 13:58 Reminder sent to: james|The info modules are using the build_submenu function and have the customization code now. I have tested it and it seems to be working fine. Please, let me know if I am missing something.
vcs 2009-06-02 14:16 issue#111 fixed spacing, removed extra Task tab and added post and delete permissions


Repository: /var/svn/trellis-dev, Revision: 8649, Committer: james
vcs 2009-06-02 14:33 issue#111 moved the customize_module function after the submenu_layout array so that the submenu can be cusotmized, updated how it builds the submenu_layout array


Repository: /var/svn/trellis-dev, Revision: 8650, Committer: james
vcs 2009-07-24 02:58 issue#111 allowed coursesections and coursexml modules to be customized


Repository: /var/svn/trellis-dev, Revision: 8717, Committer: james
vcs 2009-07-31 11:24 issue#111 allow the catalog information to be customized


Repository: /var/svn/trellis-dev, Revision: 8728, Committer: james
vcs 2009-09-15 07:52 issue#111 updated home module so that it can be customized


Repository: /var/svn/trellis-dev, Revision: 8748, Committer: james
239 Certificates minor always 2009-09-01 17:09 2009-09-08 10:51 henry henry normal assigned none none 0.5.2 open 0 certificate prematurely awarded upon completion of one out of multiple requirements For a certificate with more than one requirement, the certificate is awarding upon completion of only one of those requirements. The certificate should only award upon completion of all requirements.

Steps to reproduce:
1) Create a certificate with more than one requirement
2) Complete one requirement only (other requirements left incomplete)
3) See that you have been awarded the certificate
henry 2009-09-01 17:22 This occurs due to a logical error in the TrellisCourse->check_certificate_completion() method. In the switch statement for the requirement type, it should "continue 3" instead of "continue 2" (One of the continues applies to the switch statement). In other words, if a requirement is not met, skip awarding of current certificate and check the next certificate.
vcs 2009-09-01 17:25 issue#239 debugged check_certificate_completion method


Repository: /var/svn/trellis-dev, Revision: 8741, Committer: henry
235 Courses minor always 2009-07-21 17:02 2009-08-31 17:00 henry henry normal assigned none none 0.5.2 open 0 completion of SCORM course not checking certificate completion I have a SCORM course and a certificate for which the requirement is the course. After passing the SCORM course, the certificate is not rewarded as it should be.

Steps to reproduce:
1) Upload a SCORM course with a single content organization consisting of a single Item element/node.
2) Create a certificate whose sole requirement is the SCORM course
3) Launch and pass the SCORM course (the SCO must send cmi.completion_status='completed' and/or cmi.success_status='passed')
4) Check that your registration status is 'passed' and note that the certificate was not awarded.
henry 2009-07-21 17:05 To resolve this issue, code to check the certificate completion should be added to the TrellisSCORM->score_course() method where the main conditional evaluates to true.

Note that this bug does not occur if there is more than one Item element/node specified in the content organizations because in this case, responsibility for managing the registration is given to the TrellisCourse class (instead of TrellisSCORM), which properly checks certificate completion.

henry 2009-07-21 17:40 Another way to resolve this issue, which seems to me to be the preferred solution, is to always use TrellisCourse to manage the registration regardless of the number of Items (which TrellisSCORM translates into course SCO objects). This would require further development for the TrellisSCORM API -- for example, proper use of the adlcp:completionThreshold element should be made when parsing the manifest, which it currently does not (it sets it to '0').
james 2009-07-21 20:44 It is preferred to called $course->score_course from the score_course method in the TrellisSCORM class each time.
vcs 2009-07-22 17:15 issue#235 scoring now handled exclusively by the TrellisCourse class


Repository: /var/svn/trellis-dev, Revision: 8714, Committer: henry
henry 2009-07-22 17:53 Note on revision 8714:

Updating the score and registration in the TrellisSCORM->score_course() method when there is only one object and package was removed due to redundancy. The score and registration status will still properly be set.
vcs 2009-08-12 17:26 issue#235 instantiated $auth which is needed by TrellisCourse->load_registration()


Repository: /var/svn/trellis-dev, Revision: 8729, Committer: henry
vcs 2009-08-12 17:39 issue#235 debugged -- TrellisCourse->load_registration() only takes one argument


Repository: /var/svn/trellis-dev, Revision: 8730, Committer: henry
vcs 2009-08-20 16:28 issue#235 only score the course if success_status is known or completion_status is set to completed


Repository: /var/svn/trellis-dev, Revision: 8731, Committer: henry
vcs 2009-08-31 16:56 issue#235 debugged SCORM 1.2 js/php api


Repository: /var/svn/trellis-dev, Revision: 8740, Committer: henry
henry 2009-08-31 17:00 Previous note should be deleted. The log message was supposed to be (and has been corrected) for issue 234 not 235.

219 Authoring Core/Base System minor have not tried 2009-05-18 06:11 2009-08-28 15:26 james james normal assigned none none open 0 Create initial authoring core Create a working initial core authoring system which includes functionality to build a book-type layout course as well as the interaction with the course objects.
vcs 2009-05-18 09:06 issue#219 add jquery.layout plugin to create the authoring tool interface


Repository: /var/svn/trellis-dev, Revision: 8608, Committer: james
vcs 2009-05-18 09:48 issue#219 added author default.tmpl


Repository: /var/svn/trellis-dev, Revision: 8609, Committer: james
vcs 2009-05-18 09:58 issue#219 added author global settings


Repository: /var/svn/trellis-dev, Revision: 8610, Committer: james
vcs 2009-05-18 15:28 issue#219 added course author access check


Repository: /var/svn/trellis-dev, Revision: 8613, Committer: james
vcs 2009-05-18 15:36 issue#219 added author login module and template


Repository: /var/svn/trellis-dev, Revision: 8614, Committer: james
vcs 2009-05-18 15:38 issue#219 added default author locations


Repository: /var/svn/trellis-dev, Revision: 8615, Committer: james
vcs 2009-05-18 16:11 issue#219 added action and task request variables


Repository: /var/svn/trellis-dev, Revision: 8619, Committer: james
vcs 2009-05-18 16:12 issue#219 insert html includes


Repository: /var/svn/trellis-dev, Revision: 8620, Committer: james
vcs 2009-05-18 16:50 issue#219 added initial author interface styling


Repository: /var/svn/trellis-dev, Revision: 8622, Committer: james
vcs 2009-05-18 16:52 issue#219 added jquery-ui


Repository: /var/svn/trellis-dev, Revision: 8623, Committer: james
vcs 2009-05-18 17:02 issue#219 added javascript to initialize author layout


Repository: /var/svn/trellis-dev, Revision: 8624, Committer: james
vcs 2009-05-19 13:24 issue#219 added home module


Repository: /var/svn/trellis-dev, Revision: 8626, Committer: james
vcs 2009-06-03 02:10 issue#219 added initial author class


Repository: /var/svn/trellis-dev, Revision: 8653, Committer: james
vcs 2009-06-04 07:01 issue#219 added basic authoring tool page layout


Repository: /var/svn/trellis-dev, Revision: 8660, Committer: james
vcs 2009-06-04 07:03 issue#219 added basic authoring tool page layout


Repository: /var/svn/trellis-dev, Revision: 8661, Committer: james
vcs 2009-06-05 08:59 issue#219 functionality updates to the authoring core


Repository: /var/svn/trellis-dev, Revision: 8663, Committer: james
vcs 2009-06-05 16:37 issue#219 updatwd some styling and core functionality


Repository: /var/svn/trellis-dev, Revision: 8665, Committer: james
vcs 2009-06-05 22:50 issue#219 updated more styling, optimized javascript, added content_panel module that returns html content via ajax


Repository: /var/svn/trellis-dev, Revision: 8668, Committer: james
vcs 2009-06-05 22:59 issue#219 author styling


Repository: /var/svn/trellis-dev, Revision: 8669, Committer: james
vcs 2009-06-08 05:40 issue#219 added author tables to database schema


Repository: /var/svn/trellis-dev, Revision: 8670, Committer: james
vcs 2009-06-08 05:50 issue#219 author front and backend optimizations, added tinymce editor for text objects


Repository: /var/svn/trellis-dev, Revision: 8671, Committer: james
vcs 2009-06-09 05:04 issue#219 more optimizations, ability to add packages and objects, new course object authoring method


Repository: /var/svn/trellis-dev, Revision: 8674, Committer: james
vcs 2009-06-09 09:04 issue#219 fixed class name from fill-in to math


Repository: /var/svn/trellis-dev, Revision: 8675, Committer: james
vcs 2009-06-09 10:08 issue#219 use tables to display object forms


Repository: /var/svn/trellis-dev, Revision: 8676, Committer: james
vcs 2009-06-09 17:37 issue#219 author optimizations and added page item editing


Repository: /var/svn/trellis-dev, Revision: 8678, Committer: james
vcs 2009-06-09 17:40 issue#219 fixed missing object code


Repository: /var/svn/trellis-dev, Revision: 8679, Committer: james
vcs 2009-06-10 00:14 issue#219 reload page when editing an item


Repository: /var/svn/trellis-dev, Revision: 8680, Committer: james
vcs 2009-06-12 23:58 issue#219 added base as template directories


Repository: /var/svn/trellis-dev, Revision: 8683, Committer: james
vcs 2009-06-19 09:35 issue#219 fix item parameters


Repository: /var/svn/trellis-dev, Revision: 8689, Committer: james
vcs 2009-06-19 14:28 issue#219 updated the way course objects are edited/created by allowing the object to create all of the form elements


Repository: /var/svn/trellis-dev, Revision: 8691, Committer: james
vcs 2009-06-22 09:33 issue#219 updated author core to reuse TrellisCourse class methods


Repository: /var/svn/trellis-dev, Revision: 8692, Committer: james
vcs 2009-06-25 06:28 issue#219 updated some course objects for authoring; adjusted classes to support authoring


Repository: /var/svn/trellis-dev, Revision: 8698, Committer: james
vcs 2009-07-02 09:11 issue#219 support course templates


Repository: /var/svn/trellis-dev, Revision: 8711, Committer: james
vcs 2009-07-02 12:56 issue#219 updated course contributor form and functionality


Repository: /var/svn/trellis-dev, Revision: 8712, Committer: james
vcs 2009-07-29 09:08 issue#219 added upload components to support resources


Repository: /var/svn/trellis-dev, Revision: 8721, Committer: james
vcs 2009-07-29 09:10 issue#219 debug


Repository: /var/svn/trellis-dev, Revision: 8722, Committer: james
vcs 2009-07-29 09:15 issue#219 debug


Repository: /var/svn/trellis-dev, Revision: 8723, Committer: james
vcs 2009-07-29 10:54 issue#219 added initial resource library


Repository: /var/svn/trellis-dev, Revision: 8724, Committer: james
vcs 2009-07-29 11:26 issue#219 added trellis resource path definition


Repository: /var/svn/trellis-dev, Revision: 8725, Committer: james
vcs 2009-07-30 11:22 issue#219 added authoring method


Repository: /var/svn/trellis-dev, Revision: 8726, Committer: james
vcs 2009-07-30 11:31 issue#219 added authoring method


Repository: /var/svn/trellis-dev, Revision: 8727, Committer: james
vcs 2009-08-27 10:04 issue#219 fixed additional bugs and added ordering of objects


Repository: /var/svn/trellis-dev, Revision: 8734, Committer: james
vcs 2009-08-28 09:28 issue#219 added button object to test packages


Repository: /var/svn/trellis-dev, Revision: 8737, Committer: james
vcs 2009-08-28 14:49 issue#219 added gallerycon plugin for tinymce and linked it to our resource library


Repository: /var/svn/trellis-dev, Revision: 8738, Committer: james
vcs 2009-08-28 15:26 issue#219 added course path uri


Repository: /var/svn/trellis-dev, Revision: 8739, Committer: james
238 Administration/Reports feature N/A 2009-08-21 14:05 2009-08-26 18:28 james james normal assigned none none 0.5.2 open 0 Update the packageresponses report to show answer-level choices Update the packageresponses report to show which answer the user chose for each object.
We also want to include a column for the xml_object_id as this will be helpful in determining the questions based on the id.
vcs 2009-08-21 14:07 issue#238 added xml_object_id column to package responses


Repository: /var/svn/trellis-dev, Revision: 8732, Committer: james
vcs 2009-08-26 18:28 issue#238 updated some interaction course objects to display results on the packageresponses report


Repository: /var/svn/trellis-dev, Revision: 8733, Committer: james
237 Events feature N/A 2009-08-04 17:44 2009-08-04 17:50 henry henry normal assigned none none 0.5.2 open 0 complete code for reminder event object This event finds all registrations that have not been completed within a parameter-set length of time and sends an e-mail to each user with the list of courses he has not completed.

Currently this object is incomplete and unusable.
236 Learning Center minor always 2009-07-24 10:07 2009-07-24 10:31 henry henry normal assigned none none 0.5.2 open 0 invalid link to learning center in welcome email I create a user in the learning center and when he receives the email, the link to the learning center is http:///home. [^] The link should be a valid link to the correct learning center.

Steps to reproduce:
1) Find a learning center which defines the EMAIL_WELCOME constant to core/global/templates/welcome.email (in other words, the default)
2) Create a new user and send him the welcome email.
henry 2009-07-24 10:10 I'm not sure if this is a bug, or if it is an issue that simply requires client customization. In welcome.email, the links is http://{$link}. [^] And in TrellisLMS->create_user(), it inserts into 'link' get_uri('lc_home'), which will return just the module name. It seems to me it should be inserting $_SERVER['HTTP_HOST'] . get_uri('lc_home') into 'link' instead.
vcs 2009-07-24 10:27 issue#236 changed the link to the learning center in the welcome email to be the Host: header instead of just the home module


Repository: /var/svn/trellis-dev, Revision: 8719, Committer: henry
henry 2009-07-24 10:31 Reminder sent to: james|This has been tested, is working and is ready for review.
231 Administration/Reports minor always 2009-06-18 16:36 2009-07-23 05:34 james james normal assigned none none 0.5.2 open 0 Open Seat count on new registration page for course/program section not always accurate If an administer is in a group and attempts to register or transfer a user for a course or program section, they see the Open Seat column for that particular section. This number shows the count of open seats available if the section has a maximum seat number set.

The count has the possibility to be incorrect because it is based on the number of users registered for the section that the current admin has access to (i.e. only users in groups that fall below them in the hierarchy). This should show the true number of open seats for all users in the current community regardless if the admin has access to them or not.
vcs 2009-06-23 19:36 issue#231 fixed open seat count when admin was in a group; made open seats column sortable


Repository: /var/svn/trellis-dev, Revision: 8694, Committer: james
vcs 2009-06-23 19:41 issue#231 removed unnecessary code for available seats


Repository: /var/svn/trellis-dev, Revision: 8695, Committer: james
vcs 2009-06-23 19:47 issue#231 available_seats debug


Repository: /var/svn/trellis-dev, Revision: 8696, Committer: james
vcs 2009-07-23 05:34 issue#231 fixed blank available seats from showing up


Repository: /var/svn/trellis-dev, Revision: 8715, Committer: james
233 Learning Center minor always 2009-07-13 14:08 2009-07-21 20:45 henry henry normal assigned none none 0.5.2 open 0 error when trying to filter documents by category In the documents module in the learning center, I want to filter the documents by its category using the category drop-down. When I do select a category, I receive the error "The search text is not valid" and no documents are listed. I should not receive this error and the selected document category should filter the results properly regardless of whether I enter search text or not.

Steps to reproduce:

1) Visit the documents page in the learning center.
2) Select a category to filter by in the drop-down.
3) Receive the error.
232 Trellis Core/Base System minor always 2009-06-26 12:41 2009-06-26 15:56 james carlos normal assigned none none 0.5.2 open 0 allow the resource gopher to handle upper case extensions Currently if a static file has an upper case extension, the correct mime type will not be recognized for the file. This is because the resource gopher only expects a lower case extension to match with the mime type.
1. create an html file with an upper case extension of HTML
2. place the .HTML file in the client's static data directory
3. access the .HTML file via a web browser

Result:
The file will display as plain text

Expected Result:
The file will display as an html page
vcs 2009-06-26 15:56 issue#232 Changed pattern so it is not case sensitive.


Repository: /var/svn/trellis-dev, Revision: 8705, Committer: carlos
226 Trellis Core/Base System feature N/A 2009-06-01 04:42 2009-06-25 08:01 james james normal assigned none none 0.5.2 open 0 Add Discussion feature add a discussion feature that will initially be used for course contributors to discuss course development on the course information page. This will help course contributors to collaborate and manage development by discussing and sharing ideas in Trellis. This is part of a larger feature to bring better course management to Trellis. Discussion will not be limited to course management, so we will need to account for different discussion types. Tables:
discussions: discussion_id, discussion_title, discussion_type, reference_id, comment_count, last_comment_date
discussion_comments: discussion_comment_id, discussion_id, user_id, comment_date datetime, comment_text, parent_comment_id, reply_count
vcs 2009-06-02 01:03 issue#226 added TrellisDiscussion class


Repository: /var/svn/trellis-dev, Revision: 8640, Committer: james
vcs 2009-06-02 01:21 issue#226 fixed utilities parameter in construct method


Repository: /var/svn/trellis-dev, Revision: 8641, Committer: james
vcs 2009-06-02 01:26 issue#226 added skip_count property


Repository: /var/svn/trellis-dev, Revision: 8642, Committer: james
vcs 2009-06-02 01:47 issue#226 added discussion to database schema and fixed some table aliases/names


Repository: /var/svn/trellis-dev, Revision: 8643, Committer: james
vcs 2009-06-02 01:50 issue#226 fixed discussions table index in schema


Repository: /var/svn/trellis-dev, Revision: 8644, Committer: james
vcs 2009-06-25 07:33 issue#226 fixed line breaks in discussion text


Repository: /var/svn/trellis-dev, Revision: 8700, Committer: james
vcs 2009-06-25 08:01 issue#226 updated javascript when replying to a comment


Repository: /var/svn/trellis-dev, Revision: 8702, Committer: james
161 Courses minor always 2008-10-17 14:07 2009-06-10 14:01 henry james normal assigned none none 0.5.2 open 0 certificate being awarded multiple times for the same course registration completion I have a course with 8 assessments. On the last assessment, I've included a scorecourse object:

 <object id="scorecourse" code="scorecourse" point_value="0.00">
     <param name="on_response">1</param>
 </object>

If the user's score is passing, he is awarded the certificate. The problem is that after the user has passed the course and has already been awarded his certificate, if he visits the page with the scorecourse object again it will award him another certificate for every page visit. It should not award him more certificates when he has already earned the certificate for the course.

Steps to reproduce:
1) Download the multiple_certificate_bug.xml and upload it as a course into a 0.5.2 learning center, setting it's course status to 'staging'.
2) Create a certificate whose sole requirement is this course.
3) Register into the course and visit the first page. Click submit -- you have passed the course and been awarded your certificate.
4) Visit 'My Certificates' page and note that your certificate has been awarded.
5) Go back and revisit the course (i.e. another http request to the course has been made)
6) Check 'My Certificates' and see that you have been awarded that courses' certificate again.
7) Repeat steps 5 - 6 to see that you receive additional certificates.
multiple_certificate_bug.xml (2 KB) 2008-10-17 14:18
scorecourse.php (2 KB) 2008-10-23 16:53
TrellisCourse.patch (1 KB) 2009-06-10 12:34
shaddy 2008-10-21 23:16 can you attach your patch
henry 2008-10-23 16:50 The patch is attached.
henry 2008-10-23 16:52 By the way, I also think it's a good idea that not only should score course check the registration before scoring the course, but the trellis course method should check as well before awarding the certificate (in TrellisCourse->check_certificate_completion()).
shaddy 2008-10-23 22:50 that is not a patch, you create a patch using diff.

check_certificate_completion is supposed to handle this, i'm not sure why it's letting people earn the cert over and over again, i wanted to look at your changes to see exactly what's happening.
james 2009-06-10 12:34 It appears as though the check_certificate_completion method does not check if the user currently has a valid certificate. A patch is attached that should fix this.
vcs 2009-06-10 12:37 issue#161 updated check_certificate_completion method to check if the user currently holds a valid certificate before awarding them a new one


Repository: /var/svn/trellis-dev, Revision: 8681, Committer: james
vcs 2009-06-10 14:01 issue#161 fixed the certificate check


Repository: /var/svn/trellis-dev, Revision: 8682, Committer: james
197 Administration/Reports minor always 2009-02-27 13:28 2009-06-10 11:21 henry carlos normal assigned none none 0.5.2 open 0 autocomplete for courses/users returns rows with inactive/disabled status On the catalog info page I added a course to the catalog (using autocomplete) without realizing it was expired. And since the page only shows active/inactive/staging courses, I couldn't remove it.

The autocomplete function for courses should not return inactive/expired/disabled courses. Or, if we find it desirable to return all courses regardless of status, perhaps we can add a parameter to indicate whether to return all statuses or only all active.

This applies to the autocomplete function for users as well, returning frozen/disabled/inactive users.

The pages that have course or user autocomplete are: catalog info, cert info, community info, course info, course section info and program info.
james 2009-03-05 16:28 the $lms->quick_search method should remain the same. adding additional filters before calling that method should prevent returning unwanted statuses. Try to add_filters to see if that process will work for your situation.
henry 2009-03-19 18:24 I would like to confirm that James' suggestion to use $utilities->add_filter works and is the preferred method to resolve this issue. Specifically for modules utilizing autocomplete, you can call $utilities methods by adding it as a json-encoded array in the getTrellisOperations javascript function. The format used is: ['object', 'method', 'parameter1', 'parameter2', etc.]

The issue now, I believe, is to determine on a module by module basis what the filters should be set to when returning courses/users.

james 2009-03-19 19:05 I have identified the following modules and the filters that should be added:

- cataloginfo
  -> course (active|staging|inactive)

- certinfo
  -> course (active|staging|inactive)
  -> program (no change)
  -> program section (no change)
  -> catalog (no change)
  -> certificate (no change)

- communityinfo
  -> course (active|staging|inactive)
  -> user (active|inactive)

- courseinfo
  -> course (active|staging|inactive)

- coursesectioninfo
  -> user (active|inactive)

- createuser
  -> group (no change)

- programinfo
  -> course (active|staging|inactive)

- userinfo
  -> group (no change)
169 Administration/Reports minor always 2008-10-29 18:41 2009-06-08 17:15 henry henry normal assigned none none 0.5.2 open 0 clicking next/previous pagination links cause the page to freeze with the 'processing...' bar in userbrowser I added a custom 'view_browser_actions' permission to the actions tab for the userbrowser (meaning you must possess the permission to view the tab) and logged in as a user whose permission set did not possess that permission. When I went to the userbrowser and clicked 'Next' to view more results, the page froze/hanged with the 'Processing...' bar.

Steps to reproduce:

1) Add the custom 'view_browser_actions' permission to the actions tab for the userbrowser
2) Log in as a user whose permission set does not possess that permission
3) Go to the userbrowser (make sure there are more than TRELLIS_AD_ROWS_PER_PAGE results) and click the 'Next' pagination link at the bottom
4) The page freezes/hangs.

Note that this applies to any browser with an actions tab, namely userbrowser, coursebrowser, regbrowser and userprogrambrowser.
henry 2009-06-03 17:22 This problem occurs because of three things: 1) actions.js is included regardless of whether the actions tab is visible, 2) clicking the page links will execute code in actions.js, and 3) code in actions.js is dependent on code in the actions tab.

Specifically, this bug is triggered in the action_items_refresh() function in actions.js, by this line:
    
    action_items = JSON.parse($.cookie("TRELLIS_action_items"));

The cookie's value is 'null' because it is only set when manipulating action items, which can only be done when the actions tab code is present. action_items_refresh() is called by change_page() which is a javascript function called when you click the page links.

henry 2009-06-03 17:23 The solution will be to pair the inclusion of actions.js with the actions tab code.
henry 2009-06-04 15:54 The assign_snippet() function in layout_functions.php will also be changed to accept an array for the permission, and will assign the snippet if the user has at least one of the permissions. This was decided, in this case, so that access to the Actions tab (which is controlled by build_submenu() and assign_snippet()) does not depend on a single and separate permission, but rather depends on having at least one of the permissions needed to perform any one of actions.
vcs 2009-06-08 16:40 issue#169 assign_snippet() now accepts an array of permissions


Repository: /var/svn/trellis-dev, Revision: 8673, Committer: henry
henry 2009-06-08 17:15 Regarding the decision to include actions.js with the actions tab code, actions.js was paired with actions.css in the $js_actions snippet that was included in the head section of the html. It's no problem to pair actions.js with the tab snippet, but actions.css cannot be put there because it must go in the head section. Therefore, we can still move actions.js, but we must keep actions.css as an html include (changing the name $js_actions to $css_actions possibly).

Another thought, however, is that perhaps we can modify build_submenu() to accept a new tab parameter, called 'includes'. This parameter would hold the name of a snippet to be included in the head section. This seems good to me because it's a way to pair tab content with the head section includes it needs, rather than having to assign the include separately. What do you think?
230 Administration/Reports minor always 2009-06-05 15:34 2009-06-05 16:39 henry henry normal resolution committed none none 0.5.2 fixed 0 courses can be deleted despite having a catalog dependency In the catalog info page for a catalog, the statistics show that there are 17 courses in the catalog. However, clicking on this link (which links to the course browser grouped by this catalog) and filtering by "Show All" (to include disabled courses) shows 16 instead of 17 courses. In other words, there is a missing/ghost course.

Investigation has revealed that it is possible to delete a course that is currently in a catalog, leaving an orphan row linking the no longer existing course to the catalog. You should not be able to delete a course that still has such a dependency.

Steps to reproduce:
1) Add a course to a catalog
2) Delete the course
3) Check the list of courses in the catalog and see that the catalog still is linked to the course
henry 2009-06-05 15:48 Or an alternative course of action is to simply fix it to delete the course from the catalog, instead of stopping the user and forcing him to remove it from the catalog first.
james 2009-06-05 16:11 let's prevent the course from being deleted if it belongs in a catalog
vcs 2009-06-05 16:31 issue 0000230 prevent course from being deleted if it belongs in a catalog


Repository: /var/svn/trellis-dev, Revision: 8664, Committer: henry
henry 2009-06-05 16:34 Reminder sent to: james|This has been tested, is working and is ready for review.
vcs 2009-06-05 16:39 issue#230 prevent course from being deleted if it belongs in a catalog


Repository: /var/svn/trellis, Revision: 127, Committer: james
229 Administration/Reports feature N/A 2009-06-04 14:53 2009-06-04 14:57 henry normal new none none 0.5.2 open 0 add ability for client administrator to add custom fields and customize administration reports I think the ability for a client administrator to add/remove custom fields (only for certain tables) and choose what columns to display in administration reports would be a useful feature.

Two or three interfaces (to manage custom fields and choose/arrange columns in a report) and one or two tables would need to be created, and parts of the templater class would be to be modified/rewritten.
228 Administration/Reports minor always 2009-06-03 15:03 2009-06-03 15:16 james james normal resolution committed none none 0.5.2 fixed 0 Course progress page incorrectly groups voided package results On the course progress page for a specific package the results are shown for each attempt the user has submitted for the package. The packages are grouped by the attempt count. This is an issue when attempts are voided. This results in duplicate attempt counts if the user attempts the package again.

We should distinguish the difference between these attempts by using the attempt count along with the attempt seed. This will group the report by attempt more effectively.
We will update the TrellisCourse->get_package_results method to take in an attempt seed as a parameter

Then fix the courseprogress report module to take advantage of this attempt_seed
vcs 2009-06-03 15:07 issue#228 fixed course progress page from incorrectly groups voided package results


Repository: /var/svn/trellis, Revision: 126, Committer: james
vcs 2009-06-03 15:16 issue#228 fixed course progress page from incorrectly groups voided package results


Repository: /var/svn/trellis-dev, Revision: 8659, Committer: james
160 Learning Center feature N/A 2008-10-09 16:09 2009-06-03 14:17 henry james normal resolution committed none none 0.5.2 fixed 0 allow customized/different menu mods based on community A learning center's menu mods are set/administered in the Trellis LMS System Administration interface. However, there is no other place/way that menu mods can be changed and consequently menu mods cannot be changed/customized on a per community basis.

This is desirable when a learning center has two or more communities who want to utilize differing menu mods or have custom names for them.

A possible solution is to have the customized/community based menu mods set in the client_config.php file and merged into or replacing the menu mods retrieved from get_setting('menu_mods') in global.snip.
shaddy 2008-10-22 23:13 need to talk about this with james
james 2009-03-09 14:32 This is confirmed.

I think the client settings module should be available in admin.
For any client, it will create default values. When you start to add communities, you can choose for it to use the default, or you can customize the values.
james 2009-03-11 21:47 The client settings module will be part of admin under the main heading System Settings. New permissions will be added (edit_client_settings, view_client_settings) also.
vcs 2009-03-11 21:52 issue#160 added blank clientsettings module
added permissions to db schema: edit_client_settings, view_client_settings
added System Settings menu to admin
fixed javascript issue with spaces in menu titles


Repository: /var/svn/trellis-dev, Revision: 8559, Committer: james
vcs 2009-03-11 23:33 issue#160 added community_id field to client_settings table


Repository: /var/svn/trellis-dev, Revision: 8562, Committer: james
james 2009-03-11 23:36 The following queries will be required to support the addition of the community_id field:
ALTER TABLE client_settings ADD COLUMN community_id SMALLINT(5) UNSIGNED NOT NULL;
ALTER TABLE client_settings DROP PRIMARY KEY, ADD PRIMARY KEY (setting_name, community_id);

vcs 2009-03-12 00:21 issue#160 default community_id to 0


Repository: /var/svn/trellis-dev, Revision: 8563, Committer: james
vcs 2009-03-12 00:49 issue#160 debug get_setting to only query the database if the client id is not _GB


Repository: /var/svn/trellis-dev, Revision: 8564, Committer: james
vcs 2009-03-12 16:34 issue#160 fixed client_settings table schema


Repository: /var/svn/trellis-dev, Revision: 8572, Committer: james
henry 2009-03-18 16:48 Due to revision 8563, the Trellis System Interface can no longer retrieve any settings. The logic of the get_setting function is such that if TRELLIS_CLIENT_ID == '_GB' it will not query the database for the setting, and the TRELLIS_CLIENT_ID of the System Interface is '_GB'.
vcs 2009-03-18 17:12 issue#160 fixed get_setting when the client_id is _GB


Repository: /var/svn/trellis-dev, Revision: 8577, Committer: james
vcs 2009-03-31 16:57 issue#160 typo in get_client method


Repository: /var/svn/trellis-dev, Revision: 8581, Committer: james
vcs 2009-03-31 23:27 issue#160 fixed form error when saving settings


Repository: /var/svn/trellis-dev, Revision: 8582, Committer: james
vcs 2009-04-04 03:26 issue#160 added module to set client settings within admin and updated system class to support communities


Repository: /var/svn/trellis-dev, Revision: 8585, Committer: james
vcs 2009-04-04 03:38 issue#160 removed unnecessary variable in clientsettings module and fixed get_settings to work with _GB


Repository: /var/svn/trellis-dev, Revision: 8586, Committer: james
vcs 2009-04-04 03:47 issue#160 updated the database schema to set the community id for client_settings
updated the system settings module to support the community id


Repository: /var/svn/trellis-dev, Revision: 8587, Committer: james
vcs 2009-04-04 04:00 issue#160 set the default community id to 1 in the get_setting function


Repository: /var/svn/trellis-dev, Revision: 8588, Committer: james
vcs 2009-04-04 04:01 issue#160 set the default community id to 1 in the get_setting function


Repository: /var/svn/trellis-dev, Revision: 8589, Committer: james
henry 2009-04-22 16:10 I tried adding a custom setting of data type array and after adding it, when trying to view the settings I received this error:

Error 38
unserialize(): Error at offset 0 of 440 bytes
In /var/www/trellis/0.5/core/admin/modules/clientsettings.php on line 125.

In system->create_setting(), it should decode the json formatted array and then serialize the resulting php array for insertion. It presently does neither of these steps and inserts the json formatted array directly into the database.

henry 2009-04-22 16:23 I'd like to correct my previous note. It appears that it should decode and serialize an array in the clientsettings module and not in the system class.
vcs 2009-04-22 17:16 issue#160 fixed error when adding a setting with data type of array


Repository: /var/svn/trellis-dev, Revision: 8603, Committer: james
vcs 2009-06-03 13:57 issue#160 updated the delete_setting method so that it will delete a community specific setting if the community is specified


Repository: /var/svn/trellis-dev, Revision: 8657, Committer: james
vcs 2009-06-03 14:13 issue#160 added a redirect after deleting a client setting to prevent deleting the same setting name from another community


Repository: /var/svn/trellis-dev, Revision: 8658, Committer: james
vcs 2009-06-03 14:17 issue#160 allow customized/different client settings based on community


Repository: /var/svn/trellis, Revision: 125, Committer: james
187 Modules minor always 2009-02-05 10:18 2009-06-03 13:43 carlos carlos normal resolution committed none none fixed 0 End and Start Date for Course Section can't be set on the create page of Course Section To set the End and Start Date for a Course Section we need to create the Section and then edit it. We should be able to set these fields on the Create Course Section page so we need to add them to the create form.
james 2009-02-05 12:53 add the start date, end date, start time, end time and days options to the createcoursesection module.
vcs 2009-05-29 14:15 issue#187 New fields have been added to the Create Course Section module.


Repository: /var/svn/trellis-dev, Revision: 8637, Committer: carlos
carlos 2009-05-29 15:07 Reminder sent to: james|The fields have been added and I have tested the solution. It is ready to be reviewed.
vcs 2009-06-03 13:37 issue#187 added labels to form fields


Repository: /var/svn/trellis-dev, Revision: 8656, Committer: james
vcs 2009-06-03 13:42 issue#187 added the start date, end date, start time, end time and days options to the createcoursesection module


Repository: /var/svn/trellis, Revision: 124, Committer: james
223 Administration/Reports feature N/A 2009-05-22 12:54 2009-06-03 13:29 james james normal resolution committed none none 0.5.2 fixed 0 show admin logo on admin login screen Update the Admin/Reports login page by showing the admin logo above the login form.
vcs 2009-05-22 13:27 issue#223 added client logo to admin login screen


Repository: /var/svn/trellis-dev, Revision: 8630, Committer: james
vcs 2009-06-03 13:29 issue#223 added client logo to admin login screen


Repository: /var/svn/trellis, Revision: 123, Committer: james
227 Trellis Core/Base System feature N/A 2009-06-02 17:25 2009-06-02 17:26 james james normal assigned none none 0.5.2 open 0 add a function that will format a datetime into a human readable elapsed string Elapsed formated datetimes will result in a time format like:
3 minutes ago
1 week ago
5 years ago

it should be capable of returning a formatted string in the following units:
seconds
minutes
hours
days
weeks
months
years

Also a maximum unit and value should be able to be set. If the max value is reached, then it will return an alternative format (i.e. June 2, 2009). The max unit is the largest unit that will be returned.
vcs 2009-06-02 17:26 issue#227 added format_time_elapsed function that formats a datetime into a human readable elapsed time format


Repository: /var/svn/trellis-dev, Revision: 8651, Committer: james
225 Administration/Reports minor always 2009-05-27 11:03 2009-06-02 13:13 henry henry normal assigned none none 0.5.2 open 0 TSV exported file not correctly formatted When the data in a browser is exported to TSV, the resulting file is incorrectly formatted. Some columns are separated by a comma instead of a tab.

This applies to and can be reproduced in any browser.
224 Trellis Core/Base System minor always 2009-05-26 10:48 2009-05-26 11:33 james james normal resolution committed none none 0.5.2 fixed 0 remove program completion date when an incompleted course is added to a program if a program is complete by the learner and an admin adds a brand new course to the program, the program completion date be removed in addition to setting the program status to incomplete. currently the completion date is left even though the program is incomplete. let's be consistent and remove the completion date as well since the program is no longer completed.
vcs 2009-05-26 11:31 issue#224 remove the completion when setting a user_program to incomplete


Repository: /var/svn/trellis-dev, Revision: 8631, Committer: james
vcs 2009-05-26 11:33 issue#224 remove the completion date when setting a user_program to incomplete


Repository: /var/svn/trellis, Revision: 122, Committer: james
222 Administration/Reports trivial always 2009-05-20 17:03 2009-05-20 17:52 henry henry low assigned none none 0.5.2 open 0 inconsistent sort of name column across browsers The "Name" column sorts by first name for the Registration and Certification Browsers, but by last name for the User Browser. I think consistency should be maintained by changing Registration and Certification Browser to sort by last name.
vcs 2009-05-20 17:51 issue#222

updated to sort name column using last_name, first_name


Repository: /var/svn/trellis-dev, Revision: 8629, Committer: henry
henry 2009-05-20 17:52 Reminder sent to: james|This has been tested, is working and is ready for review.
199 Administration/Reports minor always 2009-03-05 10:56 2009-05-19 10:21 carlos carlos normal resolution committed none none 0.5.2 fixed 0 Pagination problem in Transcripts page When we are under the user's transcripts page it shows all of the courses sections on the same page when it was supposed to show only 25 of them. createregistration_patch.patch (1 KB) 2009-03-05 16:22
james 2009-03-05 16:11 please attach a patch of the proposed change to fix this.
carlos 2009-03-05 16:23 I attached a patch with the changes that, in my opinion, help to solve the problem.
james 2009-03-05 16:31 please apply the patch with the exception of the commented out code
carlos 2009-03-05 17:21 issue#199 Patch applied to fix the problem with the pagination

Repository: /var/svn/trellis-dev, Revision: 8557, Committer: carlos
vcs 2009-05-19 10:02 issue#199 fixed pagination for new registrations (courses and programs)


Repository: /var/svn/trellis-dev, Revision: 8625, Committer: james
vcs 2009-05-19 10:08 issue#199 fixed pagination for new registrations


Repository: /var/svn/trellis, Revision: 117, Committer: james
170 Courses minor always 2008-11-06 17:05 2009-05-19 10:21 henry james normal resolution committed none none 0.5.2 fixed 0 portal path causing error when clicking 'resume' course on courses page For a portal with the path set (e.g. http://learning.net/france/), [^] on the 'My Courses' page, when clicking 'Resume' to resume a course, the following error appears:

Error 1002
The specified file could not be found.
In ../core/global/interfaces/request_handler.php on line 249.

And in the location box of the browser I see 'http://learning.net/france/france/course?course_id=1&page=1' [^] when the correct URI is 'http://learning.net/france/course?course_id=1&page=1'. [^]

Note: '/france' in 'http://learning.net/france/' [^] refers to the portal path, not a base module.

Steps to reproduce:
1) Visit a portal/learning center with the path set (e.g. http://learning.net/france/) [^]
2) Visit the 'courses' page by clicking on 'My Courses'.
3) Locate a course which you have previously opened and click 'Resume' to attempt to resume the course.
4) The error appears and the path shows up twice in the URI (e.g. http://learning.net/france/france/course?course_id=1&page=1) [^]
henry 2008-11-06 18:00 This bug occurs due to the combination of how the set_uri() function adds URIs to $TRELLIS_uri_table and the course_presenter module which sets a new trellis uri using another trellis uri.

When set_uri() is called, it prepends the module name with the constant TRELLIS_BASE_URI. Because the portal was accessed with a path, the path is part of TRELLIS_BASE_URI. So if the portal path were '/france', TRELLIS_BASE_URI would be set to '/france'. So doing set_uri('test_uri', 'home') will set $TRELLIS_uri_table['test_uri'] = '/france/home'.

What happens in course presenter is that it does set_uri('course_path', get_uri('lc_course', 'course_id/' . $course_id)). Since the 'lc_course' uri is already set to '/france/course', using it in set_uri() again will set 'course_path' to '/france/france/course'.

And when the user requests to resume the course, course_presenter will do a header('Location: ' . get_uri('course_path', 'page/' . $page, true)), which results in the error.
henry 2008-11-06 18:05 I propose to modify set_uri() so that when set_uri($uri_name, $mod) is called, it checks to see if $mod already exists in $TRELLIS_uri_table, and if so, do not prepend the uri with TRELLIS_BASE_URI.

vcs 2009-05-18 16:07 issue#170 updated set_uri function so that it checks to see if $mod already exists in $TRELLIS_uri_table, and if so, do not prepend the uri with TRELLIS_BASE_URI.


Repository: /var/svn/trellis-dev, Revision: 8618, Committer: james
vcs 2009-05-19 10:10 issue#170 updated set_uri function so that it checks to see if $mod already exists in $TRELLIS_uri_table, and if so, do not prepend the uri with TRELLIS_BASE_URI.


Repository: /var/svn/trellis, Revision: 118, Committer: james
218 Authentication/Security feature N/A 2009-05-15 12:26 2009-05-19 10:20 james james normal resolution committed none none 0.5.2 fixed 0 Allow a client setting to set the user_status of a user upon public learner registration Currently, when going through the public learner registration process, the user_status is not defined, therefore it always defaults to inactive.

I propose a client setting that will set the value of user_status if it is not defined. This will take place in the create_user method of the TrellisLMS class.
It will check if user_status is set, if not, it will then check for the created_user_status client setting for the user_status value. If there is none define there, then it will default to invalid.
vcs 2009-05-15 12:32 issue#218 added created_user_status client setting and a check for the client setting value when creating a user


Repository: /var/svn/trellis-dev, Revision: 8605, Committer: james
vcs 2009-05-15 12:53 issue#218 set the user's learner permission to 1 when registering


Repository: /var/svn/trellis-dev, Revision: 8606, Committer: james
vcs 2009-05-19 10:11 issue#218 added created_user_status client setting and a check for the client setting value when creating a user and set the user's learner permission when registering


Repository: /var/svn/trellis, Revision: 119, Committer: james
217 Action Objects minor always 2009-04-24 16:44 2009-05-19 10:20 henry henry normal resolution committed none none 0.5.2 fixed 0 error when trying to access this->db in action object I have an action object and in one of its methods I try to call this->db->select_field() and receive the following error:

Fatal error: Call to a member function select_field() on a non-object in ...

Steps to reproduce:
1) In any Trellis action object, try to access a member of this->db
2) Receive the error

Although the TrellisActionObject class (from which all Trellis action objects are extended) has db as a property and sets it if it is passed $db as an argument in the constructor, it appears $db is not being passed. A look into the new_class() function in core_functions.php confirms that when an action object is created, $db is not passed.

My question is: should new_class() pass $db by default, or should the action object only set this->db (from global $db) if it needs to use it?
henry 2009-04-24 16:50 Because objects are always copied by reference in PHP5, I think we should pass $db by default as it doesn't represent any real memory cost. What do you think?
james 2009-04-24 17:15 yeah, let's pass $db by default
vcs 2009-04-24 18:10 issue#217

pass $db as a parameter to the constructor when creating a new Trellis action object


Repository: /var/svn/trellis-dev, Revision: 8604, Committer: henry
henry 2009-04-24 18:15 Reminder sent to: james|This has been completed, is working and is ready for review.
vcs 2009-05-19 10:13 issue#217 pass $db as a parameter to the constructor when creating a new Trellis action object


Repository: /var/svn/trellis, Revision: 120, Committer: james
200 Administration/Reports feature N/A 2009-03-10 13:15 2009-04-17 18:04 henry henry normal resolution committed none none 0.5.2 fixed 0 feature to enhance customization ability of send_email() core function I have a custom welcome e-mail template that I'm using for a learning center, and I need user-specific information in the e-mail that is sent when a user is created from the createuser module. There are two possible solutions here:

1) Customize the modules that call send_email() to insert the user-specific custom information I need
2) Use the user id in the custom e-mail template to grab the user-specific information I need

I find solution 2 preferable as it contains the customization within the custom e-mail template without having to modify any modules. The problem with the send_email() function is that it overwrites the variable holding the user_id with a user_info array consisting of the user_name and email_address. Without the user_id, I cannot get any user-specific data.

I propose to modify send_email() to keep the user_id available so that the e-mail template can make use of it if need be.
james 2009-03-10 13:26 the send_email function can be updated to keep the user_id value and then pass the user_id value to the template.
vcs 2009-03-10 17:30 issue#200

if user_id is passed, save it instead of overwriting it


Repository: /var/svn/trellis-dev, Revision: 8558, Committer: henry
henry 2009-03-10 17:32 Reminder sent to: james|This has been modified and is ready for review.
vcs 2009-03-10 18:04 issue#200 resolved
send_email function - if user_id is passed, save it instead of overwriting it


Repository: /var/svn/trellis, Revision: 110, Committer: james
james 2009-03-10 18:05 resolution has been committed
vcs 2009-04-17 18:04 re-added code from revision 8558 (issue 0000200) that was lost in revision 8574


Repository: /var/svn/trellis-dev, Revision: 8602, Committer: henry
211 Administration/Reports feature N/A 2009-04-04 13:51 2009-04-16 02:15 james james normal assigned none none 0.5.2 open 0 add a row to data tables that return no results with a "No results" message When a data table (i.e. user browser) has an empty result, the data table shows the header row (#, user id, username, etc), but no table rows after that. I'm requesting that a message be shown indicating there is no results. This message could be customized as well if necessary. For this, the make_data_table function will be modified and a new key will be returned which contains the html when there is no result. The "No result" message will be able to be customized through the $table_options parameter
vcs 2009-04-04 14:04 issue#211 modified make_data_table function to generate a no results html row


Repository: /var/svn/trellis-dev, Revision: 8592, Committer: james
vcs 2009-04-15 16:48 issue#211 added the no result variable in the snip to use when no results are returned


Repository: /var/svn/trellis-dev, Revision: 8595, Committer: james
vcs 2009-04-16 02:15 issue#211 added the no result variable in the snip to use when no results are returned


Repository: /var/svn/trellis-dev, Revision: 8601, Committer: james
216 Administration/Reports minor have not tried 2009-04-15 16:43 2009-04-16 02:12 james james normal assigned none none 0.5.2 open 0 add permissions to admin data table columns to prevent unaccessible linking Some admin data tables, like the User Browser, should require a specific permission so that only users who have permission to view/access the information will be able to access the link.

One example of this is the User Browser data table and the Group column. If an admin does not have access to view the group information, then that link should not be used, only the value should be shown.

vcs 2009-04-15 16:52 issue#216 added required permissions to the group column


Repository: /var/svn/trellis-dev, Revision: 8596, Committer: james
james 2009-04-15 17:16 I updated this issue to apply to data table column links
vcs 2009-04-15 17:25 issue#216 added make_data_table ability to set a link_permission


Repository: /var/svn/trellis-dev, Revision: 8597, Committer: james
vcs 2009-04-15 17:28 issue#216 added link permissions to columns that link to other modules


Repository: /var/svn/trellis-dev, Revision: 8598, Committer: james
vcs 2009-04-16 01:18 issue#216 reverted make_data_table, functionality already exists to check/process link_permission


Repository: /var/svn/trellis-dev, Revision: 8599, Committer: james
vcs 2009-04-16 02:12 issue#216 added link permissions to data table links


Repository: /var/svn/trellis-dev, Revision: 8600, Committer: james
212 Administration/Reports feature N/A 2009-04-04 15:29 2009-04-15 17:51 james james normal assigned none none 0.5.2 open 0 allow .client files the ability to customize data table options Give the ability to customize data table options for data tables. Currently the table options are defined and passed directly in the .snip file and there is no way to customize these options using a .client file.
208 Learning Center minor N/A 2009-03-25 13:52 2009-04-15 17:50 henry henry normal resolution committed none none 0.5.2 fixed 0 auto-register when self_course_registration is set to true My learning center has the setting self_course_registration set to true. But when I click 'Launch' on the courseinfo page (for a course I'm not regsitered in), I receive an error that I am not registered in the course.

If self_course_registration is set to true, it should auto-register me in the course instead of giving me an error.
vcs 2009-03-25 14:11 issue#208

auto-register user in course if he's not already registered and self_course_registration is set to true


Repository: /var/svn/trellis-dev, Revision: 8580, Committer: henry
henry 2009-03-25 14:12 Reminder sent to: james|This has been tested, is working and is ready for review.
vcs 2009-04-15 17:50 issue#208 resolved
auto-register user in course if he's not already registered and self_course_registration is set to true


Repository: /var/svn/trellis, Revision: 116, Committer: james
213 Action Objects minor always 2009-04-08 15:58 2009-04-15 17:48 henry henry normal resolution committed none none 0.5.2 fixed 0 radio buttons not working properly in action object I have a custom action object which has several radio buttons from which the user can choose. No matter what radio button is selected by the user, the value is always set to the last radio button.

Steps to reproduce:
1) Find/create an action object which lets the user select from several radio buttons
2) Perform the action and note that no matter which radio button you select, it is always set to the value of the last radio button

Note: This applies to any form element in array form, which is to say it has several input elements each with the same name. For example, three input texts each with the name 'color[]'. The most common elements in array form are radio buttons and checkboxes.
henry 2009-04-08 16:05 This occurs because the way the form data is submitted. When you click the 'Perform' button, it calls the perform_action() function (located in core/global/resources/script/actions.js). This function cycles through each <input> element and creates a javascript object with the property name set to the input name and the property value set to the input value. Because radio buttons and checkboxes have several input elements with the same name, only the last iteration of an input element name will be recorded in the javascript object.

Please see line 221 in the actions.js file, in the perform_action() function.

vcs 2009-04-13 15:41 issue#213

- added form_data_to_object javascript function, which takes the data from a form and converts it into a javscript object
- updated perform_action function to utilize form_data_to_object


Repository: /var/svn/trellis-dev, Revision: 8593, Committer: henry
henry 2009-04-13 17:20 Reminder sent to: james|This has been tested, is working and is ready for review. Also, please let me know if you think of a better function name and/or would like changes to the syntax.

vcs 2009-04-15 17:48 issue#213 resolved
- added form_data_to_object javascript function, which takes the data from a form and converts it into a javscript object
- updated perform_action function to utilize form_data_to_object


Repository: /var/svn/trellis, Revision: 115, Committer: james
215 Trellis Core/Base System text N/A 2009-04-15 15:24 2009-04-15 17:44 henry henry normal resolution committed none none 0.5.2 fixed 0 grammatical error/typo for TRELLIS_E_COURSE_NOT_EMPTY error message The error message for TRELLIS_E_COURSE_NOT_EMPTY contains a grammatical error or typo. The word "remove" should be "removed".

"That course cannot be remove because dependencies still exist."

Should be:

"That course cannot be removed because dependencies still exist."
vcs 2009-04-15 15:32 issue#215

fixed grammatical errors for TRELLIS_E_COURSE_NOT_EMPTY and TRELLIS_E_MAX_ATTEMPTS


Repository: /var/svn/trellis-dev, Revision: 8594, Committer: henry
henry 2009-04-15 15:33 Note that I also changed "reach" to "reached" in the sentence "You have reach the maximum number of attempts allowed." for TRELLIS_E_MAX_ATTEMPTS.
vcs 2009-04-15 17:43 issue#215 resolved
fixed grammatical errors for TRELLIS_E_COURSE_NOT_EMPTY and TRELLIS_E_MAX_ATTEMPTS


Repository: /var/svn/trellis, Revision: 114, Committer: james
214 Administration/Reports major always 2009-04-09 15:11 2009-04-09 15:24 veasna normal new none none 0.5.2 open 0 User Passwords This version of Trellis has encrypted users' passwords so that even admins are unable to view the passwords. This security feature presents a problem for admins who need to log in as a user to troubleshoot problems within that user's account. As is, there are only two options for an admin to log in as a user without knowing their password.

1. Ask the user for their password.
2. Reset the user's password to something generic like "123456" and then ask them to go back in and change it under "My Account" once the problem has been resolved.

My suggested solutions to the problem:
1. Develop a universal password only known and used by admins to get into users' accounts without having to know their actual password.
2. Create a permission setting that allows only certain admins to view users' passwords.
3. Create a special login page for admins (on a secured site where admins must first log in themselves) where they can log into any user's account using only the user's username without entering a password.

I'm not a developer/programmer, so obviously I know that my suggestions may not be possible without some major developing and technical magic.

Please feel free to make other suggestions w/o responding to mine.

Veasna
203 Events feature N/A 2009-03-11 21:57 2009-04-04 12:12 james james normal assigned none none 0.5.2 open 0 Add event browser/info pages to System Settings in Trellis Admin Allow admins with the proper permissions to view/edit events from the admin site. This will consist of 2 modules:
- event browser (shows all events, their info and their statuses)
- event info (shows a specifc event's details and allows editing the event information if scheduled run date is in the future)

New permissions will be required to access these modules:
view_event_browser
view_event_info
edit_event_info

The event browser will be accessible from the System Settings menu.
vcs 2009-03-11 21:59 issue#203 added blank eventbrowser module
added new permissions to db schema: view_event_browser, view_event_info, edit_event_info
added Event Browser to System Settings menu


Repository: /var/svn/trellis-dev, Revision: 8560, Committer: james
vcs 2009-03-11 22:00 issue#203 edited menu item to say Browse Events


Repository: /var/svn/trellis-dev, Revision: 8561, Committer: james
vcs 2009-04-04 12:11 issue#203 added initial eventbrowser module


Repository: /var/svn/trellis-dev, Revision: 8590, Committer: james
vcs 2009-04-04 12:12 issue#203 fixed date issue when calling get_events


Repository: /var/svn/trellis-dev, Revision: 8591, Committer: james
210 SCORM minor sometimes 2009-04-03 15:40 2009-04-03 15:43 james james normal resolution committed none none 0.5.2 fixed 0 Undefined variable: db when score_course is called In the TrellisSCORM class, there is an unrecognized variable $db in the score_course method. This is preventing scoring the course in some cases.

The $db should be changed to $this->db
vcs 2009-04-03 15:41 issue#210 Undefined variable: db


Repository: /var/svn/trellis-dev, Revision: 8584, Committer: james
vcs 2009-04-03 15:42 issue#210 resolved
Undefined variable: db


Repository: /var/svn/trellis, Revision: 113, Committer: james
209 Certificates feature N/A 2009-03-31 16:18 2009-03-31 16:19 henry henry normal assigned none none 0.5.2 open 0 create certificate -- add feature to award the certificate to users who already meet the requirement When a new certificate is created, an option to award the certificate to users who already meet the certificate's requirements would be useful. We could use a checkbox labeled "Retroactively award certificate" or something similar, with the default having the checkbox checked.
207 Trellis Core/Base System minor have not tried 2009-03-20 19:53 2009-03-20 20:19 james james normal resolution committed none none 0.5.2 fixed 0 user's program is checked for completeness and is incomplete, remove the completion date When a user's program is checked for completeness, currently the user_program_status is set to incomplete. The completion_date is not changed. For programs that may have been previously completed, this is an issue because the user's program could result in an incomplete status with a completion date.

This could also lead to issue when issuing a certificate which a program is a requirement for.
The check_program_completion should be adjusted to set the completion_date to 0000-00-00 00:00:00 when it find the program to be incomplete.
vcs 2009-03-20 19:54 issue#207 zero out the completion date to when checking for a user's program completion and the program is incomplete


Repository: /var/svn/trellis-dev, Revision: 8579, Committer: james
vcs 2009-03-20 20:19 issue#207 resolved
zero out the completion date to when checking for a user's program completion and the program is incomplete


Repository: /var/svn/trellis, Revision: 112, Committer: james
206 Certificates minor always 2009-03-20 13:27 2009-03-20 13:32 james james normal resolution committed none none 0.5.2 fixed 0 Query error when updating a certificate's expiration date I received an error when a certificate that the user already had was awarded to the user and in turn extended the expiration date of the certificate. Here's the query error I received:

Example error produced:
SteamDB->query(UPDATE users_certificates SET expiration_date = '2014-03-20 13:22:10' WHERE user_id = '1604' certificate_id '3'): the query could not be completed; You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'certificate_id '3'' at line 1; /var/www/trellis/0.5/core/global/classes/SteamDB_to_TrellisDB.php @ line 186;

It looks like the culprit is a missing AND and = in the query statement on line 1113 of the TrellisCourse class.
vcs 2009-03-20 13:30 issue#206 fixed query error in check_certificate_completion method


Repository: /var/svn/trellis-dev, Revision: 8578, Committer: james
vcs 2009-03-20 13:32 issue#206 resolved
fixed query error in check_certificate_completion method


Repository: /var/svn/trellis, Revision: 111, Committer: james
205 Administration/Reports minor always 2009-03-12 14:17 2009-03-16 11:02 james james normal assigned none none 0.5.2 open 0 autocomplete inputs should only return items from the current community Autocomplete input fields should only return items (courses, programs, users, etc) specific to the current community and not all items.

For example:
When setting up a program, the admin needs to add courses to it.
Using the autocomplete form, all courses in the system appear when typing starts. It should only return courses that are part of that community and not all courses.

This requires that the quick_search method is updated to only return items from the current community.
vcs 2009-03-12 14:18 issue#205 only return courses from the current community via the autocomplete form


Repository: /var/svn/trellis-dev, Revision: 8571, Committer: james
james 2009-03-16 11:02 issue has been updated to globally fix all items returned by auto-complete input fields.
166 Action Objects minor always 2008-10-22 17:04 2009-03-13 15:06 james henry normal assigned none none 0.5.2 open 0 actions should be shown based on permission When viewing the drop-down of available actions an admin browser, all actions that are defined show, regardless of the current user's permissions. Not only are they shown, but any user is able to perform the action.

Actions should be permission based so that we can control what actions are actually displayed in the action drop-down.

1. Log into the admin/reports as someone who does not have the edit_registration_info permission in their assigned permission set
2. view the registration browser
3. click the actions tab
4. select 1 or more registrations
5. select edit status from the actions drop-down
6. select a new status and perform the action

actual result:
the registration status is updated

expected result:
edit status shouldn't be an option to select from the drop down
shaddy 2008-10-22 22:59 how can we do this?
carlos 2008-12-09 11:59 On core/amin/modules/userbrowser.php, lines 110-131. I get the user information to get his permission_set and then I switch over it and depending on the permission I display one drop-down menu or another. This would be a sample code.

global $lms;
$user_info = '';
if (isset($_SESSION['TRELLIS_user_id']) and $_SESSION['TRELLIS_user_id'])
{
    $user_info = $lms->get_user($_SESSION['TRELLIS_user_id']);
    print_r ($user_info);
   
}
$filter_fields = array('u.user_id' => 'User ID', 'u.username' => 'Username', 'u.last_name' => 'Last Name', 'u.first_name' => 'First Name', 'u.email_address' => 'Email Address', 'prms.permission_set_name' => 'Permission Set');
switch($user_info ['permission_set_id'])
{
    case 1:
        $action_options = array('register' => 'Register', 'editstatus' => 'Edit Status', 'changegroup' => 'Change Group/Permissions');
    break;
    case 0:
        $action_options = array('register' => 'Register', 'editstatus' => 'Edit Status');
        break;
    default:
        $action_options = array('register' => 'Register');
        break;
}

james 2008-12-09 12:21 The issue is more specific than what permission set a user has. It should be related to the actual actions available and what permission a user must have in order to perform each individual action. Plus we can not predict what permission as user has based on the permission id only.
james 2008-12-09 12:45 Here's what I was thinking:
In the admin browsers, an key/value array is created which contains the value, title and permission required to perform the action:
$available_actions = array(
   array('value' => 'editstatus',
         'title' => 'Edit Status',
         'permission' => 'edit_user_info'),
   array('value' => 'changegroup',
         'title' => 'Change Group',
         'permission' => 'edit_user_info')
);

This array is then run through a function that will loop through the available actions and check if the current user has the permission required. The function will then return an array of action options.

ex:
$action_options = get_action_options($available_actions);

so if I had the edit_user_info permission, the result would be:
$action_options = array('editstatus' => 'Edit Status', 'changegroup' => 'Change Group');

if I didn't:
$action_options = array();
carlos 2008-12-09 13:22 Do you think it would be a good idea to have the permissions field of the array as another array? This way, the same action could be accessible from several permissions.

Ex.
$available_actions = array(
   array('value' => 'editstatus',
         'title' => 'Edit Status',
         'permission' => array('edit_user_info')),
   array('value' => 'changegroup',
         'title' => 'Change Group',
         'permission' => array('edit_user_info','change_group_users'))
);

The same function that you mentioned that would loop through the available actions would check if the user has any of those permissions required, looping through the permissions array also. We could also think about what if an action requires more than one permission. Should we have them in the same cell of the permissions array separated by commas? Like this.

Ex.
$available_actions = array(
   array('value' => 'editstatus',
         'title' => 'Edit Status',
         'permission' => array('edit_user_info,change_group_users')),
   array('value' => 'changegroup',
         'title' => 'Change Group',
         'permission' => array('edit_user_info','change_group_users'))
);

This would mean that you can only edit the status if you have the edit_user_info permission and the change_group_users permission. On the other hand, you can only change the group if you have edit_user_info or change_group_user permission, but you do not need both.
henry 2009-03-11 17:39 I agree with James' solution. Regarding Carlos' suggestions, evaluating multiple permissions for an action is not necessary because Trellis' object oriented design makes only one permission necessary for any given task.
james 2009-03-11 18:00 proceed to create the get_action_options function and update the $available_actions array for each necessary browser module
vcs 2009-03-12 11:42 issue#166

added get_action_options function that checks a list of actions against the user's permissions


Repository: /var/svn/trellis-dev, Revision: 8565, Committer: henry
vcs 2009-03-12 12:03 issue#166

debugged


Repository: /var/svn/trellis-dev, Revision: 8566, Committer: henry
vcs 2009-03-12 12:06 issue#166

debugged


Repository: /var/svn/trellis-dev, Revision: 8567, Committer: henry
vcs 2009-03-12 12:09 issue#166

modified coursebrowser, userbrowser, regbrowser and userprogrambrowser to utilize get_action_options for permission-based actions


Repository: /var/svn/trellis-dev, Revision: 8568, Committer: henry
vcs 2009-03-12 12:13 issue#166

fixed typo with variable name


Repository: /var/svn/trellis-dev, Revision: 8569, Committer: henry
vcs 2009-03-13 10:23 issue#166

fixed to correct permission name for action


Repository: /var/svn/trellis-dev, Revision: 8573, Committer: henry
vcs 2009-03-13 15:06 issue#166

fixed to correct permission name for action


Repository: /var/svn/trellis-dev, Revision: 8576, Committer: henry
204 Trellis Core/Base System minor always 2009-03-12 13:43 2009-03-12 13:50 james james normal assigned none none 0.5.2 open 0 create_registration method issue with courses in a program and course expiration dates When creating a registration for a user in a program, the create_registration method get's all the non-expired and active/inactive/staging courses so that it can register the user into them.

The way it is retrieving these courses though is incorrect. It gets the courses that have no expiration date AND their expiration date is in the future OR their status is active, inactive or staging.

What it is expected to do is:
get the courses that have no expiration date or their expiration date is in the future AND the course status is active, inactive or staging.
vcs 2009-03-12 13:47 issue#204 updated create_registration method to correctly grab all valid courses in a program


Repository: /var/svn/trellis-dev, Revision: 8570, Committer: james
james 2009-03-12 13:50 this has been tested and is available for review
202 Action Objects feature N/A 2009-03-11 17:15 2009-03-11 17:34 henry normal confirmed none none 0.5.2 duplicate 0 restrict access to actions/actions objects through use of permissions I want to restrict access to action objects for an administrator group. Currently there is no way to do so. I suggest to allow each action object the option of requiring a permission to access it, defaulting to allow access if no permission specified.

This applies to the course browser, registration browser, user browser and user program browser (and possibly course section browser, but currently that module does not utilize bulk actions).
james 2009-03-11 17:18 I believe this is a duplicate of 0000166, please view that issue and the discussion that towards a solution
198 Action Objects feature N/A 2009-03-03 20:26 2009-03-03 20:27 james james normal assigned none none 0.5.2 open 0 Remove the 200 item limit on selected items for bulk actions Currently, the browsers only support up to 200 items to be selected at a single time. I propose this limit is lifted since it requires the user to perform actions in batches rather than 1 request.
vcs 2009-03-03 20:27 issue#198 remove the 200 item limit on selected items for bulk actions


Repository: /var/svn/trellis-dev, Revision: 8556, Committer: james
196 Action Objects feature N/A 2009-02-23 14:15 2009-02-23 14:17 james james normal assigned none none 0.5.2 open 0 Automatically clear selected action items when clicking done Currently selected items in an admin browser do not get cleared until the user actually clicks clear selected items link under the actions tab.

It is more common to want to clear those selected items after your action has been processed so that these selected items do not conflict with any future selections you may want to make.

I suggest we automatically clear the select after the user clicks the Done button.
vcs 2009-02-23 14:17 issue#196 automatically clear the selected items when clicking the "Done" button


Repository: /var/svn/trellis-dev, Revision: 8555, Committer: james
195 SCORM minor always 2009-02-18 22:41 2009-02-18 22:44 james james normal resolution committed none none 0.5.2 fixed 0 Not all SCORM resources/dependencies are being copied when a SCORM PIF is uploaded Some files there were defined in an imsmanifest.xml file where not copied to when the SCORM PIF was uploaded. An example of an imsmanifest is attached (this imsmanifest was generated by Lectora).

From what I see, Trellis currently goes through the organization items identifierref and it's dependencies. It misses going through the dependencies dependencies (if any).
imsmanifest.xml (171 KB) 2009-02-18 22:41
vcs 2009-02-18 22:42 issue#195 process all resources and their dependencies found in the imsmanifest XML


Repository: /var/svn/trellis-dev, Revision: 8554, Committer: james
vcs 2009-02-18 22:44 issue#195 resolved
process all resources and their dependencies found in the imsmanifest XML


Repository: /var/svn/trellis, Revision: 109, Committer: james
189 Administration/Reports minor always 2009-02-17 14:13 2009-02-18 19:52 james james normal resolution committed none none 0.5.2 fixed 0 sorting columns on the choose section page produces an error When sorting by Instructor, Location, Start Date, or End Date on the choose course section page in admin, an error is produced. 1. go to admin/reports
2. click on a user_id to view and view the transcript
3. locate a registered course that contains a course section
4. click on the Choose Section link in the Course Section column
5. attempt to sort by Instructor, Location, Start Date, End Date
6. receive error:

Error 1030
The user is not registered in that course.
This is caused by the utility filters set before running the get_registration method on line 246 of the createregistration.php module.
james 2009-02-17 14:15 this is confirmed, the utilities don't apply to the get_registration method, rather to the get_course_sections method
vcs 2009-02-17 14:32 issue#189 rearranged utility methods so that the order is applied to the appropriate method


Repository: /var/svn/trellis-dev, Revision: 8545, Committer: james
vcs 2009-02-18 19:51 issue#189 returned error message to 'The user is not registered in that course.'


Repository: /var/svn/trellis-dev, Revision: 8553, Committer: james
vcs 2009-02-18 19:52 issue#189 resolved
rearranged utility methods so that the order is applied to the appropriate method when sorting


Repository: /var/svn/trellis, Revision: 108, Committer: james
181 Administration/Reports minor always 2009-01-15 12:09 2009-02-18 19:44 henry henry normal resolution committed none none 0.5.2 fixed 0 group assignment not working when adding communities to a user On the userinfo page, I click the 'Add/Remove Communities' task in order to add that user to additional communities. On this page, the "Place user in _______ group upon add." select box is empty, so that when I click the button to add the community, it defaults the user to being in the 'Learner' group with is_learner set to 0.

The select box should not be empty and it should allow me to select what group to place the user in, in the added community. Also, I think is_learner should default to '1' because it does not make sense to add a user to a community and then proceed to deny him access. The only exception is a user who you want to give admin access to but deny learner access, which I do not believe happens often.
henry 2009-01-27 13:12 Instead of having learner access automatically set, what we will do is add Administrator, Learner and Content Review checkboxes as well as a Permissions Set dropdown to give greater control and make it easier when adding communities to a user.
vcs 2009-02-18 16:49 issue#181

added ability to set access info upon adding communities to a user, also updated style


Repository: /var/svn/trellis-dev, Revision: 8549, Committer: henry
henry 2009-02-18 16:57 Reminder sent to: james|This is tested, is working and is ready for review.

A question though: do you think we should force the user to explicitly select a group, or assume that leaving the group field blank means default to learner? The current behaviour is the latter.
james 2009-02-18 17:25 Have the module get the group name of id 3 and then pre-populate the group_name and group_id input values.
vcs 2009-02-18 17:36 issue#181

made learners the default group to place user when adding communities


Repository: /var/svn/trellis-dev, Revision: 8550, Committer: henry
henry 2009-02-18 17:37 The module now defaults the group_id to '3' and the group_name to 'learners'.
vcs 2009-02-18 19:44 issue#181 resolved
added ability to set access info upon adding communities to a user, also updated style


Repository: /var/svn/trellis, Revision: 107, Committer: james
194 Administration/Reports feature N/A 2009-02-18 18:36 2009-02-18 19:42 james james normal resolution committed none none 0.5.2 fixed 0 add friendly message on SCORM PIF tab that indicates a file can only be uploaded if it is not active A friendly message on the SCORM PIF page would be helpful for the user to understand what they have to do in order to upload a new SCORM PIF file and the course status is active.

Currently, when the course is active and you upload a SCORM PIF file, an error page is displayed with the following message:

Error 1040
You are not permitted to access this feature.

We should have a message indicating that a SCORM PIF can not be uploaded since the course is currently active.
vcs 2009-02-18 19:31 issue#194 added a message on the SCORM PIF page if the course is active indicating that a PIF can not be uploaded in this state


Repository: /var/svn/trellis-dev, Revision: 8552, Committer: james
vcs 2009-02-18 19:42 issue#194 resolved
added a message on the SCORM PIF page if the course is active indicating that a PIF can not be uploaded in this state


Repository: /var/svn/trellis, Revision: 106, Committer: james
193 SCORM minor always 2009-02-18 18:25 2009-02-18 19:41 james james normal resolution committed none none 0.5.2 fixed 0 Updating a SCORM PIF of an existing course with html in the description(s), results in an invalid XML error When updating an existing SCORM course's PIF file and the course has a html in either the short or regular description values, then an Invalid XML error occurs.
This is due to there being plain text html placed in the short_description or description nodes of the XML.
Since the description nodes can contain XML, I suggest we use CDATA to ignore the Character Data within these nodes in the TrellisSCORM->create_course_from_pif method.
vcs 2009-02-18 18:31 issue#193 added CDATA syntax for the short_description and description nodes of the generated Trellis SCORM XML string in create_course_from_pif


Repository: /var/svn/trellis-dev, Revision: 8551, Committer: james
vcs 2009-02-18 19:41 issue#193 resolved
added CDATA syntax for the short_description and description nodes of the generated Trellis SCORM XML string in create_course_from_pif


Repository: /var/svn/trellis, Revision: 105, Committer: james
191 Trellis Core/Base System feature N/A 2009-02-18 10:57 2009-02-18 15:34 james normal confirmed none none open 0 add course/program section name fields for course and program sections A name for the sections would be helpful in identifying them rather than just by their id.
192 Document Management System minor always 2009-02-18 15:06 2009-02-18 15:34 james james normal resolution committed none none 0.5.2 fixed 0 Error when updating an existing document file The following error occurs when attempting to replace and existing document file.

Error 32: Invalid argument supplied for foreach()
core/global/classes/TrellisDMS.php on line 343
1. log into admin/reports
2. Documents->Browse
3. Select any document id
4. Click on the Update File task
5. Browse for a new file to replace the existing
6. Click Update Information

expected result:
document will be updated with the new file

actual result:
error is displayed
It appears as though the wrong action is being sent when updating a new file. The 'update_file' value should be used for the action, but instead the 'update' action is being used.

We will also need to add the enctype="multipart/form-data" attribute to the form to properly handle files.
vcs 2009-02-18 15:08 issue#192 the correct action is now being used when updating document information and update the document file. the proper form attributes are also being used to handle file uploads.


Repository: /var/svn/trellis-dev, Revision: 8548, Committer: james
vcs 2009-02-18 15:34 issue#192 resolved
the correct action is now being used when updating document information and update the document file. the proper form attributes are also being used to handle file uploads.


Repository: /var/svn/trellis, Revision: 104, Committer: james
190 Administration/Reports minor always 2009-02-18 10:31 2009-02-18 10:35 james james normal resolution committed none none 0.5.2 fixed 0 view details link for pre requisites not working on createregistration module The link for viewing the details of a course's prerequisites is incorrect and just shows the user's full transcript again rather than linking to the list of prerequisites for the course.
james 2009-02-18 10:32 the createregistration module will need to be updated to change the link from
.../prerequisites/<course_id>

to
.../task/view_prerequisites/course_id/<course_id>
vcs 2009-02-18 10:34 issue#190 fixed prerequisite view details link to correctly link to the course's prerequisites page


Repository: /var/svn/trellis-dev, Revision: 8547, Committer: james
vcs 2009-02-18 10:35 issue#190 resolved
fixed prerequisite view details link to correctly link to the course's prerequisites page


Repository: /var/svn/trellis, Revision: 103, Committer: james
186 Administration/Reports minor always 2009-01-29 12:26 2009-02-17 17:57 henry henry normal resolution committed none none 0.5.2 fixed 0 course section browser showing course sections from all communities instead of current one The Course Section Browser shows course sections from all communities. Instead, it should show only course sections from the current community. TrellisLMS_get_course_sections.patch (0 KB) 2009-01-29 12:58
henry 2009-01-29 12:59 I've attached a patch to TrellisLMS.php that modifies the get_course_sections() method.
vcs 2009-01-29 13:19 issue#186

modified get_course_sections() method to return course sections only from the current community



Repository: /var/svn/trellis-dev, Revision: 8542, Committer: henry
henry 2009-01-29 13:20 Reminder sent to: james|This has been tested, is working and is ready for review.
vcs 2009-02-17 17:57 issue#186 resolved
modified get_course_sections() method to return course sections only from the current community


Repository: /var/svn/trellis, Revision: 102, Committer: james
james 2009-02-17 17:57 resolution has been committed
188 AICC minor always 2009-02-17 11:36 2009-02-17 12:10 henry normal invalid none none 0.5.2 open 0 manage_registration in TrellisAICC class continues to update registration even though registration already completed/passed I have a course with a custom object that has a link to launch an AICC AU (assignable unit), with a param 'manage_registrations' set to 1. When the user completes the AU, it updates the user's registration status to the AU lesson status, which if successful is 'C' for complete or 'P' for passed.

What happens is that if a user who has successfully completed the course launches the AU again and does not successfully complete the AU again, the AU will send back an incomplete status and our LMS will update the registration to incomplete.

What should happen is that if the user already completed the course, our LMS should ignore subsequent AU lesson statuses.

Steps to reproduce:
1) Set up a course XML with an object that launches an AICC AU, with manage_registrations=1 in the AICC URL query string
2) Complete the AU (it should send back lesson_status=C or lesson_status=P)
3) Note that the registration status is 'complete' or 'passed'
4) Launch the AU again (but do not complete it -- it should send back lesson_status=I)
5) The registration status is now 'incomplete'
james 2009-02-17 12:10 it is the responsibility of the AU to relay the proper lesson status to the LMS
184 Trellis Core/Base System feature N/A 2009-01-28 14:31 2009-01-29 22:15 james james normal resolution committed none none fixed 0 Update to jQuery 1.3 more information on what is new here:
http://docs.jquery.com/Release:jQuery_1.3 [^]
vcs 2009-01-29 13:02 issue#184 updated to jQuery 1.3.1


Repository: /var/svn/trellis-dev, Revision: 8541, Committer: james
vcs 2009-01-29 22:15 issue#184 updated to jQuery 1.3.1


Repository: /var/svn/trellis, Revision: 100, Committer: james
185 Trellis Core/Base System minor always 2009-01-29 11:34 2009-01-29 22:08 carlos carlos normal resolution committed none none 0.5.0 fixed 0 Send_email function does not accept email address as an argument The send_email function only accepts email_template, user_id, template and options as arguments, but if you want to send an email to a recipient that is not registered as a user in the database, it is not possible because you need to have his/her user_id. We should change that to be able to pass the email_address as an argument. send_email.patch (1 KB) 2009-01-29 11:43
send_email_v2.patch (1 KB) 2009-01-29 12:02
james 2009-01-29 11:40 confirmed, the function should determine if the user identifier (currently $user_id) is an array of user information or a user id. If it is a user_id, then we continue to query the database for the the user information.

If passing as an array of user information, the following keys are required:
email_address - email address of the recipient
user_name - full name of the recipient
james 2009-01-29 11:44 I have attached a patch for the send_email function. If this can be improved, please discuss.
james 2009-01-29 12:02 I have attached a second version that will make sure the $user_info array contains the user_name key.
vcs 2009-01-29 12:18 trellis issue#0185 The patches have been applied. Now we are able to send the user id or the email address and the complete name of the user in an array.


Repository: /var/svn/trellis-dev, Revision: 8540, Committer: carlos
vcs 2009-01-29 14:28 issue#185 spacing and comments have been corrected in the send_email function


Repository: /var/svn/trellis-dev, Revision: 8543, Committer: carlos
carlos 2009-01-29 17:04 Reminder sent to: james|The patch has been tested already and the new send_email function it is working fine for the tests I have made.
vcs 2009-01-29 22:06 issue#185 send_email function updated to support sending to a recipient who is not a user


Repository: /var/svn/trellis, Revision: 99, Committer: james
179 Certificates minor sometimes 2009-01-08 11:13 2009-01-22 11:40 james james normal resolution committed none none 0.5.2 fixed 0 certificates awarded incorrectly via the check_certificate_completion method certificates are sometimes awarded to users who haven't completed the certificate requirements. also they are not awarded to those users who have completed all of the certificate requirements. I have not been able to reproduce this consistently, but did find several logical errors in the check_certificate_completion method of the TrellisCourse class. attached is my patch.

1st - it fixes the use of array_unique so that the certificate ids that are gathered are truly unique before looping through them and awarding the certificates.

2nd - it fixes the queries which check to make sure the requirements of the certificate have been fulfilled.
TrellisCourse.patch (6 KB) 2009-01-08 11:13
vcs 2009-01-08 11:17 issue#179
fixed use of array_unique to get only unique certificate ids
fixed queries that check the completion of the certificate requirements



Repository: /var/svn/trellis-dev, Revision: 8532, Committer: james
james 2009-01-08 11:17 i have applied the patch, reviewing for release.

vcs 2009-01-22 11:39 issue#179 resolved
fixed use of array_unique to get only unique certificate ids
fixed queries that check the completion of the certificate requirements


Repository: /var/svn/trellis, Revision: 98, Committer: james
james 2009-01-22 11:40 patch applied and resolution has been committed.
182 SCORM minor always 2009-01-20 14:51 2009-01-22 11:37 james james normal resolution committed none none 0.5.2 fixed 0 SCORM launch link should support both remote and local paths Currently the SCORM launch link forces the path /static/scorm/$course_id/ in front of the sco launch link. This causes an error when using an remote path/uri as the launch link.

The launch link should support both remote and local paths.

For example:
If the resource href in the imsmanifest.xml is http://domain.com/index.html, [^] the resulting launch link when launching the course from Trellis would be:

/static/courses/5/http://domain.com/index.html [^]

The expected launch link result should be:
http://domain.com/index.html [^]
The sco_container.tmpl is where the /static/scorm/$course_id path is forced.
The idea I had to solve this was for the course module to determine if the launch link is remote (starts with http(s)) and then inserts the full launch link. If not, it will prepend the /statis/scorm/$course_id/ to the launch link.
vcs 2009-01-20 16:27 issue#182 check if a sco launch link is a local or remote path and set up the launch link appropriately base on that


Repository: /var/svn/trellis-dev, Revision: 8539, Committer: james
vcs 2009-01-22 11:35 issue#182 resolved
check if a sco launch link is a local or remote path and set up the launch link appropriately base on that


Repository: /var/svn/trellis, Revision: 97, Committer: james
james 2009-01-22 11:37 resolution has been committed.
180 Administration/Reports minor always 2009-01-14 16:43 2009-01-20 13:17 james james normal resolution committed none none 0.5.2 fixed 0 uploading a course with a file type application/x-zip produces an error Uploading a course that has a mime type of application/x-zip using the Upload Course module in admin returns the following error:
"That file is of an invalid type."

The .zip file I tried was compressed using 7-zip on a Windows machine.
The lms method upload_course should account for this mime type in addition to the other zip mime types. Attached is a patch TrellisLMS.patch (283 KB) 2009-01-14 16:43
james 2009-01-14 16:44 this patch will be applied in order to support the application/x-zip file type.
vcs 2009-01-14 16:46 issue#180 resolved
allow a course with the file type 'application/x-zip' to be uploaded


Repository: /var/svn/trellis-dev, Revision: 8536, Committer: james
vcs 2009-01-14 16:50 issue#180 resolved
allow a course with the file type 'application/x-zip' to be uploaded


Repository: /var/svn/trellis, Revision: 95, Committer: james
james 2009-01-20 12:59 it's also necessary to update the same functionality to the scorm pif tab of a course information page.
vcs 2009-01-20 13:01 issue#180 resolved
allow a course with the file type 'application/x-zip' to be replaced on the scorm pif tab


Repository: /var/svn/trellis-dev, Revision: 8538, Committer: james
vcs 2009-01-20 13:06 issue#180 resolved
allow a course with the file type 'application/x-zip' to be replaced on the scorm pif tab


Repository: /var/svn/trellis, Revision: 96, Committer: james
165 Administration/Reports minor always 2008-10-22 12:02 2009-01-08 10:20 henry henry normal resolution committed none none 0.5.2 fixed 0 receving error 38 on request username on the login page if the e-mail address matches more than one user In the request username function of the login page, if the e-mail address you enter matches more than one user, it will result in this error:

"Error 38

Undefined variable: email_cc
In ../core/global/functions/core_functions.php on line 603."

What should happen is that if the e-mail address matches more than user, it will send the username of each of those users to the e-mail address.

Note that this does not happen if the e-mail address matches only one user.

Steps to reproduce:

1) Identify an e-mail address matching more than one user.
2) Make sure you are logged out and on the login page click the 'Request Username' link.
3) Enter that e-mail address
4) Receive the error
henry 2008-10-22 12:05 This seems to be because of the use of 'require_once' of the email template in send_email() in core_functions.php. I think it is not including the email template on subsequent send_email() calls because it has already been required once the first time. I think we should use 'require' instead of 'require_once'.

shaddy 2008-10-22 14:30 this problem has happened to me before, require_once won't reinclude a file even if the file does not exist in current scope.

does using require fix the problem?
henry 2008-10-22 14:32 Yes, using require fixes the problem.
vcs 2008-12-15 16:51 issue#165
use require instead of require_once in the send_email function


Repository: /var/svn/trellis-dev, Revision: 8526, Committer: henry
henry 2008-12-15 16:59 Reminder sent to: james|This has been fixed and tested and is ready for review.
vcs 2009-01-08 10:19 issue#165 resolved
use require instead of require_once in the send_email function


Repository: /var/svn/trellis, Revision: 94, Committer: james
159 Administration/Reports minor always 2008-10-03 14:18 2009-01-08 10:16 henry henry normal resolution committed none none 0.5.2 fixed 0 fatal error received when user who is not an admin tries to access administration/reports If a user who is not an admin tries to access administration/reports he will receive this fatal error:

Fatal error: Call to a member function add_filter() on a non-object in ../core/global/classes/TrellisAuth.php on line 632
henry 2008-10-03 14:19 In TrellisAuth.php:610, '$utilities' should be '$this->utilities'.
vcs 2008-12-15 17:01 issue#159
changed $utilities to $this->utilities in the validate_community method


Repository: /var/svn/trellis-dev, Revision: 8527, Committer: henry
henry 2008-12-15 17:22 Reminder sent to: james|This has been fixed and tested and is ready for review.
vcs 2009-01-08 10:16 issue#159 resolved
changed $utilities to $this->utilities in the validate_community method which fixes a fatal error when a user who is not an admin tries to access administration/reports


Repository: /var/svn/trellis, Revision: 93, Committer: james
178 General/Other minor always 2008-12-18 15:40 2009-01-08 10:11 henry henry normal assigned none none 0.5.2 open 0 log out link not working when TRELLIS_E_NOT_LEARNER exception thrown in auth->check_access() called by global.php I logged into the learning center with a user account who had is_learner set to false (for the current community). I received the expected 'You are not permitted to access the learning center' message, but when I try to click the 'log out' link it provides, nothing happens (i.e. it brings me back to the same page). As a result, I cannot try logging in with another user because every subsequent http request to the learning center brings me back to that page, that is, I am logged in with no access and no way to log out.

The only way to log out currently is to delete the cookies that trellis uses for the user authentication, or to visit the admin site, and use the log out link from the error message there.

The way that it should work is that clicking the 'log out' link should actually log you out and thus allow you to try logging in as a different user.

Steps to reproduce:
1) Identify a user account with is_learner set to false for a community.
2) Log into that community in the learning center
3) Receive the error and try clicking the 'log out' link

Note that this applies only when logging into 'base' and not 'admin'.
177 Administration/Reports feature N/A 2008-12-18 11:02 2008-12-19 16:59 james carlos normal confirmed none none 0.5.2 open 0 Add Bulk Actions to Program Users Browser The bulk actions functionality needs to be added to the program users browser in order to perform bulk actions on users programs. an bulk action used here would be to remove a bulk set of users from a program/programs
carlos 2008-12-19 16:14 The solution I am working on is based on adding the 'Actions' tab to the Program Users Browser module. The only available action is going to be 'Unregister' and then we will have a select box to choose how we want to perform this action. We will have these two options:

- Disassociate from programs only. This action will delete the association between the user and the program, but will not unregister the user from the courses included in that program.

- Disassociate and deleting from courses. It will not only delete the association mentioned before, but also unregister the user from the courses included in that program.
vcs 2008-12-19 16:54 trellis issue#177 Code added for unregister action.


Repository: /var/svn/trellis-dev, Revision: 8528, Committer: carlos
vcs 2008-12-19 16:57 trellis issue#177 Added unregister action


Repository: /var/svn/trellis-dev, Revision: 8529, Committer: carlos
vcs 2008-12-19 16:58 trellis issue#177 Added unregister action.


Repository: /var/svn/trellis-dev, Revision: 8530, Committer: carlos
vcs 2008-12-19 16:59 trellis issue#177 Added unregister action.


Repository: /var/svn/trellis-dev, Revision: 8531, Committer: carlos
176 Course Objects minor always 2008-12-16 11:05 2008-12-16 11:07 henry normal new none none 0.5.2 open 0 custom course object not accepting blank value for parameter I have a course with <object code="<name of custom course object"> and inside of that I have <param name="text"></param>, hoping to set the value of 'text' to blank. When I launch the course, instead of the blank text I see the default text.

My custom course object should display the blank text according to this line:

$text = (isset($this->parameters['text'])) ? $this->parameters['text'] : 'Default Text';

parameters[text] should be set because it is present in the course xml, but it appears it is not.

Steps to reproduce:
1) Create a course with a custom course object that accepts a parameter and checks to see if it is set
2) Add <param name="text"></param>
3) Launch course and see the results of it not being set

Note that <param name="text"> </param> (spaces) does not work, and that <param name="text" value=""/> does work.
48 General/Other feature N/A 2008-01-15 08:34 2008-12-11 13:52 shaddy normal confirmed none none open 0 User Settings New table: users_settings, stores language, timezone, and other user defined settings
shaddy 2008-07-29 12:25 this can be laid out in the same way as client_settings
carlos 2008-12-11 11:44 should we start translating? It is obviously necessary to have a folder with all the languages and a file for each one with all the words that need to be translated. Timezone is stored on the users table right now. I think we could also include a field for the language on the users table instead of having a separate table for it. Unless there are more settings that we want to store.
james 2008-12-11 13:52 no, the actual translation is not something we are developing into the system, rather a process to get text via PHP's Gettext - that is another issue 0000049

This issue should be focused on a user settings table which will store user preferences and settings. We should figure out what core values will be used here first.
20 General/Other trivial N/A 2007-10-17 16:15 2008-12-11 13:44 shaddy low confirmed none none 0.5.0 open 0 change standard templater variable: $template to $templater template is often desired as a variable for templates, files... not the templater object... therefore it should be named $templater... yeah, that is a good idea