Things I know needs doing!
--------------------------

0) The main thing is to sort out how permissions are going to work... 

1) Write proper code for creating the database - I left this knowing there were 
changes planned here. db/dbsetup.php obviously isn't what you'd want in the end.
No foreign keys at the moment either and there ought to be. I've also been 
leaving this until the database structure is reasonably settled. If you've done 
this sort of thing elsewhere, I suspect this will be fine. Also need to delete
the two Yahoo files and reference the ones in lib/yui instead - copied them
over when I was trying to debug stuff. 

2) Move all the Ajax over to use the Yahoo User Interface library - this
is straightforward but tedious! I've done one example - UpdateGroupings in 
main-selects-form.js, everything else needs doing. You'll need
to do something sensible with errors, and eventually delete the current 
functions for doing Ajax requests and responses which aren't very good anyway. 

2) Move unit tests over to simple test and improve them -  we could also do with 
some automated tests for the interface too - Selenium?

3)  Security - Need to do a check of this. In particular in the functions
giving the XML for the Ajax stuff, I think there was something I remember I 
needed to do... 

4) Check complies with the Moodle coding standards. I think I may have
used tabs by accident because I didn't realise that the PHPEclipse settings
overrode the main Eclipse ones. Also line lengths are too long all over the 
place. 

5) The CSS stuff needs to be moved to where it's supposed to be /rationalised
etc. 

6) The whole issue of permissions - talk to me about this

7) Enrolment keys and user pics - haven't tested these out properly. 

8) The automatic grouping code could be a lot simpler I realised afterwards, 
but it works so have been loathe to change it! 

9) Interesting question as to whether we should somehow record the extent to 
which modules support groups...

10) Who do we let edit/delete what? If a grouping is used by more than one 
course. Maybe we need an 'owning' course in the database structure. Site-wide 
groupings - making these appear in people's lists, but not editable

11) Check I've done the bits with objects ok - need to check how PHP does OO. 

12) Check I've done the PHP docs right - just copied other people's! 

13) Check all the strings are in the lang file 

14) Make sure everything works on Postgres as well as MySQL.

15) One thing that needs to be thought about is if it shoudl be possible to 
turn a module from not using groups to using groups once students have accessed
it and if so how this should work. 

16) Make sure all references to IMS Enterprise stuff/web services are gone. 


Other parts of the code that will need changing 
------------------------------------------------

1) All the modules - I started doing these and then roles and permissions
happen. 
2) Lots of the code in user - if we keep the group_member table the same 
can we avoid modifiying some of this 
3) The form where course settings are chosen. We still want it to be possible
to set a forced grouping for the whole course still and need to remove the
current options. 
4) For each module, you need to be able to set a grouping. 
5) Blocks, blogs and calendar also need to be dealt with 
6) Backup code - there are bugs in the groups parts of this at the moment 
so be careful here :-) 
7) Code to delete courses etc.
8) Need to make sure grouped acitivities only display to people in the group.  

