Details
Description
Refer to http://moodle.org/mod/forum/discuss.php?d=122919
This is the primary issue to handle what we can do to make My Moodle into a more customizable, social platform for Moodle.
Key goals are:
- it must be customisable by the user to show as little or as much as they want
- it should be generic so it can be used by all Moodle institutions (this means working with the community to develop consensus where possible, otherwise options for different features)
- it should be efficient on CPU and RAM
Attachments
-
- Home Page.bmml
- 10/Oct/09 4:09 AM
- 3 kB
- Mike Churchward
-
- Home Page.bmml
- 10/Oct/09 4:07 AM
- 3 kB
- Mike Churchward
-
- Martin's My Moodle Mockups.bmml
- 11/Dec/09 6:32 AM
- 19 kB
- Martin Dougiamas
-
- mymoodle_fixes.patch
- 05/May/10 7:34 AM
- 2 kB
- Hubert Chathi
-
- mymoodle.tar.gz
- 16/Apr/10 12:06 AM
- 15 kB
- Hubert Chathi
-
- mymoodle.tar.gz
- 12/Feb/10 6:30 AM
- 15 kB
- Hubert Chathi
-
- MyMoodle-MessageCentre.bmml
- 10/Oct/09 3:51 AM
- 2 kB
- Mike Churchward
-
- MyMoodle-MessageCentre.bmml
- 08/May/09 10:41 PM
- 2 kB
- Mike Churchward
-
- MyMoodle-MessageCentre.bmml
- 08/May/09 10:23 PM
- 1 kB
- Mike Churchward
-
- MyMoodle-MyCourses.bmml
- 10/Oct/09 3:52 AM
- 1 kB
- Mike Churchward
-
- MyMoodle-MyCourses.bmml
- 08/May/09 10:22 PM
- 1 kB
- Mike Churchward
-
- MyMoodle-MyCourses.bmml
- 08/May/09 9:55 PM
- 2 kB
- Mike Churchward
-
- MyMoodle-profile.bmml
- 10/Oct/09 3:49 AM
- 2 kB
- Mike Churchward
-
- MyMoodle-profile.bmml
- 09/May/09 12:05 AM
- 2 kB
- Mike Churchward
-
- MyMoodle-profile.bmml
- 08/May/09 9:54 PM
- 2 kB
- Mike Churchward
-
- mymoodleprofile.patch
- 04/May/10 5:26 PM
- 120 kB
- Martin Dougiamas
-
- Home Page.png
- 96 kB
- 10/Oct/09 4:09 AM
-
- Martin's My Moodle Mockups.png
- 283 kB
- 11/Dec/09 6:36 AM
-
- MyMoodle-MessageCentre.png
- 104 kB
- 10/Oct/09 3:51 AM
-
- MyMoodle-MyCourses.png
- 82 kB
- 10/Oct/09 3:52 AM
-
- MyMoodle-profile.png
- 85 kB
- 10/Oct/09 3:49 AM
Issue Links
| This issue will help resolve: | ||||
| MDL-13467 | /my moodle edit button inconsistency |
|
|
|
| This issue will be resolved by: | ||||
| MDL-20141 | Show/hide course overview on my moodle |
|
|
|
| MDL-20593 | semester / term based course sortorder for the myMoodle page - [patch] |
|
|
|
| This issue has a non-specific relationship to: | ||||
| MDL-19430 | user-determined order and number of courses on myMoodle |
|
|
|
| This issue has been marked as being related by: | ||||
| MDL-20649 | Improvement: Add navigation tabs for a users profile into the navigation under root |
|
|
|
| MDL-14339 | mymoodle meta cleanup |
|
|
|
| MDL-19430 | user-determined order and number of courses on myMoodle |
|
|
|
| MDL-13583 | Improvements to the MyMoodle page |
|
|
|
1. |
Use user private files | |
|
Dongsheng Cai |
Activity
- All
- Comments
- History
- Activity
- Source
- Test Sessions
Patience...
I'm using the tool to create some mockups for discussion. I thought it best to start with known configurations and move of from there. Since the mockup tool is in JIRA, I have to create them here. I will create more, and then add some description about my thinking. There are many more to come.
Added UI Mockup: <MyMoodle-MessageCentre>
Mockups are to discuss possible 'page' plug-ins for the My Moodle interface. Moving to forum discussion http://moodle.org/mod/forum/discuss.php?d=122919#p539007
I have been working towards something like the mockup for My Courses (collapsed details, user-determined order) as a customisation of myMoodle in 1.9.5. http://moodle.org/mod/forum/discuss.php?d=122236
Hello,
here at Universidade Federal of Santa Catarina, we have developed a new feature to MyMoodle to let the user choose for which courses the overview will be showed.
This selection persists only over the same session, starting with overview hide for all courses. The issue was linked as "will help resolve" this one.
Mike, is this work still on your radar?
I need to know really soon if we can expect to see any of this ready for 2.0 ...
Yes it is and yes you can. I apologize. We got sidetracked a bit, but this is still crucial to our work. I will get a design / development document on this within the next two weeks.
OK, we probably need to have this done and dusted in about 8 weeks or so.
Mike, if this is really not looking likely please let me know ... so I can reassign or do it myself
Sorry Martin. We have been working on the spec. I'm sure we can get it done. I will post what we have by tomorrow.
We will post our ideas in phases as well, so that the minimum requirements can definitely be met by release.
I have added a wiki page at http://docs.moodle.org/en/Development:My_Moodle_Dev_Plans to describe the work. I will add the technical plans to that as well. Feel free to comment.
I've updated Mike's wiki page to include some more concrete technical plans.
An update on progress:
what is done:
- MyMoodle has tabs/subpages (currently, only admin can create tabs – allowing users to create tabs introduces some policy questions that need to be addressed)
- tabs can be private/public, and locked/unlocked
- only admins can edit locked pages (globally) (add/remove blocks); users can edit unlocked pages for their own MyMoodle (needs more testing)
- users can view the MyMoodle pages for other users (if they have sufficient privileges or the page is "public") – this makes MyMoodle able to function similarly to the "profile" page, or used for social networking-like functions
what still needs to be done: - ability to delete/rename subpages
- port the current MyMoodle course display to a block
- add proper installation/upgrade information (capabilities, database schema, default tabs)
- finish admin interface
- port other profile functionality (profile, forum posts, blog posts, etc.) to a block
- create new blocks for use with MyMoodle (ideas?)
- create custom block manager so that blocks added site-wide actually show up site-wide by default
- MyMoodle has tabs/subpages (currently, only admin can create tabs – allowing users to create tabs introduces some policy questions that need to be addressed)
- tabs can be private/public, and locked/unlocked
- only admins can edit locked pages (globally) (add/remove blocks); users can edit unlocked pages for their own MyMoodle (needs more testing)
- users can view the MyMoodle pages for other users (if they have sufficient privileges or the page is "public") – this makes MyMoodle able to function similarly to the "profile" page, or used for social networking-like functions what still needs to be done:
- ability to delete/rename subpages
- port the current MyMoodle course display to a block
- add proper installation/upgrade information (capabilities, database schema, default tabs)
- finish admin interface
- port other profile functionality (profile, forum posts, blog posts, etc.) to a block
- create new blocks for use with MyMoodle (ideas?)
- create custom block manager so that blocks added site-wide actually show up site-wide by default
OK, formatting on that previous comment is slightly messed up, and I can't edit (should have used "preview"...). The "what still needs to be done:" line should be outdented.
More plans and code are here: MDL-13583 Might be worth having a look at, Hubert.
I'm just working on some new mockups based on the discussion today.
is it part of the plan to give users control over the order in which courses are listed? (ie will users be able to move Geography above Maths in MyMoodle-MyCourses.png if they think that order is more appropriate?)
Adding my mockup from the hackfest. The details may change of course.
Hi Minh-Tam. The course list will be a block and not specifically part of My Moodle. But, we will make sure that functional requests for that block will be addressed.
Hi Martin, I have one of my guys working on it. It took him a while to figure out the new Moodle 2.0 API (as expected), but he's making good progress on it. I'll put together a quick progress update later this week, after I review his current code.
In response to Minh-Tam Nguyen's query about giving user's control over ordering the course list, Mike Churchward replied:
> The course list will be a block and not specifically part of My Moodle. But, we will make sure that functional requests for that block will be addressed.
Now I'm really confused. In the mockups above MyCourses has a separate tab and (presumably) displays the list of courses the user is enrolled in. How is this then a block?
I am currently using Minh-Tam Nguyen's wonderful MyMoodle hack (http://tracker.moodle.org/browse/MDL-19430) which allows users to not only reorder courses in any way they choose but also to hide/reveal courses so that they can control which ones are always visible. This should not be too difficult to include in the version 2.0 system should it not?
Users will be able to configure My Moodle with different subpages. They can then configure each subpage to display blocks in whatever configuration of blocks they want.
We will actually not be using tabs; we will instead be integrating with the navigation block. See Martin's mockups for the latest version of the My Moodle plans.
Looking at Martin's MyMoodle mockups above, the dashboard has Course Overview as the central component. This is currently (1.9.x) also the central component of MyMoodle and the reason why we use it. People want to get to their most used courses with a single click. Will the Course Overview as shown in the Martin MyMoodle Mockup display the list of enrolled courses as it it seems to indicate. Shunting the list of enrolled courses to a side block on a secondary page or tab would be a UI mistake in my view. Minh-Tam's modifications are excellent because they allow users who may have dozens of enrolled courses to keep the most used ones visible at the top of the list.
My Moodle will support blocks in the centre column. In Martin's My Moodle mockup, there are three blocks visible in the centre column: "Course overview", "My Files", and "Friends".
You will still be able to get the same end result with the new My Moodle code as you can get with the current My Moodle code. It's just that we will be using the blocks architecture to make the page more configurable, instead of hard-coding it to only show the list of courses.
Thanks Hubert. To me it sounds like it's not planned to include course hiding/reordering capabilities in the 'Course Overview' by default, but you're thinking that someone will be able to add it back in afterwards on the basis of the block architecture (ie. rewriting MDL-1943 as a block).
We will probably just start off with just a duplication of the current "Course Overview" (with maybe minor improvements), at least for the initial release. After the initial release, we may try to incorporate some of the other feature requests in the tracker. At the same time, others are free to create their own blocks that add other features.
Basically, as far as MDL-19430 goes, I'm not saying that it will never become part of Moodle. But it will probably not be in Moodle 2.0. And until it does become part of Moodle (if it does become a part of Moodle, which as always depends on demand for the changes, and manpower to maintain it), you can maintain your own version of the Course Overview block, which will be easier for others to add to their own Moodle site, since it will just be a block, rather than a patch.
Here is an overview of the major steps for the current work:
- finish off the "Dashboard" implementation (should have something available for public testing this week or next, though it will probably be in the form of a manual patch, plus a script to run for installation)
- implement the "Course Overview" block (start with just a copy of what the current My Moodle does, and then integrate the enrolment system changes)
- finish off the "Personal Profile" page (which will mostly be the same code as the "Dashboard" page)
- triage all the current My Moodle bugs, implement all the "low hanging fruit", and look into the effort required for the important/popular requests
- finish off the "Dashboard" implementation (should have something available for public testing this week or next, though it will probably be in the form of a manual patch, plus a script to run for installation)
- implement the "Course Overview" block (start with just a copy of what the current My Moodle does, and then integrate the enrolment system changes)
- finish off the "Personal Profile" page (which will mostly be the same code as the "Dashboard" page)
- triage all the current My Moodle bugs, implement all the "low hanging fruit", and look into the effort required for the important/popular requests
@Hubert:
We will probably just start off with just a duplication of the current "Course Overview" (with maybe minor improvements), at least for the initial release. ......... But it will probably not be in Moodle 2.0. And until it does become part of Moodle (if it does become a part of Moodle, which as always depends on demand for the changes, and manpower to maintain it), you can maintain your own version of the Course Overview block, which will be easier for others to add to their own Moodle site, since it will just be a block, rather than a patch.
I think that this is a mistake. Here's why. Let us assume that the majority of sites with Moodle in production are going to be migrating from version 1.9 to version 2. I don't think this is an unreasonable assumption since the number of sites coming to Moodle version 2 for the first time is likely to be quite small, especially in relation to the overall population of running Moodle sites. Now, we know that since the format for the course backup for v2 is incompatible with 1.x (for very good reasons I might add) the only way to get courses from v1.9 to v2 is by using the new code with an existing database. Thus we can be confident that many if not most of the moodle installations will have a population of users (faculty and students) who are enrolled in many courses. Thus the default user logging in to Moodle 2.0 with My Moodle switched on will be greeted with a long list of courses stretching down for several 'pages' with all the assignments/other activities visible. Even if this list is ordered by most recent course it will still entail much scrolling to locate the course that the user desires to enter. The primary function of MyMoodle (IMO) is to present the enrolled courses in a simple to access list – if the user has to scroll down the page every time to an arbitrary position this will quickly get tiresome and administrators will come under pressure to remove MyMoodle from being the default point of entry. Thus the MyMoodle Mockup graphic above is misleading; display 12 courses with assignments etc and you'll have a much better notion of what it'll look like at every logon to the average user. To conclude, I cannot see how the Course Overview will function adequately without the ability to reorder and hide courses, and hide/reveal activities in the course frame which is exactly what MDL-19430 achieves.
Hi Martin,
I hope to have something ready for you to test in the next couple of days (or, I guess, the next few days for you, since you're a day ahead of us
). We have code that is working for the Dashboard view, but I have broken it, and am working on unbreaking it. Here are our current plans:
- have a workable Dashboard and Personal Profile page for general consumption, but this will only be limited to having one page each, instead of having the "tabs" (or multiple pages) that we had talked about before. The code to support multiple pages is already mostly written, but we decided that we had enough issues to get feedback from the community about, that the multiple pages would just confuse the issue. (Should be available mid-week.)
- after getting community feedback about the single-page version, release a version that allows users to have multiple dashboard pages (and multiple profile pages?) (availability depends on community feedback, obviously, but the multiple pages functionality will only take a couple of days to polish off)
- triage of current My Moodle bugs
- have a workable Dashboard and Personal Profile page for general consumption, but this will only be limited to having one page each, instead of having the "tabs" (or multiple pages) that we had talked about before. The code to support multiple pages is already mostly written, but we decided that we had enough issues to get feedback from the community about, that the multiple pages would just confuse the issue. (Should be available mid-week.)
- after getting community feedback about the single-page version, release a version that allows users to have multiple dashboard pages (and multiple profile pages?) (availability depends on community feedback, obviously, but the multiple pages functionality will only take a couple of days to polish off)
- triage of current My Moodle bugs
Mark, I agree with you that the Course Overview should be a lot more collapsible/customisable than it is now, something along the lines of MDL-19430.
Since some code exists already it might be pretty simple to use it in the new Course Overview block. If so I'll try to ensure it gets into 2.0 as standard.
The nice thing with the new block structure is that these blocks can evolve independently of the main My Moodle pages, and people can create alternatives at any time.
Thanks a lot Martin. Having Blocks available for the central column adds a huge level of utility. It just takes some getting used to
Thanks Martin. I haven't seen the current structure of what Hubert is working on, but I guess I'll see if I can extract the code from MDL-19430 in to a block over the next month or so. There are two bugs and an enhancement to be added anyway.
Hi Martin,
I should be pretty much done the coding for the first phase. I just need to do a final run-through with Mike, document how the system works (along with current caveats), and create something so that it will install the database structures (without having to mess with the Moodle version). So I should have something ready for you to bang on by the time you wake up tomorrow morning. ![]()
Hubert
Before we get too carried away with cenral blocks (and I could
) as they can only be implemented via themes not standard block config let's make sure we consider the needs of admins without access to server/themes.
Ray: No, central blocks do not need any special theme support. They are implemented by the page itself. You will see how it works tomorrow, when we release the code. ![]()
I've attached mymoodle.tar.gz, which contains the code that we've written. It contains a readme.txt file that describes what it does, and how to install it. Please read it carefully, especially the warnings.
I'm planning on making a screencast (tomorrow?) as well, which will hopefully explain how it works better than my readme file.
Minh-Tam: the code you are interested in is in blocks/course_overview. Right now, it is basically just a copy-and-paste of the relevant bits of the old My Moodle code, which means that it shouldn't be too hard to adapt your code. However, Petr is changing the enrolment data tables, so the block will have to be adapted to use that. (I'm not sure if he's done that yet.)
Reviewed this with Hubert. All looks good and I think will provide the functional starting point we wanted.
Some issues came up with sticky blocks in particular. I think this is related to the contexts that have to be used. We will need to discuss these.
In particular:
- if I make a block sticky for a dashboard or profile page as an administrator, there is no way after that to make in un-sticky.
- If I make a block sticky for a dashboard or profile page as an administrator, a general user still seems to be able to move it around.
These problems may be part of the new sticky block system? We couldn't find any place where blocks could be defined to be sticky in courses. Has this changed?
- if I make a block sticky for a dashboard or profile page as an administrator, there is no way after that to make in un-sticky.
- If I make a block sticky for a dashboard or profile page as an administrator, a general user still seems to be able to move it around.
Errata to my code: line 81 in user/profile.php should be changed to read "... 'private' => 0));" instead of "... 'private' => 1));". (0 instead of 1)
To Hubert: Hi, is this in HEAD yet. I can only see Left and Right in Region.
Ray: No, this is not in HEAD yet. It is only in the tar file that I have uploaded to this issue, and it only applies to the My Moodle pages.
Screencast is available here: http://dl.dropbox.com/u/4986499/My%20Moodle%20screencast.ogg (It's an ogg theora video. You'll probably need VLC or something similar to play it.)
I've had reports from some people saying that there is no audio in my screencast when viewed from the browser, but it is there when downloaded and viewed through VLC.
The screencast works for me in Flock browser (Gecko) and also with VLC. (BTW, what s/w did you use to create this?)
A couple of points. You chaps have done a lot of work here to add functionality. But it's hard to keep things simple enough for users to gain confidence to employ that functionality.
First off, I think that my average faculty user will experience some cognitive dissonance when she sees 'My Moodle dashboard'. She'll be expecting a display like the My Moodle but she'll get a Dashboard. Shy not rename everything to 'My Dashboard' (which is the topmost title in the screencast) or perhaps 'Dashboard'? That way users will know up front that it's new and different.
2. It's not clear to me why there's a 'Main profile page' and a 'View Profile' – both hidden underneath a pull-down triangle. User interface studies have shown in the past that many folks don't understand how to reveal stuff nested in that way. Why not enable editing on the View Profile and do away with 'Main profile page'?
3. Are you going to implement Course hiding and Assignment hiding in the Course overview block?
4. When to copy system defaults to user space :
+1 for 'on user creation'
5. Please keep this simple and easy to use. From experience with MyMoodle in versions 1.9 and previous, my guess is that very few, if any, users will bother to customize their dashboard away from the default. With this in mind I'd rather see a rock solid dashboard system with good performance than one with lots of frills.
Thanks for all the hard work you're putting into this.
Mark
Mark, thanks for the feedback.
re: 1. Yes, naming is something that we can discuss. I should add that I am planning on having the system default dashboard default to being just like the current My Moodle page, so if the admins leave the default alone, users should not experience much cognitive dissonance.
re: 2. The "Main profile page" is the new stuff. The "View Profile" is the "old" Moodle profile. (In the "Martin's My Moodle Mockups.png" mockup, the "Main profile page" corresponds to the middle image, and the "View Profile" corresponds to the image on the right.) We will need to figure out how to distinguish these two pages, and make things less confusing.
re: 3. course/assignment hiding is not currently on my personal roadmap, but Martin said that he wants to get it into 2.0, so either I'll end up doing it, or someone else will.
re: 4. I think we'll have to start a forum discussion on this issue. ![]()
re: 5. Yes, I want to keep it easy to use, but flexible enough to do what people want to do with it. The bulk of the code is actually fairly simple – most of the complexity is handled already by the new page and block libraries. (That said, My Moodle will probably require some (minor) changes to those libraries in order to work properly.)
Hubert – thanks for the quick response.
When to copy system defaults: I think that this is a good question to throw open to the community so Forum discussion double plus good! ![]()
Somehow I missed the changes in the past couple of weeks! Just saw this, sorry.
Thanks Hubert! I'm looking forward to giving this all a try!
Hi Martin -
We are awaiting feedback. Have you been able to review the screen capture video and/or the code?
Started a forum discussion here: http://moodle.org/mod/forum/discuss.php?d=147868
Working hard on this, expecting to be able to check in by tomorrow!
I'm checking this in NOW. Main difference to last patch is the userid is now NULL for system pages instead of zero, and some better checks here and there. Let's work on it further in HEAD.
Martin, I've attached a quick patch (mymoodle_fixes.patch) that fixes a few things:
- makes the admin pages properly selected in the settings block
- removes the block manager hack from the admin pages (it's only needed in the user pages – although I've talked with Tim H, and we may be trying a different approach for that later)
- remove a couple stray print_objects
- only copy non-sticky blocks (otherwise, they'll show up twice)
Should I apply for CVS commit privileges?
- makes the admin pages properly selected in the settings block
- removes the block manager hack from the admin pages (it's only needed in the user pages – although I've talked with Tim H, and we may be trying a different approach for that later)
- remove a couple stray print_objects
- only copy non-sticky blocks (otherwise, they'll show up twice)
Thanks Hubert. Unfortunately we can't use admin_external_page because it changes the regions, but Sam is working on a fix.
I actually deliberately removed the sticky blocks exclusion. The reason is because I added the pageid as the subpagepattern for all these blocks and this gets updated during the copy. It helps to think of stickyness on the system default page as meaning sticky for all the pages in this user's set of pages (for when we add more tabs).
If admins want to make sure certain blocks always appear on all My Moodle pages then they should do it the same way they normally do for any part of the site which is to create sticky blocks for the whole site with NO subpagepattern and just a my-index pagetype.
Added UI Mockup: <MyMoodle-profile>