OK, this is a big check-in with some big changes, and needs work still.
It seems relatively stable, but I need help identifying the rough patches.
1) First grading scales support. There is a now a new table called "scale"
that contains grading scales. There can be site scales (course=0) and
custom course scales. These can be used in modules - I've only done
forums for now but that was the hard one. Scales can be edited via
the new item in the course admin menu.
There is one default scale - the connected/separate knowing one that used
to be in forum. To build this I pull data from the language packs
to create one during the upgrade, or anytime a scales menu is called
and no scales are found.
2) New roles for course creator and teachers. I've fixed up the course
menus and some other things but there's a lot left to do on this to
make it all smooth. The idea is that teachers no longer can edit courses
unless they are also course creators. The interface for this needs to
be smoothed out a fair bit and I need help with this.
The upgrade will upgrade all teachers to be creators, but will default
the new site config "creatornewcourses" to "no", so that effectively
these new teachers have the same privileges.
3) Simplified teacher management. There is no longer an "assign teachers"
and a "teacher roles" page - it's all on one page in course/teacher.html.
Phew ... time for a shower and then back into it.
ensure that the order they are displayed in is always the same as the
order they have been defined in. See bug 553.
This involved API changes to the function get_all_instances_in_course()
servers that have register_globals turned off (this is the
default setting on newer version of PHP).
In fact it's partly a hack that globalises all GET, POST, FILES
AND COOKIE variables. Unfortunately though the SESSION and
USER global session variables are only available as $_SESSION["USER"]
and $_SESSION["SESSION"], which is cumbersome to use.
So, for every request I now make a copy of these two session variables
into $USER and $SESSION. Whenever I update them thoughout Moodle I
now have to call save_session("USER") which copies them back to the
session variable. This seems to be working well now.
Because I'm using $_SESSION etc now this will raise
the required minimum version of PHP to 4.1.0
Basically the changes are:
- I've merged the 'discuss' module into the forum module
which makes the interface MUCH clearer for everyone
- I've added a new 'single' forum type that replicates
what the old discuss course modules used to look like.
- I've got rid of the "discussion" forum type - it will
still exist in upgraded courses but as a normal forum.
- the 'discuss' module is completely deleted - gone.
- the 'chat' module is completely deleted - gone.
- The upgrading system has been improved, and all code
is stored in version.php.
- I've put in upgrading commands to do the best I can
(right now) to upgrade courses that used the discuss
module. It should mostly work, just leaving some
"orphan" coursemodules on you course front page. You
can easily delete these using the little 'x'.
I may have forgotten something - I've only tested on
my testing server and I'm about to test on my production
server to see how it goes.
- Forums have a lot of little new features and fixes. The
main one is the subscription process. Teachers can 'force'
subscriptions on any forum. This disallows everyone from
choosing their own mail subscription - it's just on.
- The assignment module is half-finished and not working yet
I've still some massive changes to do, mostly involving making
all the lib.php function names more standardised, so consider
this is an interim checkin to do some tests.