1 Things I know needs doing!
2 --------------------------
4 0) The main thing is to sort out how permissions are going to work...
6 1) Write proper code for creating the database - I left this knowing there were
7 changes planned here. db/dbsetup.php obviously isn't what you'd want in the end.
8 No foreign keys at the moment either and there ought to be. I've also been
9 leaving this until the database structure is reasonably settled. If you've done
10 this sort of thing elsewhere, I suspect this will be fine. Also need to delete
11 the two Yahoo files and reference the ones in lib/yui instead - copied them
12 over when I was trying to debug stuff.
14 2) Move all the Ajax over to use the Yahoo User Interface library - this
15 is straightforward but tedious! I've done one example - UpdateGroupings in
16 main-selects-form.js, everything else needs doing. You'll need
17 to do something sensible with errors, and eventually delete the current
18 functions for doing Ajax requests and responses which aren't very good anyway.
20 2) Move unit tests over to simple test and improve them - we could also do with
21 some automated tests for the interface too - Selenium?
23 3) Security - Need to do a check of this. In particular in the functions
24 giving the XML for the Ajax stuff, I think there was something I remember I
27 4) Check complies with the Moodle coding standards. I think I may have
28 used tabs by accident because I didn't realise that the PHPEclipse settings
29 overrode the main Eclipse ones. Also line lengths are too long all over the
32 5) The CSS stuff needs to be moved to where it's supposed to be /rationalised
35 6) The whole issue of permissions - talk to me about this
37 7) Enrolment keys and user pics - haven't tested these out properly.
39 8) The automatic grouping code could be a lot simpler I realised afterwards,
40 but it works so have been loathe to change it!
42 9) Interesting question as to whether we should somehow record the extent to
43 which modules support groups...
45 10) Who do we let edit/delete what? If a grouping is used by more than one
46 course. Maybe we need an 'owning' course in the database structure. Site-wide
47 groupings - making these appear in people's lists, but not editable
49 11) Check I've done the bits with objects ok - need to check how PHP does OO.
51 12) Check I've done the PHP docs right - just copied other people's!
53 13) Check all the strings are in the lang file
55 14) Make sure everything works on Postgres as well as MySQL.
57 15) One thing that needs to be thought about is if it shoudl be possible to
58 turn a module from not using groups to using groups once students have accessed
59 it and if so how this should work.
61 16) Make sure all references to IMS Enterprise stuff/web services are gone.
64 Other parts of the code that will need changing
65 ------------------------------------------------
67 1) All the modules - I started doing these and then roles and permissions
69 2) Lots of the code in user - if we keep the group_member table the same
70 can we avoid modifiying some of this
71 3) The form where course settings are chosen. We still want it to be possible
72 to set a forced grouping for the whole course still and need to remove the
74 4) For each module, you need to be able to set a grouping.
75 5) Blocks, blogs and calendar also need to be dealt with
76 6) Backup code - there are bugs in the groups parts of this at the moment
77 so be careful here :-)
78 7) Code to delete courses etc.
79 8) Need to make sure grouped acitivities only display to people in the group.