!!Description\nA rapidly growing number of liberal arts colleges have selected Moodle as their learning management system (LMS) and general collaboration utility (GCU) because it is easy to use, inexpensive to support, and readily adaptable to the specific needs of different institutions. Thanks to the "low-overhead" PHP technology upon which Moodle is based, it provides excellent opportunities for collaborative software development. The purpose of this workshop is to explore these opportunities. Specifically, we seek to examine these questions:\n* What Moodle challenges do liberal arts colleges face in common?\n* What (collective) expertise do we have with which meet these challenges?\n* What areas of Moodle software development can we collaborate on most effectively?\n* What resources are needed to ensure successful Moodle collaboration?\n* What communication and planning mechanisms will facilitate Moodle collaboration? \nWe invite liberal arts institutions that have a serious commitment to Moodle to send two-person teams to this workshop. Each team should include the CIO (or a designee who can speak on behalf of the IT organization) and the Moodle project manager or developer. Each team's travel and lodging costs will be covered by NITLE.\n\nPlease note that this meeting is part of a longer term effort to promote collaboration around Moodle and may not be appropriate for campuses in the early stages of Moodle adoption or use. Those users might be better served by using the [[NITLE Moodle Exchange|http://nitle.org/index.php/nitle/opportunities/services/the_moodle_exchange]], which is currently open to participation by anyone. Other events to serve the community, such as an annual Moodle event which would provide wider opportunities for participation, are also being evaluated as possibilities.
[[Dive into Moodle|http://www.earlham.edu/markp/moodledocs/#%5B%5BDive%20into%20Moodle%5D%5D]] for new and returning faculty. \nNo-one turned up
List the title of people involved in Moodle support and their respective departments, and % of working time in order of time spent. Place the main Moodle support person/administrator in position #1.\nFor example:\n|>|>|>|!EXAMPLE|\n|!#|!Title|!Department|!% time|\n|1|Instructional Technologist|Instructional Technology and Media[ITAM] (EIS)| 50%|\n|2|Reference Librarian|Library (EIS)| 10%|\n|3|Reference Librarian|Library (EIS)| 5%|\n|4|Dept secretaries|academic departments| - |\n|5|Applications & Security Manager|Earlham Computing Services (EIS)| 1%|\n|6|Student assistant|ITAM (EIS)| 100%|\n|7| | | |\n|8| | | |\n----\n|!#|!Title|!Department|!% time|\n|1| | | |\n|2| | | |\n|3| | | |\n|4| | | |\n|5| | | |\n|6| | | |\n|7| | | |\n|8| | | |\n
There are a ''lot'' of new options for configuring grades. Check out Site Administration : Grades. Categories are:\n* General Settings\n* Grade category settings\n* Grade item settings\n* Scales\n* Outcomes\n* Letters\n* Report Settings:\n** Grader report\n** Overview report\n** User report\n!!Changes made for Grader Report:\nIn Grades : Report Settings : Grader report\n|!Item|!Default|!My Setting|!Comment|\n|Quick Grading| yes| yes| |\n|Quick Feedback| no| yes|certainly|\n|Show show/hide icons| no| yes|this has been wanted by faculty for some time|\n|Show user profile images| yes| no|takes up too much space|\n|Show number of grades in averages| no| ?|Whether to show the number of grades used when calculating the mean in brackets after each average, for example 45 (34)|\n!!!User report\nShow hidden items set to ''Only hidden until'':\n>If "Only hidden until" is selected, grade items with a "hide until" date set are shown in grey with the grades hidden completely until the set date, after which the whole item is shown.\n!Location Settings\n# Downloaded G~eoLiteCity.dat and copied into moodledata/geoip\n# Created ~GoogleMaps API key and pasted in. ''This is specific to barnabas.lly and will need to be remade when I move the install to production''\n!Server\n* Session handling -- changed Cookie prefix to ''moodle19'' so that I can open multiple moodles from within Firefox with different accounts.\n* HTTP -- can specify a frame to embed moodle within. Might operate within the portal -- yech!\n* Cleanup -- decide on unsubscribing users etc\n!Appearance\nHTML Editor\n# Put Verdana at top of font list\n# Hide following buttons : Fontname, fontsize, underline, right-to-left, left-to-right, background color\nMoodle Docs\n Change default documentation link?\nMy Moodle\n Force users to go to this page\nAJAX and Javascript : \n<<<\nDisable AJAX course editing\nDefault: Yes\nDo not use AJAX when editing main course pages.\n<<<\nI do not understand this setting\n\n* RSS -- Enable RSS feeds (pipe into the portal!)\n! Front Page Settings\nCan now set # courses per page -- used to be a hack.\nNot sure what //default frontpage role// means\n* Modulues\n** List Activities hidden\n** List blocks hidden\n** Security : Site Policies : disable blog system\n** Set filters
!!Check status of last year's hack changes\n# [[Shortname field]] does not need to be changed. The size is set to 20 in courses/edit_form.php: {{{$mform->addElement('text','shortname', get_string('shortname'),'maxlengt\nh="100" size="20"');}}}. Ditto for request_form.php\n# change defaults for new courses. In //courses/edit_form.php// +++[changes]\n|!#|!Current setting|!Change|\n|107:|{{{ $mform->setDefault('format', 'weeks');}}}|'topics'|\n|113:|{{{ $mform->setDefault('numsections', 10);}}}|5|\n|117:|{{{ $mform->setDefault('startdate', time() + 3600 * 24);}}}|strtotime('August 24 2008')|\n|133:|{{{ $mform->setDefault('showgrades', 1);}}}|0 -- off|\nAugust 24th is the start of the semester. It would be really handy to have this as the default setting but I need to make sure I get the correct date configuration. Use php [[strtotime function|http://www.w3schools.com/php/func_date_strtotime.asp]] which converts date string to Unix timestamp.\n===\n\n# Edit / create Resource without previewing ([[Patches/Hacks]]) is now apparently fixed in 1.9 according to [[this entry|http://tracker.moodle.org/browse/MDL-6826]] in the Tracker. \n# [[Assignment ZIP patch for 1.9]] and [[Apply assignment zip patch to 1.9]]\n# Change default blocks in //config.php// ''after'' installing modules +++[defaults]\n{{{\n// If this one is set it overrides all others and is the only one used.\n $CFG->defaultblocks_override = 'yui_menu,news_items,calendar_upcoming,admin,course_list';\n}}}\n===\n\n----\n[[possible new hack]]
In section Setting up plugin tables:\n* ''question/type/calculated plugin needs upgrading'' and the same for question types:\n** essay\n** match\n** multianswer\n** multichoice\n** numerical\n** randomsamatch\n** shortanswer\n** truefalse\n> But all tables created successfully.\n* ''enrol/authorize plugin needs upgrading'' and also enrol/paypal\n* ''grade/export/ods plugin needs upgrading'' plus txt, xls and xml\n* ''grade/import/csv plugin needs upgrading'' plus xml\n* ''grade/report/grader plugin needs upgrading'' plus outcomes, overview, user\n----\nApparently these comments come up because the version #s in mod/<item>/version.php don't match the main version ... Go figure ...
Once again attendance is giving me gyp. As [[before|attendance errors]] it's giving the same errors at :\n{{{\n(mysql): UPDATE mdl_attendance_log SET statusid = 61, statusset = '61,62,63,64' WHERE sessionid IN () AND status = 'P' \n(mysql): UPDATE mdl_attendance_log SET statusid = 63, statusset = '61,62,63,64' WHERE sessionid IN () AND status = 'L' \n(mysql): UPDATE mdl_attendance_log SET statusid = 64, statusset = '61,62,63,64' WHERE sessionid IN () AND status = 'E'\n(mysql): SELECT * FROM mdl_attendance_sessions WHERE id IN () \n}}}\nAnd for {{{statusid = 77, statusset = '77,78,79,80'}}} with statusid = 78,79,80\n--Substitue the CVS code and try again.--\n\n
!!System Roles\n;Librarian Moodle Support\n: Reference Amy, Neal Reference.\n: unset //Initial Subscriptions// so that they do not get email.\n: check 'hidden assignment' box so that no-one sees them\n: system wide role\n;Course Assistant\n: have ''removed'' Cheri Gaddis from system-wide role\n: allocate to individual Categories\n
This is the [[Catalyst Moodle]] with [[latest modules|Moodle 1.9.4 Catalyst modules]] (still to be added) set up according to [[Catalyst version of Moodle]] with following differences:\n* web path : {{{/usr/local/www/apache22/data/moo-cat}}}\n* data path : {{{/usr/local/www/apache22/pale/moo-cat_data}}}\nOwnership : {{{root:wheel}}}\n!!Install\n* run http://rublev.lly.earlham.edu/moo-cat/install.php\n* all +++[server checks]\n{{{\nName Information Report Status\nunicode must be installed and enabled OK\ndatabase mysql version 4.1.16 is required and you are running 5.0.75 OK\nphp version 4.3.0 is required and you are running 5.2.8 OK\nphp_extension iconv should be installed and enabled for best results OK\nphp_extension mbstring should be installed and enabled for best results OK\nphp_extension curl should be installed and enabled for best results OK\nphp_extension openssl should be installed and enabled for best results OK\nphp_extension tokenizer should be installed and enabled for best results OK\nphp_extension xmlrpc should be installed and enabled for best results OK\nphp_extension ctype should be installed and enabled for best results OK\n}}}\n=== are good\n* no extra language packs\n* manually write config.php into server dir\n!!Next:\n* install [[modules|Moodle 1.9.4 Catalyst modules]] +++[progress]\n1. Book. \n{{{\n[markp@rublev /usr/local/www/apache22/data/moo-cat/mod]$ mkdir book\n[markp@rublev /usr/local/www/apache22/data/moo-cat/mod]$ cp -Rp /usr/home/markp/moo-plugins/contrib/plugins/mod/book/* book\n}}}\nand run moo-cat/admin on the browser to set up the tables\nSuccess with blocks: yui_menu, attendance, and module attforblock\n===\n\n* +++[problems with feedback]\nI've had this problem before. Posted a [[question on the moodle feedback forum|http://moodle.org/mod/forum/discuss.php?d=116306]] +++[Feedback on CVS seems stale]>\nI decide that I'd like the latest versions of modules to install in a pilot 1.9.4+ moodle. So I use CVS comme ca:\n\n# Login to CVS :\ncvs -d:pserver:anonymous@us2.cvs.moodle.org:/cvsroot/moodle login \n\n# Feedback :\ncvs -z3 -d:pserver:anonymous@us2.cvs.moodle.org:/cvsroot/moodle co contrib/plugins/mod/feedback \n\nHowever, the version.php has the following :\n\n $module->version = 2007121801; // The current module version (Date: YYYYMMDDXX)\n\n $module->requires = 2007101503; // Requires this Moodle version\n\n\nand I know that there's a more recent version. Moreover, when I copy it into moode/mod/feedback and run moodle/admin I get a completely blank page (and I had already installed a differnet module so I do know what I'm doing).\nSo, where can I find the latest, freshest, most bug free version of feedback and why is the version in contrib out of date?\n===\n\nDownloaded correct file from [[andreas|http://www.grabs-edv.de/referenzen/moodle/feedback-Modul/download.php]] unzipped and copied into moo-cat/mod/feedback having removed the previous version. Great success!\n===\n\n* copy ECS theme {{{scp -r markp@barnabas.lly:/var/www/mtest19/theme/formal_ecs/* formal_ecs/}}}\n* copy modifed chameleon theme -- ditto to above\n* update database with production copy. Backup first\n** get Dan Graves' stuff\n* add extra stuff to config.php +++[stuff]\n{{{\n$CFG->defaulthtmleditor='tinymce';\n}}}\n===\n\n* apply appropriate hacks.\n* +++[extra modules]\n* [[OUwiki|http://download.moodle.org/download.php/plugins19/mod/ouwiki.zip]]\n===\n\n
Upon returning from Turkey and examining the state of all the installs that I had done with git I found that not one of them was in a stable state to proceed. They all had issues of one stripe or another (see [[TinyMCE update]]). It turns out that the Moodle [['Liberal Arts Edition'|http://redmine.clamp-it.org/boards/8/topics/show/123]] will have TinyMCE or ~CKeditor as interface editors. So, I'm going to go with this. Apparently the LAE will consist of patches to be applied to the standard 1.9.5 distribution and so I need to go ahead with setting up 1.9.5. This is fine since I also need to suss out whether courses can be 'imported' from hidden categories.\n\n[[Important hiding courses test]]
!!Ideas for Sandbox server\n<<<\nDenise,\nI've been thinking about my Sandbox Server and worrying about drive failure given the recent fracas with the email servers. Currently the machine has a single 250Gb drive and to my knowledge is not part of the ECS backup scheme. I spoke to Randy Schultz before his recent retirement into system hermithood -- I promised him that I would not ask him for *anything* from now on :-). He said that it would be a straightforward matter to configure the system with BSD RAID if there were two identical drives present. I think that this would be a good idea; it would not take too long to set up and I'm wondering whether it would be something that could be undertaken later this year during June for example. What I also thought of this morning was that if we could get such a system going then we could transfer all the obsolete Moodle installs into a new Jail on this system and retire the Hedd server for good. This would also have the benefit of allowing me access to all the old course backups and taking these and other moodle archaeological material off Rahu. Aaron had talked about running the old Moodle code from a Virtual machine, but this would take the effort from off his shoulders and would mean that I could get access to the retired moodle instances and course backups. It would also remove all the old data from Rahu.\n\nTo summarize:\n* Purchase 2 identical drives for RAID 0 on Sandbox Server frumentius (I'd suggest 500Gb at about $150 each). I can do this sometime before end of June.\n* Set up the Sandbox server with these in RAID 0 configuration, transfer all current stuff, and add a new Jail for retired Moodle instances. June/July. I'd need some help with this but probably we could get this done in a morning.\n* Move over old moodle code and database dumps. Myself or Aaron. Note that the retired Moodle code could be run from the Test server but that would require much more overhead and effort from Aaron.\n* Retire Hedd and pull from rack.\nYou don't need to make a decision about this now, but I just thought I'd run the idea past you now.\n<<<\n
Looking at [[3 April 2007 : Coleg Gwent]] again I checked out the Visitor's Centre. Very impressive. I especially liked the way they have organized all their [[code modifications|http://moodle.coleggwent.ac.uk/course/view.php?id=58&topic=7]]\nI am going to use some of these!
Conversation with Welling Hall about Moodle issues:\n\n* The URL issue is still present. {{{Check this out!}}}\n* Confusion with Upload procedure. Reduce options to make things clearer. {{{Test this out with v1.7 to see how things are different}}}\n* Needs to ''duplicate'' assignments / forums or other activities. Current workaround is very kludgy.\n* Would like to be able to manually override a Quiz score. Cannot change any quiz score after it's completed.\n* Forums. Q&A is working well. She uses separate forums rather than multiple questions in the same forum since you can only limit the reposnse time for an individual Forum and not the questions on a forum.\n* Grading. Welling is doing most/all of her grading in Moodle. ''Excel download'' needs to work. Does not work if any of the assignments have an alphabetic grade.\n** Import Moodle grades into Micrograde? Formats?\n** would be nice to have a 'what if' feature in Moodle grading system similar to that of Micrograde. What would a student need to do to get grade up to an 'A' for example.\n\n
Met with Ben Johnson today to suss out more stuff with git.\nWe figured out:\n;Switch branch to //ecs//\n: {{{git checkout ecs}}}\n;Merge branches\n: {{{git merge mark}}} This will do a //fast forward//\n;Push to repository\n:{{{git push /usr/home/moodle/moodle ecs}}}\n----\n{{{git push}}} is ''not'' updating any files in the origin repository. How do I make it do this?\nTry:\n<<<\n{{{\nmarkp/public_html/moodev]$ git branch\n* ecs\n mark\n r\nmarkp/public_html/moodev]$ git status\n# On branch ecs\n# Your branch is ahead of 'origin/ecs' by 18 commits.\n#\nnothing to commit (working directory clean)\n}}}\nYes I ''know'' the local ecs branch is ahead but //git push// doesn't seem to update origin.\n{{{\nmarkp/public_html/moodev]$ git push origin ecs\nEverything up-to-date\nmarkp/public_html/moodev]$ git push origin :\nEverything up-to-date\nmarkp/public_html/moodev]$ git push origin HEAD\nEverything up-to-date\n}}}\n<<<\nBut do the files ''need'' to be changed? If it's distributed then would git get the changes from my repository? \nO tried {{{git status}}} on the moodle repo and it seemed to do a lot of updating.
Posted [[moodle development with git|http://moodle.org/mod/forum/discuss.php?d=119016]] to the developers forum at moodle.org:\n"\nUsing a plethora of resources both in Moodle docs and elsewhere I've been getting my feet wet in the git ocean. Thanks to the indefatigable Martin Langoff I started with this sequence culled from [[Moodle 1.9 + TinyMCE - clean port|http://moodle.org/mod/forum/discuss.php?d=107550]] in order to create a fresh Moodle system for next academic year at Earlham:\n<<<\n-- clone the repo - will take a few minutes...\n{{{git clone git://dev.laptop.org/users/martin/moodle.git}}}\n-- the "default" branch of this repo is for the moodle version we run in the OLPC School Server - not what you want - so create a local branch to track the mdl19-tinymce branch, and switch to it\n{{{git checkout -b mdl19-tinymce origin/mdl19-tinymce}}}\n-- done! so configure and use... ... some time later...\n-- Pull updates from the mdl19-tinymce branch\n{{{git pull}}}\n-- Now, I will be regularly merging fixes from ~MOODLE_19_STABLE so all you need to do is that "git pull" regularly. But perhaps I fall behind, or get rolled over by a bus. If that happens you can merge in updates from the ~MOODLE_19_STABLE branch without waiting for me...\n-- Setup a new 'remote' to track the ~MOODLE_19_BRANCH as imported by catalyst (you only need to do this step once)\n{{{git remote add cat-moodle git://git.catalyst.net.nz/moodle-r2.git}}}\n-- fetch latest code from the catalyst moodle repo (the first time this will take a minute)\n{{{git fetch cat-moodle}}}\n-- before attempting the merge, check that your status is "clean" so it's safe to later "reset" if the merge goes wrong...\n{{{git status}}}\n-- git will tell you about changed files and attempt the merge\n{{{git merge cat-moodle/~MOODLE_19_STABLE}}}\n<<<\nThis worked well and all was hunky dory. So, now I'd like to add modules, blocks, apply edits to tinyMCE config files ''and'' work with two developers on ''~MyMoodle''. So, here's what I think I need to do next:\n* list branches : {{{git branch}}}\n> * mdl19-tinymce\n> mdl19-xs\n* edit //.gitconfig// with personal details\n* update : {{{git pull}}}\n* create new branch : {{{git branch ecs; git checkout ecs}}}\n* Now add modules, blocks, themes, etc : {{{git add path/to/mod}}}\n* Commit to branch {{{git commit}}}\n* repeat add/commit process to hack on mymoodle code\n* when debugged:\n** return to main branch: {{{git branch mdl19-tinymce}}} \n** update : {{{git pull}}}\n** I'm not sure what I need to do at this point. I'd like to do an export of a merged //ecs + current mdl19-tinymce// branches to generate a codebase to use as production server.\n----\nFollowing +++[Inaki Arenaza'a advice]>\nYou could merge 'mdl19-tinymce' into 'ecs'. This would bring all the 'mdl19-tinymce' changesets into 'ecs', and reduce the gap between your branch and the standard one. This would also make merge conflicts less probable in the future, as the 'gap' between branches would reduced with each merge. Note that the merge can produce conflicts that might need to be resolved by hand.\n\nYou could also rebase 'ecs' on top of 'mdl19-tinymce' to keep your 'ecs' history clean and pretty, but if you intend to share you git repo (and you do) this would be a very bad idea (the history is destroyed and a new one is created when you rebase, which leaves your downstream repos with broken trees).\n\nRegarding the repo sharing issue, it depends on the way the other developers are accessing the repo. Have a look at the instructions given on http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#sharing-development.\n=== \n** merge 'mdl19-tinymce' into 'ecs' : {{{git merge mdl19-tinymce ecs}}}\n\nThe other question I'm not sure about is how to share this repository with two other developers.\n
!Configurations applied\n[[TinyMCE fixes|TinyMCE fixes for Moodle]] :\n# ~TinyMCE editor won't display unless this setting is present in //config.php//\n# Browse images set and works\n# Insert date & time work but ''remove buttons as superfluous''\n# Enable //moodlecontent.css// -- this makes the Preview button work (but ''remove'' as superfluous since it doesn't display anything other than the standard WYSYG interface). Also the type size is now set to @@medium@@. Take another look at the css file and try @@75%@@ or similar. Edit the font list for the {{{<pre>}}} tag.\n# gecko spellcheck highlights misspelled words ''but'' is overriden upon right-clicking. Figure out how to disable the ~TinyMCE right-click behaviour.\n!!First try at modified button bar\n* from // lib/editor/tinymce.js.php// +++[button bar code]\n{{{\n theme_advanced_font_sizes: "1,2,3,4,5,6,7",\n theme_advanced_layout_manager: "SimpleLayout",\n theme_advanced_toolbar_align : "left",\n theme_advanced_buttons1: "formatselect, |, bold,italic, |, bullist, numlist, outdent, indent",\n theme_advanced_buttons1_add: "|,justifyleft,justifycenter,justifyright,|, forecolor,backcolor",\n theme_advanced_buttons2: "link,unlink,moodlenolink, |,table ,image, |, selectall,cleanup",\n theme_advanced_buttons2_add: "removeformat,pastetext,pasteword,| ,undo,redo,|,search, code",\n theme_advanced_fonts: "Trebuchet=Trebuchet MS,Verdana,Arial,Helvetica,sans-serif;Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;Wingdings=wingdings", \n theme_advanced_resize_horizontal: true,\n theme_advanced_resizing: true,\n theme_advanced_toolbar_location : "top",\n theme_advanced_statusbar_location : "bottom",\n file_browser_callback : "mce_moodlefilemanager",\n}}}\n=== From these settings you can see that I have only two sets of buttons specified but, as the [[graphic shows|graphics/button_changes_1st_try.png]]<<imagebox>> , a third row pops up and I'm darned if I can figure out where this comes from. Mauno Korpelainen in [[this post|http://moodle.org/mod/forum/discuss.php?d=107550#p512479]] sussed out the problem:\n<<<\nDefault settings are defined in advanced theme (most likely ...tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js) to be something like\n\n theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap",\n\nI have not used this clean port integration but in all cases you can remove the 3rd button row with following tags in init code\n\ntheme_advanced_buttons3 : "",\n<<<\n''this works!''\n!! Second try at modified button bar\n* The //moodlecontent.css// was not being executed (I had moved it up to the top of tinymce.js.php) so I moved it back to its original location. +++[moodlecontent.css]\n{{{\n/* You can extend this CSS by adding your own CSS file with the the content_css option */\n\nbody {\n background-color: #FFFFFF;\n margin: 5px;\n font-family: Verdana, Arial, Helvetica, sans-serif;\n font-size: 90%;\n scrollbar-3dlight-color: #F0F0EE;\n scrollbar-arrow-color: #676662;\n scrollbar-base-color: #F0F0EE;\n scrollbar-darkshadow-color: #DDDDDD;\n scrollbar-face-color: #E0E0DD;\n scrollbar-highlight-color: #F0F0EE;\n scrollbar-shadow-color: #F0F0EE;\n scrollbar-track-color: #F5F5F5;\n}\n\ntd {\n font-family: Verdana, Arial, Helvetica, sans-serif;\n font-size: 90%;\n}\n\npre {\n font-family: "Courier New", Monaco, monospace;\n font-size: 95%;\n}\n}}}\n=== These font sizes do work.\n* Button bar now looks like:\n\n[img[graphics/button_changes_2nd_try.png]]\n\n* +++[init code]\n{{{\n tinyMCE.init({\n mode: "textareas",\n relative_urls: false,\n gecko_spellcheck : true,\n content_css : "/$root/lib/editor/tinymce/moodlecontent.css",\n editor_selector: "form-textarea-advanced",\n document_base_url: "$CFG->httpswwwroot",\n theme: "advanced",\n skin: "o2k7",\n skin_variant: "silver",\n apply_source_formatting: true, \n remove_script_host: false,\n entity_encoding: "raw",\n language: "$editorlanguage",\n directionality: "$directionality",\n plugins: "safari,table,style,layer,advhr,advimage,advlink,emoticons,inlinepopups,media,searchreplace,paste,directionality,fullscreen,moodleimage,moodlenolink,dragmath,nonbreaking,contextmenu,insertdatetime,save,preview,print,noneditable,visualchars,xhtmlxtras,template,pagebreak",\n// plugin_insertdate_dateFormat : "$strdate",\n// plugin_insertdate_timeFormat : "$strtime",\n theme_advanced_font_sizes: "1,2,3,4,5,6,7",\n theme_advanced_layout_manager: "SimpleLayout",\n theme_advanced_toolbar_align : "left",\n theme_advanced_buttons1: "formatselect, |, bold,italic, |, bullist, numlist, outdent, indent",\n theme_advanced_buttons1_add: "|,justifyleft,justifycenter,justifyright,|, forecolor,backcolor,|,charmap,hr",\n theme_advanced_buttons2: "link,unlink,moodlenolink, |,table,visualaid, image, |, selectall,cleanup",\n theme_advanced_buttons2_add: "removeformat,pastetext,pasteword,| ,undo,redo,|,search, code",\n theme_advanced_buttons3 : "",\n theme_advanced_fonts: "Trebuchet=Trebuchet MS,Verdana,Arial,Helvetica,sans-serif;Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;Wingdings=wingdings", \n theme_advanced_resize_horizontal: true,\n theme_advanced_resizing: true,\n theme_advanced_toolbar_location : "top",\n theme_advanced_statusbar_location : "bottom",\n file_browser_callback : "mce_moodlefilemanager",\n\nEOF;\n}}}\n===\n\n''[[Spellchecker|TinyMCE -- Spellchecker]]'' now fixed.\n
* changed permissions of //sharing_cart/shared// to ownership by Apache so that write access enabled: {{{blocks/sharing_cart]$ sudo chown -R www:www shared}}} -- Same error\n* add world write access just in case {{{blocks/sharing_cart]$ sudo chmod -R 777 shared/}}} -- still 'Zip creation failure'\n!!!Breakthrough\n* Tried to ZIP a bunch of files in Moodle -- failed. Checked Site Administration : System Paths and path to zip was set to /usr/local/bin/zip but when I checked it, the zip binary was not there. Strangely enough, unzip was present. How could unzip be present and not zip?\n* Did {{{ /usr/ports/archivers/zip]$ make install clean}}} and zip compiled successfully. Repeat for gzip.\n* Reset //sharing_cart/shared// to ownership markp:admin and normal 755 access. Note that path to zip is now found in Site Administration : System Paths\n* ''Sharing Cart WORKS''\nReported back to +++[CONTRIB-1090]>\nI tried changing permissions and ownership and was flummoxed when I got the same error. So I checked to see whether ZIP actually worked by attempting to zip a bunch of files (I had tested unzip before) and it did not. So I took a look at Site Administration : System Paths and path to zip was set to /usr/local/bin/zip but when I checked it, the zip binary was not there. So, there you have it -- the error messages were generated because the system could not find the zip binary - mea culpa and many apologies. To create the program I just did /usr/ports/archivers/zip]$ make install clean and the source was downloaded and compiled - the wonders of FreeBSD!\n\nI have tested the code with Activities such as OUWiki and it seems to work fine. Will do some more testing. So, apologies once again -- this was never a bug!\n===\n
Following from [[moo-195 problems]] I get this error opening any course:\n{{{\nWarning: Invalid argument supplied for foreach() in /usr/home/markp/public_html/moo-195/blocks/yui_menu/plugin/mods.php on line 31\n}}}\nHaving updated the database for [[Fileresponse quiz question type]] I get the following error message:\n{{{\nWarning: Call-time pass-by-reference has been deprecated in /usr/home/markp/public_html/moo-195/blocks/yui_menu/block_yui_menu.php on line 63\n}}}\nAlthough this is just a Warning, it's till spooky.
On rerun of moo-cat production:\n* no errors with attendance -- because of [[Update attendance]]\n* no errors with exercise -- [[Problems with exercise module]] -- fixed by removing code from moo-cat dir (copy in in markp so no need to backup)\n* errors with ~OUwiki creating tables (similar to exercise). +++[Drop ouwiki tables]>\nDo you really want to : DROP TABLE `mdl_ouwiki`, `mdl_ouwiki_comments`, `mdl_ouwiki_links`, `mdl_ouwiki_locks`, `mdl_ouwiki_pages`, `mdl_ouwiki_sections`, `mdl_ouwiki_subwikis`, `mdl_ouwiki_versions`;\n=== and reload. This does the trick.\n!!Finally\n''Database was successfully upgraded''\nBackup version is now 2008030301
Monteze was only attendee. Dealt with three topics:\n!!!1 Attendance\n* Once you've clicked on a column in the attendance register you cannot toggle it off. So, once you've clicked A for attend you can only adjust each radio button.To reset you have to go back.\n* Date format is //day/month/year//. This can get confusing -- figure out how to change to //month/day/year//\n!!!2. File formats/fonts\nSome students were complaining that a MS Word resource was appearing in a strange font on their PC. Tried it on a Lab PC and , yes, this was happening. [[screenshot|graphics/word_screen_fontsbad.png]]<<imagebox>>\nI discovered that the content was copied from a New York Times article and pasted in to Word on the Mac. It looked fine on the Mac but got saved in Lucida grande font which does not occur on the PC and hence the weird font substitution.\n;''Solution:''\n: Use Web page resource instead. Select Add resource -- > Compose web page, copy article from online newspaper, and past in to body textarea. Add Title and Summary and Save. Very fast display and no font issues.\n!!!3. Advanced uploading of files\n* We noted that she had rather long wordy titles. When we shortened the titles things were a lot clearer.\n* Upload response file ''first'' and then grade and add comment. Otherwise after the upload the page gets refreshed and former content is lost.\n* can place HTML codes in titles. Eg italics with <i>\n
Which of the support people listed above are involved in accomplishing the following tasks. For example, the Instructional Technologist, and Reference Librarians are all involved in immediate support and training, and the IT person is also involved with Moodle administration and configuration.\n|!EXAMPLE|>|>|>|>|>|>|>|>|!Person|\n|!Task|!1|!2|!3|!4|!5|!6|!7|!8|!None|\n|Immediate support for faculty & students (Email/phone/chat)| x | x | x | | | | | | |\n|Training faculty (one on one, workshops)| x | x | x | | | | | | |\n|Training students (in class, out of class sessions, individual)| x | x | x | | | | | | |\n|Creating documentation (written,screen cast, web)| x | | | | | | | | |\n|Moodle administration (configure roles, fix problems, create workarounds)| x | | | | | | | | |\n|Moodle configuration (customize & install themes, test & install modules)| x | | | | x | | | | |\n|Server care & maintenance (backup, database backup, performance enhance)| | | | | x | | | | |\n----\n\n|! |>|>|>|>|>|>|>|>|!Person|\n|!Task|!1|!2|!3|!4|!5|!6|!7|!8|!None|\n|Immediate support for faculty & students (Email/phone/chat)| | | | | | | | | |\n|Training faculty (one on one, workshops)| | | | | | | | | |\n|Training students (in class, out of class sessions, individual| | | | | | | | | |\n|Creating documentation (written,screen cast, web)| | | | | | | | | |\n|Moodle administration (configure roles, fix problems, create workarounds)| | | | | | | | | |\n|Moodle configuration (customize & install themes, test & install modules)| | | | | | | | | |\n|Server care & maintenance (backup, database backup, performance enhance)| | | | | | | | | |\n\n
+++!![Log of all my activity on moodev]\n{{{\ncommit eaacb61f51f7d6c1dd5271dadc389314c305bded\nAuthor: markp <markp@earlham.edu>\nDate: Thu Apr 16 15:30:43 2009 +0000\n\n dded chameleon_ecs theme as hacked on recently by me\n\ncommit fa883f5bceedc9e014f16fedd1b927d8831ea79b\nAuthor: markp <markp@earlham.edu>\nDate: Thu Apr 16 15:25:53 2009 +0000\n\n added formal_ecs theme. Need to hack on this\n\ncommit b9dcba640c34eeb08003cfab2e625fd5ae102edf\nAuthor: markp <markp@earlham.edu>\nDate: Thu Apr 16 15:09:44 2009 +0000\n\n added the attendance block and mod downloaded from the moodle.org database. This is the latest\n code as of writing, esp compared with CVS vcersion.\n :\n\ncommit 89164c2cd5547d092fe6f6a7483cfc92a383a571\nAuthor: markp <markp@earlham.edu>\nDate: Thu Apr 16 14:54:32 2009 +0000\n\n deleted CVS version of attforblock. Will replace with downlaoded version which is newer and bug fixed.\n\ncommit c2d83a464f3f1196744aef502c2ee00890146c47\nAuthor: markp <markp@earlham.edu>\nDate: Thu Apr 16 14:40:19 2009 +0000\n\n removed the CVS version of attendance because it was not the latest version and had created errors\n when updating th production database. Will add in the downloaded attenandance later.\n\nAuthor: markp <markp@earlham.edu>\nDate: Thu Apr 16 15:25:53 2009 +0000\n\n added formal_ecs theme. Need to hack on this\n\ncommit b9dcba640c34eeb08003cfab2e625fd5ae102edf\nAuthor: markp <markp@earlham.edu>\nDate: Thu Apr 16 15:09:44 2009 +0000\n\n added the attendance block and mod downloaded from the moodle.org database. This is the latest\n code as of writing, esp compared with CVS vcersion.\n :\n\ncommit 89164c2cd5547d092fe6f6a7483cfc92a383a571\nAuthor: markp <markp@earlham.edu>\nDate: Thu Apr 16 14:54:32 2009 +0000\n\n deleted CVS version of attforblock. Will replace with downlaoded version which is newer and bug fixed.\n\ncommit c2d83a464f3f1196744aef502c2ee00890146c47\nAuthor: markp <markp@earlham.edu>\nDate: Thu Apr 16 14:40:19 2009 +0000\n\n removed the CVS version of attendance because it was not the latest version and had created errors\n when updating th production database. Will add in the downloaded attenandance later.\n\ncommit 87fbd9b8b020d2108b7e49e691cddfce1cc18449\nAuthor: markp <markp@earlham.edu>\nDate: Thu Apr 16 13:52:28 2009 +0000\n\n accidently overwrote config-dist so copied that back from moo-cat\n config-test uses the moomark database and the local data dir\n config-prod uses the production database (mooprod) and production data dir in /home/moodle\n config.php is the working config -- copy from whichever you want to work from\n\ncommit 5af7efefaba54837199646cce25ad43fb60b5982\nAuthor: markp <markp@earlham.edu>\n\nDate: Tue Apr 14 20:59:00 2009 +0000\n\n changes made to reflect location of production data in /home/moodle/data\n\ncommit 35613340d1e91a408a4c638bae9f619ec521e57d\nAuthor: markp <markp@earlham.edu>\nDate: Tue Apr 14 20:48:44 2009 +0000\n\n this is the config.php that I'll use with the production datbase and dat dir located in /home/moodle\n\ncommit 003fc4bbcadf726f395e4028d989a03ff3740752\nAuthor: markp <markp@earlham.edu>\nDate: Tue Apr 14 18:20:12 2009 +0000\n\n removed exercise module since it is obsolete and creates an infinite loop in table ccreation\n when starting the new database. See moodle issues tiddlyw for details.\n\ncommit 477a944e595f76aaee2f40865302315139f47707\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 22:05:23 2009 +0000\n\n copy of moodlecontent.css from ~web/moo-cat/lib/editor/tinymce. This is the configuration file\n for the content of the tinyMCE web editor. Full details in moodle issues wiki.\n\ncommit 6c20b73e6745b0f47017c11a963fabaf6ea9bba7\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 21:57:45 2009 +0000\n\n copied over modifed tinymce.js.php from web/moo-cat (see moodle issues wiki -- TinyMCE configure for details\n of configurations applied\n\ncommit ec6c06aa0dfa6b4560649e4141cf1493fceb8827\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 21:50:04 2009 +0000\n\n enable tinyMCE web editor as default html editor\n\ncommit a892bf8f99e94885b7d43bee3c4f9985b5196563\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 16:19:30 2009 +0000\n\n vital 'course menu' block\n\ncommit 35237e3d01b31e0cb10f9ed54b81fd7a999d7586\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 16:12:32 2009 +0000\n\n second half of attendance.\n\ncommit ce33801ded1b8e239c1b5b6847e0fe7a245d5f4a\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 16:01:30 2009 +0000\n\n the 'attforblock' component of attendance. Also add the attendance block\n\ncommit a54e5487ab7704e154f01d155ef4f90ae5ecdda4\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 15:29:26 2009 +0000\n\n latest CVS version of book. Note '1.5 beta' in version.php\n\ncommit 56790305075b6b054a07e20916e1b68eb6f49e62\nAuthor: markp <markp@earlham.edu>\nDate: Wed Apr 8 21:01:14 2009 +0000\n\n added feedback module. see http://www.earlham.ed/markp/sindex.html#[[Mark's development with git %232]]\n\ncommit 4818edecc2c0870defbdce2e1b308c321609b116\nAuthor: markp <markp@earlham.edu>\nDate: Wed Apr 8 19:10:57 2009 +0000\n\n nitial commit of config.php\n\ncommit 8736c5df5afdf9faa615422f43609bdff49e6d31\nMerge: e602aec... 5a966b8...\nAuthor: Mark <markp@rublev.lly>\nDate: Mon Mar 30 20:04:11 2009 +0000\n\n Merge commit 'cat-moodle/MOODLE_19_STABLE' into mdl19-tinymce\n\ncommit 5a966b8089fbccc4893788692afc8d4b7a9a5bb3\nAuthor: skodak <skodak>\nDate: Mon Mar 30 17:34:56 2009 +0000\n\n MDL-18540 undoing regression in last commit, sorrry - thanks Eloy\n\ncommit 898be4fbdb56812f438f4772001e181fdd641b90\nAuthor: skodak <skodak>\nDate: Mon Mar 30 17:10:00 2009 +0000\n\n MDL-18540 fixing "extra" memory strings; backported from HEAD\n\ncommit f60ff51cacb47aab3b3c720a5296c3ad7625ef74\nAuthor: dongsheng <dongsheng>\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 21:57:45 2009 +0000\n\n copied over modifed tinymce.js.php from web/moo-cat (see moodle issues wiki -- TinyMCE configure for details\n of configurations applied\n\ncommit ec6c06aa0dfa6b4560649e4141cf1493fceb8827\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 21:50:04 2009 +0000\n\n enable tinyMCE web editor as default html editor\n\ncommit a892bf8f99e94885b7d43bee3c4f9985b5196563\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 16:19:30 2009 +0000\n\n vital 'course menu' block\n\ncommit 35237e3d01b31e0cb10f9ed54b81fd7a999d7586\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 16:12:32 2009 +0000\n\nsecond half of attendance.\n\ncommit ce33801ded1b8e239c1b5b6847e0fe7a245d5f4a\nAuthor: markp <markp@earlham.edu>\n\ncommit 6c20b73e6745b0f47017c11a963fabaf6ea9bba7\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 21:57:45 2009 +0000\n\n copied over modifed tinymce.js.php from web/moo-cat (see moodle issues wiki -- TinyMCE configure for details\n of configurations applied\n\ncommit ec6c06aa0dfa6b4560649e4141cf1493fceb8827\nAuthor: markp <markp@earlham.edu>\n\n copy of moodlecontent.css from ~web/moo-cat/lib/editor/tinymce. This is the configuration file for the content of the tinyMCE web editor. Full details in moodle issues wiki.\n\n\ncommit 6c20b73e6745b0f47017c11a963fabaf6ea9bba7\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 21:57:45 2009 +0000\n\n copied over modifed tinymce.js.php from web/moo-cat (see moodle issues wiki -- TinyMCE configure for details\n of configurations applied\n\ncommit ec6c06aa0dfa6b4560649e4141cf1493fceb8827\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 21:50:04 2009 +0000\n\n enable tinyMCE web editor as default html editor\n\ncommit a892bf8f99e94885b7d43bee3c4f9985b5196563\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 16:19:30 2009 +0000\n\n vital 'course menu' block\n\ncommit 35237e3d01b31e0cb10f9ed54b81fd7a999d7586\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 16:12:32 2009 +0000\n\n second half of attendance.\n\ncommit ce33801ded1b8e239c1b5b6847e0fe7a245d5f4a\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 16:01:30 2009 +0000\n\n the 'attforblock' component of attendance. Also add the attendance block\n\ncommit a54e5487ab7704e154f01d155ef4f90ae5ecdda4\nAuthor: markp <markp@earlham.edu>\nDate: Mon Apr 13 15:29:26 2009 +0000\n\n latest CVS version of book. Note '1.5 beta' in version.php\n\ncommit 56790305075b6b054a07e20916e1b68eb6f49e62\nAuthor: markp <markp@earlham.edu>\nDate: Wed Apr 8 21:01:14 2009 +0000\n\n added feedback module. see http://www.earlham.ed/markp/sindex.html#[[Mark's development with git %232]]\n\ncommit 4818edecc2c0870defbdce2e1b308c321609b116\nAuthor: markp <markp@earlham.edu>\nDate: Wed Apr 8 19:10:57 2009 +0000\n\n nitial commit of config.php\n\ncommit 8736c5df5afdf9faa615422f43609bdff49e6d31\nMerge: e602aec... 5a966b8...\nAuthor: Mark <markp@rublev.lly>\nDate: Mon Mar 30 20:04:11 2009 +0000\n\n Merge commit 'cat-moodle/MOODLE_19_STABLE' into mdl19-tinymce\n--------------------------------------------------------------------------\ncommit 5a966b8089fbccc4893788692afc8d4b7a9a5bb3\nAuthor: skodak <skodak>\nDate: Mon Mar 30 17:34:56 2009 +0000\n\n MDL-18540 undoing regression in last commit, sorrry - thanks Eloy\n}}}\n=== \n
!!Thoughts on Moodle Development.\nHelen Foster recently put out a call :[[Wanted: New feature ideas for GSOC projects|http://moodle.org/mod/forum/discuss.php?d=116728]]\nHelen referred to a list of [[Projects for new developers|http://docs.moodle.org/en/Talk:Projects_for_new_developers]].\n[[Google Summer of Code for moodle|http://docs.moodle.org/en/GSOC]]\n\n*Should our CLAMP group be looking to sponser/mentor a student project?\n\nOne of the issues that we are wrestling with is [[Ability to copy (or clone) an activity -- MDL-11288|http://tracker.moodle.org/browse/MDL-11288]] but I'd like to place this into a wider context of a structure course outline.\n
* test out course import\n* change global default course settings\n* Try out importing courses with ULPGC assignments. I'm not hopeful here but there you are.\n* Priority is getting the Wiki to work\n* Use Chameleon to create new Moodle style.\n\n!!Policy\n* add old faculty from Misc:Intro course\n* get list of new faculty from Randy/Denise and add them by batch\n* create new courses\n* for courses that are a repeat of last Fall's, restore backup\n* make backup ZIPs generally available (note that link doesn't work as yet)\n* add links to front page pointing to 0607 and 0506 moodles\n\n
!!Add Sharing Cart to mark/moodev\n# documentation at [[sharing cart|http://docs.moodle.org/en/Sharing_Cart]]\n# downloaded sharing cart from [[moodle plugin db|http://download.moodle.org/download.php/plugins/blocks/sharing_cart.zip]] and also CVS update contrib/plugins/blocks/sharing_cart.\n# did a diff between these to code dirs and established that they were the same. Use the zip download.\n# switch config.php to config-test.php. Do the git thing {{{git commit -a}}}\n# copy sharing_cart into markp/public_html_moodev/blocks {{{/markp/public_html/moodev]$ cp -r /usr/home/markp/moo-plugins/sharing_cart blocks}}}\n# update the git thing {{{git add sharing_cart/ ; git commit -a}}}\n# create tables etc -- go to http://rublev.lly.earlham.edu/~markp/moodev/admin\n!!Issue\nSettings page has no settings revealed [[screenshot|graphics/sharing_cart_settings.png]]<<imagebox>>. [Save changes] returns to same page.\n\n;Note:\n: [[18 March 2009 : Sharing cart fix]]
[[Improvements to MyMoodle page|http://tracker.moodle.org/browse/MDL-13583]]\non 4/21 Email to Jenny Gray, developer of ~MyMoodle:\n<<<\nIn the Improvements to the ~MyMoodle page on the moodle tracker (MDL-13583) you state the following:\n> This patch includes fixes for MDL-12073 and MDL-12074 using the new dml functions, but they could easily be back-ported to 1.8.x if you wanted.\nIt seems that the patches that you offer are against Moodle version 2.0. I would desperately like to have a couple of those patches for version 1.9.4 / 5, namely MDL-13587 'Click to hide/click to reveal on the box around the course', and the one that orders courses newest first. The reason is as follows:\n\nWe have been using Moodle at Earlham College since version 1.3. Every academic year we have started out with a new Moodle version and a fresh database. This has served us reasonably well so far since it has served to keep the database unpolluted and the system reasonably stable. But it has also meant regular yearly paroxysms of setting up new departmental categories, creating new users and courses and carrying over last year's courses from course backups when requested. However, this system has meant that we have been able to use MyMoodle as the main landing page after logging in despite it's limitations. The chief of these is that there is currently (in 1.9.4 at least) no way to hide or conceal courses faculty are not currently using, and there's no way to order the course list with the most frequently used at the top. I get frequent complaints about Moodle being 'cluttered' on account of the number of courses displayed in the user's MyMoodle screen.\n\nGiving users the ability to hide courses they no longer use and also reorder courses with the most used at the top would mean that I can carry over this year's database to next academic year and continue to use version 1.9.5 which will be a great boon :-).\n\nLooking forward to your reply.\n<<<\nEmail bounced so found her profile on moodle.org and sent a Moodle message instead!\n
Followup to [[22 April 2009 : MyMoodle queries]]\n\nResponse from Jenny Gray:\n<<<\nI'm not j.h.gray, so that wouldn't have reached me!\n \nWe're running the patches you ask for on 1.9.4 on OpenLearn (http://openlearn.open.ac.uk - feel free to register and nose around) so there shouldn't be any problem with working out a patch for you. \n \nI'm in a conference session right now, so I'll take a look when I get a break and see if I can set up a patch for you. I should also be able to work some tweaks up for you around ordering of courses and which ones do and don't get displayed because we've played with those too. Essentially my Moodle lists everything the user has course:participate permission in - if users are seeing courses that they don't want to see you can either change the permission used to work out the list or alter their permissions so they don't have participate in those courses. \n \nI'll get back to you later!\n<<<\n----\nMy response:\n<<<\nJ.M.Gray wrote:\n> I'm not j.h.gray, so that wouldn't have reached me!\n> \nWoops. My fault! Thanks for replying to me.\n> \n> We're running the patches you ask for on 1.9.4 on OpenLearn (http://openlearn.open.ac.uk - feel free to register and nose around) so there shouldn't be any problem with working out a patch for you. \n> \nI have registered. There's a big problem though -- there's so much interesting material here I'm bound to burn a lot of time!\n\n> I'm in a conference session right now, so I'll take a look when I get a break and see if I can set up a patch for you. I should also be able to work some tweaks up for you around ordering of courses and which ones do and don't get displayed because we've played with those too. Essentially my Moodle lists everything the user has course:participate permission in - if users are seeing courses that they don't want to see you can either change the permission used to work out the list or alter their permissions so they don't have participate in those courses. \n> \nEssentially the optimal situation would be for teaching faculty to retain the Teacher role for last academic year's courses so that they can do course backups and import into a new course in the new academic year, but for them to have the ability to hide (CSS display:none; ?) the course display in MyMoodle. That way they could just retain the current courses on view. The hid/click to reveal activities is icing on the cake ... and delicious too :-) \n<<<\n----\nGot reply from Jenny Gray:\n<<<\n>for them to have the ability to hide (CSS display:none; ?) the course display in MyMoodle\n\n I should just point out that the patch doesn't remember their settings from one web session to another. That could be added I guess, in the same way as the block collapsing works, but we've not bothered.\n \n OK, now onto the real work. The MDL-13587 patch should just apply to 1.9.x as it doesn't contain any database changes. The real meat is in course/lib.php though, so a simplified print_overview() function that should do the job for you is attached. Warning - untested code. If it doesn't work, let me have the errors and I'll take another look. \n Changing the order of courses is much simpler. Take a look in my/index.php and find the line with a call to get_my_courses. The sort order is the second parameter, "visible DESC, sortorder ASC". You can change this to whatever you want. Newest first date would be 'timemodified DESC' I think though my code just says "time modified" so that might be a bug.\n<<<\n[[Attached code|modules/course_lib.phps]]
Part of email msg from Jon Branstrator:\n<<<\n> On your item 1, some course files may be sought for a variety of reasons. For example, should Meg Streepey's\n> Freshman Seminar course this semester be listed only under Geosciences? Or might someone want to bring up \n> files from all Freshman Seminars offered per semester, or year or whatever? Maybe some dual or multiple \n> listings would make the files more accessible.\n\nUnfortunately, cross listing can't be done with the Moodle system. But I do like the idea of being able to browse for courses. To do this, you would have to associate 'meta-data' with each course so that in order to find all Freshman seminars for example, you'd need a meta-data label that contained the information ('Freshman seminar' in this instance) to browse on. I like this idea because down the road, when you have several year's worth of courses available it would be nice to find what you're looking for in a browsing way.\n<<<\n!!Meta-data\n# Category (department) with option to include cross-listed categories?\n# Year [all, 06/07, 05/06, 04/05]\n# Semester [Fall, Spring, May, August]\n# Primary Teacher (with option to change to any teacher)\n* other fields?\n!!!Notes\nAll this data (apart from exceptions below) is stored in the database and so there should be no need for a separate meta-data table.\n* exception is cross-listed courses. These would need an additional database table. Moreover, the info would have to be entered somehow for courses already present in the Moodle system.
!!Course Restore Tests\nTest the following course backups with [[http://moodle.macarius.earlham.edu|http://moodle.macarius.earlham.edu]] :\n# course with resources only -- backup-ip150-1_0720-20070515-0406.zip\n# Standard course with assignment -- backup-phil270-20070515-0433.zip\n# Course with ULPGC assignment -- backup-mgt_320_0720-20070515-0411.zip\n# Course with wiki -- backup-geos211_0710-20070515-0126.zip\n# Courses with images -- backup-geos_355_0710-20070220-0149.zip\n!!Procedure\n# backup the moodle install with {{{tar -cvzf moodle_18latest.tgz moodle1.8}}}\n# restore the course into a new course.\n** check users generated.\n** check that the assignments work\n** check other stuff\n!!Results\n[[Course Restore testing]]
!!Email to Aaron\nLast week Dylan and I sussed out what was going wrong with the ZIP download of submissions. You can download the archive from here: \n[[http://blogs.frumentius.earlham.edu/mstats/files/23|http://blogs.frumentius.earlham.edu/mstats/files/23]]\n\nRead the INSTALLATION.txt but note that you do not need to substitute the lib.php or submissions.php -- all that needs to be done is to put the new assignment.class.php into the correct directories under moodle/mod/assignment/type. You should be able to do this at any time when there are no users since the only thing that changes is the function for downloading submitted assignments.\n\nLet me know if you have any questions.\n
!!!Thursday, 25 January 2007\nB Welling Hall [07:05 PM]: Hi Mark, I just discovered inadvertently that it is possible to prevent students from seeing comments on an assignment. At least for an online text assignment, if the link is hidden to students, they can't see comments until the link is turned back on. So, in future, at deadline time, I'll turn the link off and then turn it back on when I'm finished grading.\n!!!Friday, 26 January 2007\nMark Pearson [02:11 PM]: I understand what you're saying. Nice idea for a workaround to the issue of all students seeing grrades/comments at the same time.\n\nThanks\n
!!Load production database and test\n# Use new folder for all backup operations: {{{moo-archives}}}\n# Backup empty database {{{ mysqldump -u moodlebackup -p -CQe moocat >moo-cat_pre-prod-load.sql}}}\n# Backup codebase prior to installing new modules: {{{ tar -czvf ~/moo-archives/moo-cat_pre-prod-load.tgz moo-cat}}}\n# update db with production sql : {{{mysql -u root -p -D moocat <moodleDB-peace.sql}}} (note new passwd)\n----\nGot a bad error after trying to login -- cannot access {{{http://rublev.lly.earlham.edu/moo-cat/admin/index.php}}}\nIt could ''not'' be an Apache problem since this code had been working fine.\nI suspected that it was a problems with the database. But what?\nSo I went ahead and installed [[phpmyadmin|http://www.earlham.edu/markp/ITI_wiki/#%5B%5B27 February 2009 -- Install phpmyadmin%5D%5D]] which I got going after a number of headaches.\nOn a hunch I did a search for ''https:'' (+++[sql code]\n{{{\nSELECT *\nFROM `moocat`.`mdl_config`\nWHERE (\n`id` LIKE '%https%'\nOR `name` LIKE '%https%'\nOR `value` LIKE '%https%'\n)\nLIMIT 0 , 30\n}}}\n=== ) and I found what I was looking for \n<<<\ntable mdl_config\n|!id|!name|!value|\n| 84|loginhttps| 1|\n<<<\nSo I changed the ''loginhttps'' vlaue from 1 (true) to 0 (false), Saved and reloaded moodle.\nLogin now worked!\n!! Run updates\n* +++[Upgrade database]>\n* Upgrading Moodle database from version 1.9.2+ (Build: 20080730) (2007101520.03) to 1.9.4+ (Build: 20090209) (2007101540)...\n\nYour Moodle files have been changed, and you are about to automatically upgrade your server to this version:\n''1.9.4+ (Build: 20090209) (2007101540)''\nOnce you do this you can not go back again.\nPlease note that this process can take a long time.\nAre you sure you want to upgrade this server to this version?\n----\nI will do this since I do have a copy of both originals -- click [Yes]\n=== \n* +++[Server checks] \nare OK:\n{{{\nName Information Report Status\nmoodle version 1.0 is required and you are running 1.9.2 OK\nunicode must be installed and enabled OK\ndatabase mysql version 4.1.16 is required and you are running 5.0.75 OK\nphp version 4.3.0 is required and you are running 5.2.8 OK\nphp_extension iconv should be installed and enabled for best results OK\nphp_extension mbstring should be installed and enabled for best results OK\nphp_extension curl should be installed and enabled for best results OK\nphp_extension openssl should be installed and enabled for best results OK\nphp_extension tokenizer should be installed and enabled for best results OK\nphp_extension xmlrpc should be installed and enabled for best results OK\nphp_extension ctype should be installed and enabled for best results OK\n}}}\n=== \n* +++[Plugins check]\nvery nice display with three columns :\n''Activity module''\n|!Directory|!Name|!Status|\n|mod/attforblock |Attendance |Non-standard |\n|mod/book |Book |Non-standard |\n|mod/exercise |exercise |Standard (about to be installed) |\n|mod/ouwiki |ouwiki |Non-standard (about to be installed) |\n\n''Blocks''\n|!Directory|!Name|!Status|\n|blocks/attendance |Attendance |Non-standard |\n|blocks/yui_menu |Course Menu |Non-standard |\n=== \n* [[Database update success|graphics/prod_database_update.png]]<<imagebox>>\n* Heap of new settings -- [[changed settings|graphics/changed_settings.png]]<<imagebox>>\n* Setting up module tables \n** +++[errors with attendance]\n<<tiddler [[attendance errors]]>>\n----\n!!!Attendance code fix\n<<tiddler [[Update attendance]]>>\n=== CVS update of code fixed these\n** +++[errors with exercise]\n<<tiddler [[Problems with exercise module]]>>\n----\n!!!Exercise solution\n<<tiddler [[Exercise module -- solution]]>>\n=== sussed by dint of deleting the exercise code\n\n
Enable the following in a Teacher profile:\n* Forum Posts\n* Notes\n* Activity Reports (?)\nConfigure default course menu to be applied to all newly created courses. Add:\n* Attendances\n* Participants\n* Messages\n* Assignments\n* Forums\n* Resources\n* Feedback\nFrom [[YUI based course menu|http://moodle.org/mod/forum/discuss.php?d=76661]]\n<<<\nUsing Moodle: YUI based course menu\nI%u2019ve made some more changes to the menu. Now it supports menu items for any activity module (except %u201Clabel%u201D), even 3rd party ones, as long as they were coded properly. By default it only displays the ones in the course.\nThe visibility of the outline is now configurable. I also disabled it by default because it wasn't very helpful for our usage of it.\nI still have a few more changes to do before I%u2019m mostly happy with it. I want to make a system wide configuration for default settings, disabling items, and adding new ones.\n<<<\nRemove Messages block as default (/config.php)\nNews Forum seems to be created in week 0 when the Outline in clicked in the Course menu block. Interesting.\n
The [[Coleg Gwent Moodle|http://moodle.coleggwent.ac.uk/]] has an impressive [[Visitors Centre|http://moodle.coleggwent.ac.uk/course/view.php?id=58&topic=4]] accessible without logging in (though you do have to agree to Terms and Conditions). All the modules/blocks are working with v1.7. Here are some screenshots:\n* [[blocks & modules|graphics/gwent_block_modules.png]]<<imagebox>> with links to the downloadable code!\n** Alton College's [[online resources block|Moodle blocks: Online Resources]]\n** HSU Course Menu\n** Live Stats block\n** HSU's [[MyFiles|Moodle modules : MyFiles]]\n** Book\n** JPG Slideshow\n** Feedback -- a simpler version of Questionnaire\n* [[Code modifications|graphics/gwent_code_mods.png]]<<imagebox>> used\n* [[Maintenance scripts|graphics/gwent_maintenance_scripts.png]]<<imagebox>>\n** [[Category sorter sauce|modules/sortcats.php ]]\n* Moodle on Mobile Phones -- tip to tweak Moodle not to use session cookies with Opera Mini browser\n* [[Rotating images|http://moodle.coleggwent.ac.uk/course/view.php?id=58&topic=9]] with an embedded iframe inside Moodle.\n\n\n
Today Kerri:\n# fixed Dan Graves' ~MUS141 as per recent email.\n# Added all teaching faculty into Moodle course entitled [[MISC-TOM:2009 Teachers on Moodle|https://moodle.earlham.edu/course/view.php?id=273]].\n# Announced that she wouldn't be able to do much since she has Senior Sem this semester and is taking 18 credits worth of courses. Suggested Jamie Hersh to replace her.
I set up Amy & Neal with the [[Librarian Moodle support|New role : Librarian Moodle Support]] role. But what's happening is that they are //de facto// subscribed to //every// course and thus they get all the course announcements sent via email. I made a post ([[Role setting to prevent auto-subscription in News forum|http://moodle.org/mod/forum/discuss.php?d=78845]]) in the Roles and Capabilities Forum of [[moodle.org|http://moodle.org]] and got a suggestion to "set the 'Initial Subscription' entry to Not Set" but this did not prevent emails. Today I got the desperate message:\n<<<\nI'm begging you to *please, please, please* take me off as the "librarian" role for the entire Moodle site until we can find another solution. I'm getting all of the message for all of the forum posts for all of the classes. Every single, "Don't forget the assignment", "This is my opinion of the reading", etc. It's filling up my inbox, and making it difficult to sort out my valid mail. There over 60 messages from this weekend alone. \n<<<\nThe only workaround that we can think of is to use a dummy user with a gmail account that can fill up and be emptied periodically.
It's a given that faculty create some course content, but what content is handled by others in your Institution? Who does the scanning of printed material? How are requests for help with course design handled? \nFor example, the Moodle admin does no regular scanning; this is handled by departmental secretaries and faculty users themselves.\n|>|>|>|>|>|>|>|>|>|>|!EXAMPLE|\n|!Activity|>|>|>|>|>|>|>|>|>|!Support people|\n|! |!faculty|!1|!2|!3|!4|!5|!6|!7|!8|!None|\n|Scan / upload printed material| x | | | | x | | x | | | |\n|Rip audio / video & upload| x | x | | | | | x | | | |\n|Design course framework & insert content| x | x | | | x | | x | | | |\n\n----\n\n|!Activity|>|>|>|>|>|>|>|>|>|!Support people|\n|! |!faculty|!1|!2|!3|!4|!5|!6|!7|!8|!None|\n|Scan / upload printed material| | | | | | | | | | |\n|Rip audio / video & upload| | | | | | | | | | |\n|Design course framework & insert content| | | | | | | | | | |\n\n
Test out adding users and new courses to moo-195\n{{{\n/markp/moo-archives]$ mysqldump -u mooclamp_user -p -C -Q -e mooclampprod >pre-course_update.sql\n}}}\n!!Course format\n{{{\nfullname shortname category sortorder idnumber format startdate numsections teacher1_role teacher1_account\nAAAS114:201010 - Intro. Afr and Afr Amer Studies AAAS114:201010 /African American Studies Prog (AAAS)/ 1 10210:201010 topics 8/23/2009 8 editingteacher phyllisb@earlham.edu\n}}}\nuse {{{http://rublev.lly.earlham.edu/~markp/moo-195/admin/uploadcourse.php}}}\n\nUsed file : C:\sDocuments and Settings\smarkp\sMy Documents\smoodle\sMoodle Extracts\syear 2010\s2010_courses_full_edited.csv\n\nOutput:\n<<<\nParsed 182 course(s) from CSV\nCreated 168 course(s) out of 182\n14 course(s) were skipped (duplicate ShortName)\n1 new category(ies) were created\nYou may wish to manually Re-Sort the categories\nRe-Sorted courses\nANALYZE Database Tables OK\nOPTIMIZE Database Tables OK\nTotal Execution Time: 4.2 s\n<<<\n''change category 'Management' to 'Business and Non-Profit Management' ''\n
Has the Moodle Catalyst actually been updated?\n{{{\n[markp@rublev /usr/home/moodle]$ git clone git://dev.laptop.org/users/martin/moodle.git\n}}}\n<<<\nInitialized empty Git repository in /usr/home/moodle/moodle/.git/\nremote: Generating pack...\nremote: Counting objects: 195662\nremote: Done counting 279488 objects.\nremote: Deltifying 279488 objects...\nremote: 100% (279488/279488) done\nremote: Total 279488 (delta 204497), reused 278842 (delta 204008)\nReceiving objects: 100% (279488/279488), 106.42 MiB | 5934 KiB/s, done.\nResolving deltas: 100% (204497/204497), done.\nChecking out files: 100% (5077/5077), done.\n<<<\n{{{\n[markp@rublev /usr/home/moodle]$ cd moodle/\n[markp@rublev /usr/home/moodle/moodle]$ git checkout -b mdl19-tinymce origin/mdl19-tinymce\n}}}\n<<<\nBranch mdl19-tinymce set up to track remote branch refs/remotes/origin/mdl19-tinymce.\nSwitched to a new branch "mdl19-tinymce"\n<<<\n{{{\n[markp@rublev /usr/home/moodle/moodle]$ git remote add cat-moodle git://git.catalyst.net.nz/moodle-r2.git\n[markp@rublev /usr/home/moodle/moodle]$ git fetch cat-moodle\n}}}\n<<<\nScreeds of output.\n * [new tag] V20060429 -> V20060429\n * [new tag] V20060903 -> V20060903\n * [new tag] mdl18_merged_stage_01 -> mdl18_merged_stage_01\n * [new tag] mdl19-msd-2008031801 -> mdl19-msd-2008031801\n * [new tag] mdl19-oublog-2008031200 -> mdl19-oublog-2008031200\n * [new tag] mdl19-oublog-2008031300 -> mdl19-oublog-2008031300\n * [new tag] rolesbackportstartpoint -> rolesbackportstartpoint\n * [new tag] rolesbackporttohere -> rolesbackporttohere\n<<<\n{{{\n[markp@rublev /usr/home/moodle/moodle]$ git status\n}}}\n<<<\n # On branch mdl19-tinymce\nnothing to commit (working directory clean)\n<<<\n{{{\n[markp@rublev /usr/home/moodle/moodle]$ git merge cat-moodle/MOODLE_19_STABLE\n[markp@rublev /usr/home/moodle/moodle]$ less version.php\n}}}\n<<<\n\n $version = 2007101545; // YYYYMMDD = date of the 1.9 branch (don't change)\n // X = release number 1.9.[0,1,2,3,4,5...]\n // Y.YY = micro-increments between releases\n\n $release = '1.9.4+ (Build: 20090330)'; // Human-friendly version name\n<<<\nGit is decentralized, so to collaborate with other developers you either\nneed to put the .git directory on a server the other developers have\naccess to (e.g. so they can do a "git clone\nssh://username@host/path/to/.git") or set up the git daemon (git clone\ngit://hostname/path/to/.git) and push & pull from that in your workflow.\n\nThere are also services like http://github.com/ \n\nJason
!!Assignment upload failed?\nClass: Julia May, ~ART212 Survey of Western Art\nTwo students claim that they did upload the assignment and Moodle somehow screwed up in an unspecified manner.\n* Opening {{{Participants : <student name> : Activity reports : Complete report}}} reveals that the date is set to 31 December 1969 [[screenshot|graphics/student_activity_report.png]]<<imagebox>>\nSet against this:\n# Opening Administration : reports and looking at Sun 21st Oct and Mon 22nd Oct reveal that there was no upload activity recorded for this assignment from these two students.\n# Moreover, files were uploaded successfully by other students all throughout Sun 21st evening.\n# In the grading page there is no 'Last modified' date for either of the two students.\n# In the Files area no trace of an upload file from these two can be found.\n!!My conclusion:\n# There was no successful file upload from these two students.\n# If they did indeed have problems with uploading, why did they not report these issues soon after they happened?\n# The date recorded of "31 December 1969" is quite possibly a bug in the reporting code of Moodle. However, in [[Moodle tracker|http://tracker.moodle.org]] there are only two bugs which reference "Wednesday, 31 December 1969" the newest being [[MyMoodle shows bogus Assignment due date|http://tracker.moodle.org/browse/MDL-5620]] which was fixed in version 1.6.1\n!!To Do\nFind out where the assignment dates are generated from (client computer?, Moodle server?, database server?) and how they are stored in the database. \n* Could the erroneous date be merely a display thing or is the date itself stored wrongly? \n* What code error has produced this in the past?\n
Today I tested out the new BSD 7.2 on Zinsite and zoicite -- it looked very good, apart from the lack of /usr/local/bin/zip & unzip!\nRandyS took down sunstone/moonstone the production Moodle server.\nThe migration from Testing went OK, but got the [[same error|Even more attendance issues]] when attendance updated the tables. Hopefully this just affects old courses!\n!!Do first on Moodletest then on Moodle prod\n# Move current categories from front to hidden cat 2009\n# run uploadcourse.php with 2010_courses_full_edited3.csv (add users:\n** TBA and \n** Chris Smith smithch and \n** Brent Smith brents\n** Sejal Sutaria sutarse@earlham.edu\n----\n''irriut!'' -- just execute Admin: Users : Accounts : Upload users and upload //faculty_user_accounts.csv//\nThis worked.\nRepeat admin/uploadcourse.php +++[output]>\nParsed 200 course(s) from CSV\nCreated 173 course(s) out of 200\n27 course(s) were skipped (duplicate ShortName)\n1 new category(ies) were created\nYou may wish to manually Re-Sort the categories\nRe-Sorted courses\nANALYZE Database Tables OK\nOPTIMIZE Database Tables OK\nTotal Execution Time: 4.43 s\n=== \nThe new category created was legal studies\n//27 course(s) were skipped (duplicate ShortName)// -- these were probably also in cat 2010\n''Check that course hiding works''\n!!Update Production Moodle\nUpload users from same file as above. +++[new user accounts created]\n{{{\nNew user 2 1852 adamska Karen Adams adamska@earlham.edu\nNew user 7 1853 bandyan Annie Bandy bandyan@earlham.edu \nNew user 16 1854 brents Brent Smith brents@earlham.edu\nNew user 29 1855 dawnm Dawn Grimes-MacLellan dawnm@earlham.edu\nNew user 34 1856 diamoda David Diamond diamoda@earlham.edu\nNew user 38 1857 fademcy Cynthia Fadem fademcy@earlham.edu\nNew user 45 1858 habeean Anan Habeeb habeean@earlham.edu \nNew user 46 1859 hayasta Takako Hayase hayasta@earlham.edu\nNew user 63 1860 kellejo2 Jocelyn Keller kellejo2@earlham.edu \nNew user 65 1861 lardijo John Lardinois lardijo@earlham.edu\nNew user 72 1862 mckibcy Cynthia McKibbin mckibcy@earlham.edu\nNew user 83 1863 polanpa Pavel Polanco-Safadit polanpa@earlham.edu\nNew user 88 1864 randalls Randall Shrock randalls@earlham.edu\nNew user 90 1865 rayka Kathryn Ray rayka@earlham.edu\nNew user 94 1866 sakosst Steve Sakosits sakosst@earlham.edu\nNew user 99 1867 smithch Chris Smith smithch@earlham.edu\nNew user 101 1868 smithso Sonia Smith smithso@earlham.edu\nNew user 106 1869 sutarse Sejal Sutaria sutarse@earlham.edu \nNew user 115 1870 vanzead Adam Van Zee vanzead@earlham.edu\nNew user 123 1871 tba Tobey Announced TBA@earlham.edu\nUsers created: 20\nUsers skipped: 102\nUsers having a weak password: 0\nErrors: 0\n}}}\n=== \nUploadcourse.php +++[output]>\nParsed 200 course(s) from CSV\nCreated 179 course(s) out of 200\n21 course(s) were skipped (duplicate ShortName)\n47 new category(ies) were created\nYou may wish to manually Re-Sort the categories\nRe-Sorted courses\nANALYZE Database Tables OK\nOPTIMIZE Database Tables OK\nTotal Execution Time: 4.66 s\n=== It ''worked''\n
With regard to [[Email to faculty re recent problems]]:\n# Am going to work with Betsy on Friday 5th Sept on this. We'll formulate a SQL command and test it on Barnabas and Frumentius.\n# Aaron has fixed the email problem and I have emailed the faculty list.
Technical information about the Moodle installation. Data can be obtained from Site Administration : Server : PHP info and Administration : Server : Environment.\n|!Field name|!Type|!description|!Comments|\n|Server OS|pulldown list|Linux, BSD, ~SunOS, OS X server, other Unix, Windows server(2003), Windows server 2000, other|helpful to know what server OS is most popular and which one one is the smoothest to operate|\n|~PhP version|pulldown list|4.0, 4.1, 4.3.x, 5.0.x, 5.1.x|Moodle is moving to php v5. Are you ready?|\n|Web server s/w|pulldown|Apache1.x, Apache 2.x, IIS, other|How stable is Apache 2? Are people have problems with IIS?|\n|Moodle server|pulldown list|dedicated server/ shared server/ hosted off campus|How many are running Moodle on a dedicated server?How many running on a hosted system?|\n|Database s/w|pulldown|~MySQL 4.x, ~MySQL5.x, ~MySQL 3.x, Postgres, Oracle, other| |\n|Database server|pulldown|Database on same server as Moodle/ Db on different server/ Off campus hosted|Performance implications?|\n|Data directory location|pulldown|data directory on same server as Moodle code/ different server / off campus host|Performance and space implications|\n|Modules|text box|list of 3rd party modules|Are you using 3rd party modules? List them here|\n|Features|text box|Features asked for|What features are teaching faculty asking for? List them here|\n|Moodle features disabled|text box|list functions disabled|You may have disabled activities (eg SCORM, LAMS), blocks or site-wide features (blogs)|\n!!!Comments\nDo we need to ask questions about perceived performance? Are users generally happy with the performance of their site Moodle? What can be done to improve performance?
What people and processes are involved in setting up Moodle each year? You might migrate all your courses over from a previous version or you might start with a new database and new Moodle version each year. If you have migrated from last year's Moodle you might brought over all your courses, student account and faculty accounts. If you started the year from scratch then none of the 'migration' column will be checked.\nFor example, we start each academic year with a new version of Moodle and a fresh database (created by person #5) which is indicated by not checking the 'migration' column. You might use a batch upload to create faculty accounts over the summer but for new faculty LDAP authentication would create the accounts. \n\n|>|>|>|>|>|>|>|>|>|>|>|>|>|>|!EXAMPLE|\n|!Activity|>|>|>|>|!Mechanism|>|>|>|>|>|>|>|>|!Support people|\n|! |!Batch upload|!LDAP driven|!ERP (Banner,etc) driven|!User (self) driven|!Migrate from previous version|!1|!2|!3|!4|!5|!6|!7|!8|!None|\n|Create initial database| | | | | | | | | | x | | | | |\n|Create Faculty accounts| x | x | | | | x | | | | | | | | |\n|Create student accounts| | x | | | | x | | | | | | | | |\n|Create courses| x | | | | | x | | | | | | | | |\n|Enroll students in courses| | | | x | | | | | | | | | | |\n|Restore courses / course backups| | | | x | | x | | | | | | | | |\n----\n|!Activity|>|>|>|>|!Mechanism|>|>|>|>|>|>|>|>|!Support people|\n|! |!Batch upload|!LDAP driven|!ERP (Banner,etc) driven|!User (self) driven|!Migrate from previous version|!1|!2|!3|!4|!5|!6|!7|!8|!None|\n|Create initial database| | | | | | | | | | | | | | |\n|Create Faculty accounts| | | | | | | | | | | | | | |\n|Create student accounts| | | | | | | | | | | | | | |\n|Create courses| | | | | | | | | | | | | | |\n|Enroll students in courses| | | | | | | | | | | | | | |\n|Restore courses / course backups| | | | | | | | | | | | | | |\n\n\n
Install Sharing cart to moo-cat. \n# download and unzip {{{sharing_cart-1.9ver2b-20090221.zip}}} into ~/moo-plugins\n# copy into moo-cat/blocks/sharing_cart/\n# login and got to admin. Tables set up correctly.\n[[Documentation|http://docs.moodle.org/en/Sharing_Cart]]\n\n[[Sharing Cart issues]]
|!Field name|!Type|!description|!Comments|\n|Documentation ~URLs|text|~URLs to Moodle document web pages|Web pages about documentation, migrating between different versions of Moodle, archiving and restoring of courses|\n|Policy ~URLs|text|URL to Moodle policy web pages|Web pages describing policies about Moodle use, FERPA conformance|\n
Refer to [[Next steps Moodle dev]]\n* {{{git clone }}} to {{{markp/public_html/moodev}}}. \n* create new database: //Name : moomark// //User: moomark_user//\n* create local filestore : {{{markp/moodev-data}}}\n** Note: I set ownership of /public_html to markp:www (apache user) and chmod 775 to allow write access from Apache\n** ditto for markp/moodev-data -- owner is markp:www and 775 permissions. \n* fire up moodle and create config.php. Config.php created successfully so write from Apache does work!\n+++[Notes]\n;Current release Information:\n: Moodle 1.9.4+ (Build: 20090330)\nMany plugins need upgrading (especially question/type/ plugins and grade/report/ )\n===\nMoodle at http://rublev.lly.earlham.edu/~markp/moodev works!\nFrom here go to [[Mark's development with git]]\nThen to [[Mark's development with git #2]]\n
!!Email exchange with Aaron today:\n\nThanks for fixing this. The error is rather amusing is it not? "Waiting for someone to free space" -- please, please, free up space?\n\nAm still concerned about the lack of backup for the system and the data. You were right about Ezjail -- that's what Randy set my system up with and it makes it dead easy to do a tar/gzip of the complete jail. The thought occurs to me that if we've run out of readily available backup space why not just hang an external USB-2 drive off the local USB port on the server, mount it, and do both a tar/gzip of moodle data and elgg data to this as well as a Moodle course backup of all the Moodle courses. I have a 120 Gb drive that could be pressed into service.\n\nThe mysql dump of the Moodle db is really useful but I really do need a copy of moodledata. I can send you the exclude file again if needed.\n\nCheers\n\nMark\n+++[what he wrote:]\nAaron Cayard-Roberts wrote:\n> Mark Pearson wrote:\n>> Aaron,\n>>\n>> I got 4 connection errors ("WARNING: Database connection error: https://moodle.earlham.edu") between 1:30am and 2:00am this morning.\n>>\n>> A student also got the following -- attached as a screenshot.\n>>\n>>> also, attached is an error I got when attempting to access moodle at around 2 am.\n>>>\n>>> ~Jamie\n>> What do I need to so to escalate this before we get into a crisis?\n>>\n>> Cheers\n>>\n>> Mark\n>>\n>> PS Given the drive overheating I am rather concerned that the Moodle/Elgg system is not backed up at all. If this system fails then faculty will never trust Moodle again.\n>> ------------------------------------------------------------------------\n\n> It happened because it ran out of space for the mysql logs. Its already been cleaned up.\n>\n> 090407 0:50:29 [ERROR] /usr/local/libexec/mysqld: Disk is full writing './mysql-bin.000061' (Errcode: 28). Waiting for someone to free space... Retry in 60 secs\n> 090407 1:00:29 [ERROR] /usr/local/libexec/mysqld: Disk is full writing './mysql-bin.000061' (Errcode: 28). Waiting for someone to free space... Retry in 60 secs\n> 090407 1:10:29 [ERROR] /usr/local/libexec/mysqld: Disk is full writing './mysql-bin.000061' (Errcode: 28). Waiting for someone to free space... Retry in 60 secs\n> 090407 1:20:29 [ERROR] /usr/local/libexec/mysqld: Disk is full writing './mysql-bin.000061' (Errcode: 28). Waiting for someone to free space... Retry in 60 secs\n>\n>\n> -Aaron\n=== \n\nLater the same day:\n!!Aaron email\n<<<\nBefore you ask this is because I just started a moodledata backup for you.\n\nThe current moodledata folder is 36G. I'll let you know how big the compressed tar is once its finished.\n\n-Aaron\n>-------- Original Message --------\n>Subject: WARNING: Database connection error: https://moodle.earlham.edu\n>Date: Tue, 7 Apr 2009 11:36:29 -0400 (EDT)\n>From: www@sunstone.earlham.edu (World Wide Web Owner)\n>To: moodle@earlham.edu\n>Connection error: https://moodle.earlham.edu \n<<<\n
Set system wide role for Teacher: \n* course create : prevent, \n*category create : prevent
the command \n{{{\n/usr/home/markp/public_html/moo-clamp] $ cvs update -dP\n}}}\nupdates the code but then generates a blank page.\nAdding :\n{{{\n$CFG->debug = 2047;\n$CFG->debugdisplay = 1;\n}}}\nto the config.php displays //nothing//\nFortunately I made a tgz backup of this dir. So, let's restore it:\n# rename moo-clamp: {{{mv moo-clamp/ moo-clamp-up}}} +++[open again in browser]\nNow, when I open http://rublev.lly.earlham.edu/~markp/moo-clamp-up/ in the browser I get the following error message:\n{{{\nError detected in config.php\nError in: $CFG->dirroot = '/usr/home/markp/public_html/moo-clamp';\nTry this: $CFG->dirroot = '/usr/home/markp/public_html/moo-clamp-up';\n}}}\nThis suggests that the config.php is being processed but nothing is happening after that. When I change the $CFG->dirroot to the correct path there's a blank display again.\n===\n\n# restore {{{/markp/public_html]$ tar xvf ../moo-archives/moo-clamp_safe.tgz}}}\n# figure out how much space {{{du -hc moo-clamp}}}\n\n
!!Basic sequence to add plugin\n# CVS update {{{markp/moo-plugins/contrib/plugins/mod/book]$ cvs update -dP}}}\n# check version etc for wobblies\n# copy into appropriate //moodev// directory (//mod// for modules and //blocks// for block) {{{markp/public_html/moodev/mod]$ cp -R ~/moo-plugins/contrib/plugins/mod/book . }}} Make sure no terminal ''/'' on the directory path. ''Note:'' All the CVS crap gets copied too. Have to figure out a way of discarding this in the final copy.\n# check git status {{{markp/public_html/moodev]$ git status}}}\n# add new plugin to git tracker {{{markp/public_html/moodev]$ git add mod/book}}}\n# commit to git {{{$ git commit -a}}}\n# recheck status {{{$ git status}}}\n
From Anne Hathaway:\n<<<\nThe question I have is about limiting the folders people can upload to. I went to Electronic Records Management Committee, Update this Resource, and then to locally assigned roles. There I assigned our participants to be teachers for the Electronic Records Management Committee, not for the whole course, just that committee. However, they were not able to upload files to the committee. I made them teachers for the whole course, and then of course they could upload.\n\nMy question is what was I doing wrong and can people be limited only to uploading to the committees they are assigned to? If either of you has a few minutes to show me this tomorrow that would be great. I'm hoping to leave a little early tomorrow so in the morning or around 2 would be best.\n<<<\nFollow [[these instructions|http://docs.moodle.org/en/Override_permissions]] :\n!!! Enabling teachers to override permissions\nBy default, only administrators are able to override permissions. Teachers can be enabled to do so as follows:\n# Access Administration > Users > Permissions > Define roles.\n# Edit the teacher role and change the capability moodle/role:override (or moodle/role:safeoverride in Moodle 1.9.3 onwards) to allow.\n# Click the button "Save changes". ''done''\n# Click the tab "Allow role overrides" (in Administration > Users > Permissions > Define roles).\n 5. Check the appropriate box(s) in the teacher row to set which role(s) teachers can override. Most likely it will just be the student role (you don't want teachers to be able to override admins), so check the box where the teacher row intersects with the student column. ''applied to students only''\n 6. Click the button "Save changes". \nIf preferred, a new role for overriding permissions may be created and selected teachers assigned to it. \n
I got this email from Martin D on 19th-Nov-09:\n\nHi Moodle admins,\n\nYou're getting this email because you chose to receive important news by email when you registered your Moodle site with moodle.org.\n\nI'm writing to tell you about an exploit that was recently published on the internet (intentionally bypassing our official security policy of responsible disclosure published at http://moodle.org/security and so increasing the vulnerability of many Moodle sites). The exploit demonstrates how a Moodle teacher could potentially gain administrator access to their own site.\n\nIn Moodle 1.9.6 and earlier, backups saved with the option of "user data" would contain accounts of all the users enrolled in that course, to promote data consistency if the backup was restored on another\nMoodle system. \n\nThis included the md5 one-way hash calculated from the user's password (eg 4d909c290d0fb1ca068ffaddf22cbd0). These can't be directly decrypted to reveal the password, so they used to be seen as reasonably safe to distribute. However, with the advent in recent times of large databases of md5 reverse lookups on the internet, many simpler passwords can now be determined quite quickly by searching for their md5 hash (reverse mapping).\n\nThe demonstrated exploit basically involved a trusted teacher account enrolling an administrator into their own course, then making a backup of the course including user data, extracting the md5 hash of the password from the backup file and then reverse mapping the hash to discover the password.\n\nNote that the exploit requires that (a) the user is a trusted teacher on the site, and (b) that the admin is using a fairly weak password. \n\nMoodle development policy has always generally been "we trust teachers". However, we know that YOU may not trust them all and will want to lock down your sites as much as possible.\n\nNEW RELEASES ARE COMING SOON\n\nThe core dev team is working hard on Moodle 1.9.7 and Moodle 1.8.11 right now. Among other things, there are fixes to 11 known issues that are related to backups and user data. We will let you know when\nthese releases are ready, via this mailing list. It should be within a week.\n\nWHAT YOU CAN DO RIGHT NOW\n\nYour site may be vulnerable if you have any users with full backup rights on your site that might have a reason to try and crack your admin account, if they saw the published exploit. Here are some things you can do to improve security on your site right now: \n\n# Disable backup functionality for teacher roles. You can re-enable backups later with the new Moodle releases, because the permissions for saving user data will be separate from the permission to create backups.\n** HOW: Admin > Users > Permissions > Define roles: Edit the teacher roles and change the capability for moodle/site:backup to "PROHIBIT".\n# Turn on site-wide password salting (in all versions of Moodle since 1.6), this adds information to the md5 strings to make them practically impossible to reverse (next time they log in or change their password). Note that this will affect your ability to restore backups containing user data on foreign Moodle sites - the admin of the destination site needs to include your salt in their config.php for user creation to work.\n** HOW: Add a line like this to your config.php (for the best security, there is intentionally no way to set this in the Moodle interface) {{{$CFG->passwordsaltmain = 'some long random string here with lots of characters';}}}\n# Turn on Password Policy for your site, this forces people to use stronger passwords.\n** HOW: Admin > Security > Site policies > passwordpolicy\n# Change passwords for all admins. Now that you turned Password Policy on you'll be forced to choose a stronger one. It also makes any old backups useless for the purposes of the exploit.\n** HOW: Edit your user profile directly, for other admins you can edit their profile and check this box: "Force password change". They'll be forced to change it when they next log in.\n\nGood luck, thanks for using Moodle and I'll talk to you again soon.\n\nCheers,\nMartin (Moodle Lead Developer)\n\n--\nYou are receiving this email because you registered a Moodle site with Moodle.org and chose to be added to this low-volume list of security notifications and other important Moodle-related announcements for Moodle administrators.\n\nTo unsubscribe you can re-register your site (as above) and make sure you turn the email option OFF in the registration form. You can also send a blank email to sympa@lists.moodle.org with "unsubscribe securityalerts" as the subject (from the email address that is subscribed).\n\nSee http://lists.moodle.org/info/securityalerts for more.\n----\nSee also [[Security Alerts]]
Alison Pope (RHUL) tells me that the following apps already use CAS:\n* Ex Libris/ Metalib\n* SFX\n* Aleph\n* phpBB\nNote that the first three are all Library Apps
Rather than faffing around making manual changes like what I did last time ([[Updating Assignment_zip]] and [[Dec07 update : apply ZIP hacks]] ) I have downloaded assignment.patch by Dan Marsden from [[the tracker|http://tracker.moodle.org/browse/MDL-7206]] and will attempt to apply this directly. Here's the cunning pran:\n# backup files affected just in case. +++[the doins]\nDiscover files affected:\n{{{\n$ grep RCS assignment.patch\nRCS file: /cvsroot/moodle/moodle/mod/assignment/lib.php,v\nRCS file: /cvsroot/moodle/moodle/mod/assignment/submissions.php,v\nRCS file: /cvsroot/moodle/moodle/mod/assignment/type/online/assignment.class.php,v\nRCS file: /cvsroot/moodle/moodle/mod/assignment/type/upload/assignment.class.php,v\nRCS file: /cvsroot/moodle/moodle/mod/assignment/type/uploadsingle/assignment.class.php,v\n}}}\nand make copies in working dir root ''/var/www/moodle19''\n===\n\n# copy patch file to {{{/var/www/moodle19/mod/assignment}}} and run it from there.\n# [[How to run patch|http://linux.die.net/man/1/patch]] . Since the patch file references "/cvsroot/moodle/moodle" but we're in "/var/www/moodle19" I will use the option ''-p6'' to strip the file references down.
Rather than faffing around making manual changes like what I did last time ([[Updating Assignment_zip]] and [[Dec07 update : apply ZIP hacks]] ) I have downloaded assignment.patch by Dan Marsden from [[the tracker|http://tracker.moodle.org/browse/MDL-7206]] and will attempt to apply this directly. Here's the cunning pran:\n# backup files affected just in case. +++[the doins]\nDiscover files affected:\n{{{\n$ grep RCS assignment.patch\nRCS file: /cvsroot/moodle/moodle/mod/assignment/lib.php,v\nRCS file: /cvsroot/moodle/moodle/mod/assignment/submissions.php,v\nRCS file: /cvsroot/moodle/moodle/mod/assignment/type/online/assignment.class.php,v\nRCS file: /cvsroot/moodle/moodle/mod/assignment/type/upload/assignment.class.php,v\nRCS file: /cvsroot/moodle/moodle/mod/assignment/type/uploadsingle/assignment.class.php,v\n}}}\nand make copies in working dir root ''/var/www/moodle19''\n===\n\n# copy patch file to {{{/var/www/moodle19/mod/assignment}}} and run it from there.\n# [[How to run patch|http://linux.die.net/man/1/patch]] . Since the patch file references "/cvsroot/moodle/moodle" but we're in "/var/www/moodle19" I will use the option ''-p6'' to strip the file references down.
Procedure for applying and testing the assignment_zip module.\n# Unpack [[assignment zip|modules/assignment_zip.zip]] in user directory\n# List constituent directories and files: +++[ls -lRh]>\n-rw-r- -r- - 1 markp markp 101K 2007-06-08 10:40 lib.php\n-rw-r- -r- - 1 markp markp 2.0K 2007-06-08 10:32 submissions.php\ndrwxr-xr-x 5 markp markp 4.0K 2007-09-17 16:03 type\n''./type:''\ntotal 12K\ndrwxr-xr-x 2 markp markp 4.0K 2007-09-17 16:03 online\ndrwxr-xr-x 2 markp markp 4.0K 2007-09-17 16:03 upload\ndrwxr-xr-x 2 markp markp 4.0K 2007-09-17 16:03 uploadsingle\n''./type/online:''\ntotal 16K\n-rw-r--r-- 1 markp markp 14K 2007-06-08 10:34 assignment.class.php\n''./type/upload:''\ntotal 40K\n-rw-r--r-- 1 markp markp 40K 2007-06-08 10:32 assignment.class.php\n''./type/uploadsingle:''\ntotal 12K\n-rw-r--r-- 1 markp markp 11K 2007-06-08 10:37 assignment.class.php===\n\n# make copies of current components so that they can be restored at a pinch. +++[rename]>\n{{{moodle/mod/assignment$ mv lib.php lib.php.nozip}}}===\n\n# copy file from assignment_zip directory and reset ownership (sudo privs needed). +++[install]>\n{{{moodle/mod/assignment$sudo cp -p ~/moodle/assignment_zip/lib.php .}}}\n{{{moodle/mod/assignment$ sudo chown www-data:www-data lib.php}}}===\n\n# repeat for all the files in subdirectories listed above +++[all together]\n{{{moodle/mod/assignment/type/upload$ sudo mv assignment.class.php assignment.class.php.nozip}}}\n{{{moodle/mod/assignment/type/upload$ sudo cp ~/moodle/assignment_zip/type/upload/assignment.class.php . }}}\n{{{moodle/mod/assignment/type/upload$ sudo chown www-data:www-data assignment.class.php}}}===\n\n# Now start [[testing|Assignment_zip testing]]!
Monteze would like to have a system to block appointments in a calendar.\nAlso need a sign-up sheet system.\nLook for solution on Moodle.
!!Question problem areas\n* True / False question had wrong answer [[apprentice|graphics/T1- apprentice wrong answer.png]]<<imagebox>> #43\n* Fill in blanks Q ("The object below was used not only to impart religious information but information about the" Ans : Patron) [[Q 6|graphics/T1-patron - list of answers.png]] This guy tried it several times.\n* Multi-choice Q. No graphic on the question [[Q34|graphics/T1 - no graphic Q34.png]]<<imagebox>>\n* Q7: short answer -- [[this one|graphics/T1 - silk route.png]]<<imagebox>> should have been given the marks. Use 'override grade.\nIdentify the troublesome Questions and decide what to do:\n## Either regrade individuals on the Quiz OR\n## (easier) Change the grade in Excel.\n
Course: ~INTP150-12:200920 Corporations for Activists\nAssignment: [[post corporation final draft here|https://moodle.earlham.edu/mod/assignment/submissions.php?id=10351]]\n;Error:\n:{{{\nfailed to copy file\n/data/moodledata192+/405/moddata/assignment/658/temp/smrahman08_Post corporation final draft here__responses/shabab_reviewed.doc\n\n/data/moodledata192+/405/moddata/assignment/658/482/responses/shabab_reviewed.doc\n}}}\nI think that this error is a filename length error -- the routine concatenates the name of the assignment with the student name and the uploaded filename. If the result is too long it just fails.\nZIP download for the assignment "post electric car paper" worked just fine.\n!!Solution\nCheck for total file length and truncate if necessary.\n
Apply the Assignment ZIP patch (from [[here|http://tracker.moodle.org/browse/MDL-7206]]) called //download_all_assignments_HEAD.patch// +++[results]\n{{{\n[markp@rublev /usr/home/markp/public_html/moo-t95]$ patch <download_all_assignments_HEAD.patch\nHmm... Looks like a unified diff to me...\nThe text leading up to this was:\n--------------------------\n|### Eclipse Workspace Patch 1.0\n|#P CVS\n|Index: mod/assignment/submissions.php\n|===================================================================\n|RCS file: /cvsroot/moodle/moodle/mod/assignment/submissions.php,v\n|retrieving revision 1.46\n|diff -u -r1.46 submissions.php\n|--- mod/assignment/submissions.php 5 Jun 2008 10:31:38 -0000 1.46\n|+++ mod/assignment/submissions.php 13 Jan 2009 03:26:00 -0000\n--------------------------\nPatching file mod/assignment/submissions.php using Plan A...\nHunk #1 succeeded at 6.\nHunk #2 succeeded at 41.\nHmm... The next patch looks like a unified diff to me...\nThe text leading up to this was:\n--------------------------\n|Index: mod/assignment/lib.php\n|===================================================================\n|RCS file: /cvsroot/moodle/moodle/mod/assignment/lib.php,v\n|retrieving revision 1.373\n|diff -u -r1.373 lib.php\n|--- mod/assignment/lib.php 3 Jan 2009 13:16:59 -0000 1.373\n|+++ mod/assignment/lib.php 13 Jan 2009 03:26:00 -0000\n--------------------------\nPatching file mod/assignment/lib.php using Plan A...\nHunk #1 succeeded at 1137 (offset -3 lines).\nHunk #2 succeeded at 3045 with fuzz 1 (offset -194 lines).\nHmm... The next patch looks like a unified diff to me...\nThe text leading up to this was:\n--------------------------\n|Index: mod/assignment/type/online/assignment.class.php\n|===================================================================\n|RCS file: /cvsroot/moodle/moodle/mod/assignment/type/online/assignment.class.php,v\n|retrieving revision 1.67\n|diff -u -r1.67 assignment.class.php\n|--- mod/assignment/type/online/assignment.class.php 11 Oct 2008 17:33:21 -0000 1.67\n|+++ mod/assignment/type/online/assignment.class.php 13 Jan 2009 03:26:00 -0000\n--------------------------\nPatching file mod/assignment/type/online/assignment.class.php using Plan A...\nHunk #1 succeeded at 283 with fuzz 2 (offset 2 lines).\nHmm... The next patch looks like a unified diff to me...\nThe text leading up to this was:\n--------------------------\n|Index: mod/assignment/type/upload/assignment.class.php\n|===================================================================\n|RCS file: /cvsroot/moodle/moodle/mod/assignment/type/upload/assignment.class.php,v\n|retrieving revision 1.66\n|diff -u -r1.66 assignment.class.php\n|--- mod/assignment/type/upload/assignment.class.php 13 Nov 2008 08:41:02 -0000 1.66\n|+++ mod/assignment/type/upload/assignment.class.php 13 Jan 2009 03:26:00 -0000\n--------------------------\nPatching file mod/assignment/type/upload/assignment.class.php using Plan A...\nHunk #1 succeeded at 1053 with fuzz 2 (offset 12 lines).\nHunk #2 failed at 1143.\n1 out of 2 hunks failed--saving rejects to mod/assignment/type/upload/assignment.class.php.rej\nHmm... The next patch looks like a unified diff to me...\nThe text leading up to this was:\n--------------------------\n|Index: mod/assignment/type/uploadsingle/assignment.class.php\n|===================================================================\n|RCS file: /cvsroot/moodle/moodle/mod/assignment/type/uploadsingle/assignment.class.php,v\n|retrieving revision 1.43\n|diff -u -r1.43 assignment.class.php\n|--- mod/assignment/type/uploadsingle/assignment.class.php 16 Aug 2008 18:13:38 -0000 1.43\n|+++ mod/assignment/type/uploadsingle/assignment.class.php 13 Jan 2009 03:26:00 -0000\n--------------------------\nPatching file mod/assignment/type/uploadsingle/assignment.class.php using Plan A...\nHunk #1 succeeded at 180 with fuzz 1 (offset 2 lines).\ndone\n}}}\n=== \nAlthough there was one part that apparently failed, all is hunky dory since the //rej// file shows +++[nothing important]\n{{{\nless *.rej\n***************\n*** 1103,1108 ****\n }\n }\n\n-\n-\n- ?>\n--- 1143,1146 ----\n }\n }\n\n+ ?>\n}}}\n=== \n;apply patch with : \n: {{{/markp/public_html/moo-t95]$ patch <download_all_assignments_HEAD.patch}}}\nActually, there was a rather severe problem [[screenshot|graphics/problems_assignzip_patch.png]]<<imagebox>>\nI traced it to this code:\n{{{\n 3083 return $path;\n 3084 }\n 3085 ?>/**\n 3086 * This function is used by the reset_course_userdata function in moodlelib.\n 3087 * This function will remove all posts from the specified assignment\n 3088 * and clean up any related data.\n 3089 * @param $data the data submitted from the reset course.\n 3090 * @return array status array\n 3091 */\n}}}\nSomehow a php terminator got inserted before the end of the file //mod/assignment/lib.php//. I can edit this out, but the question is, how can I edit the patch file to remove this?\nTaking another look at the patch file we find that the first section gets applied properly +++[code]\n{{{\nRCS file: /cvsroot/moodle/moodle/mod/assignment/lib.php,v\nretrieving revision 1.373\ndiff -u -r1.373 lib.php\n--- mod/assignment/lib.php 3 Jan 2009 13:16:59 -0000 1.373\n+++ mod/assignment/lib.php 13 Jan 2009 03:26:00 -0000\n@@ -1140,7 +1140,9 @@\n print_heading(get_string('nosubmitusers','assignment'));\n return true;\n }\n-\n+ if ($this->assignment->assignmenttype=='upload' || $this->assignment->assignmenttype=='onlin\ne' || $this->assignment->assignmenttype=='uploadsingle') {\n+ echo '<div style="text-align:right"><a href="submissions.php?id='.$this->cm->id.'&do\nwnload=zip">'.get_string('downloadall', 'assignment').'</div>';\n+ }\n /// Construct the SQL\n\n if ($where = $table->get_sql_where()) {\n}}}\n=== But this part significantly does not:\n{{{\n@@ -3237,4 +3239,44 @@\n default: return null;\n }\n }\n-?>\n+\n+/**\n+ * generate zip file from array of given files\n+ * @param array $filesforzipping - array of files to pass into archive_to_pathname\n}}}\nThe patch fails to find {{{ default: return null;}}} which is presumably right at the end of the file, perhaps because it's no longer there. What should happen is that the {{{?>}}} gets replaced by two extra functions and finished off with {{{?>}}}\n!!Next\n# edit the assignment/lib.php and remove the erroneous {{{?>}}}\n# redo the diff with {{{markp/public_html/moo-t95]$ diff -iwBu mod/assignment/lib.php.orig mod/assignment/lib.php >assignment_zip-lib.patch}}}\n[[Assignment ZIP patch #2]]
All the code looks OK, but when click on {{{[[downloadall]]}}} we get a blank page.\nSo switch on debuggering (Home page : Administration: Server : Debug -> All : display). Get following message:\n<<<\nFatal error: Call to undefined function get_file_storage() in /usr/home/markp/public_html/moo-t95/mod/assignment/type/uploadsingle/assignment.class.php on line 198\n<<<\n+++[Posted to the Tracker:]>\nMark Pearson added a comment - 13/Aug/09 04:24 AM\nI tried applying download_all_assignments_HEAD.patch to a bog standard 1.9.5 installation. Several problems emerged:\n1. in /mod/assignment/lib.php there was inserted a php terminator (?>) on line 3085 preventing the remaining two functions in the library from executing.\n2. in /mod/assignment/type/upload the patch totally borked assignment.class.php so that all the code ended up in the .rej file and assignment.class.php had 0 bytes. I don't understand what went wrong there.\n3. Even after I tidied things up by hand and did an experimental trial when I clicked on [[downloadall]] a blank page ensued. Switching full debugging on from the Admin interface revealed the following error message:\n\nFatal error: Call to undefined function get_file_storage() in /usr/home/markp/public_html/moo-t95/mod/assignment/type/uploadsingle/assignment.class.php on line 198\n\nI could not find the function 'get_file_storage' in lib/file_lib.php but it's likely to be somewhere else.\n\nIn short, the patch as available here does not seem to function with version 1.9.5. I do not have time to suss this out right now but will try to get it sorted in a couple of weeks after feeding the 5,000 multitudes with the Moodle loaves and fishes\n\n[ Permalink | ยซ Hide ]\nDan Marsden added a comment - 13/Aug/09 05:24 AM\nnot surprisingly as HEAD == 2.0\n\nthat patch likely won't apply nicely to HEAD either as a lot of structural changes have been made since. - I uploaded it here for future reference - I WILL get this in Moodle 2.0 before release!\n=== \nPatch only applies to 2.0. \nSo basically I've wasted a day and a half on this. Bugger!\n
Applied patch code ''manually'' to mod/assignment/lib.php and ''mod/assignment/submissions.php''\nThen edit both these sections out to produce [[assignment_types.patch|modules/assignment_types.patch]] and apply that. +++[output]\n{{{\nmarkp@Barnabas:~/moodle_cvs/mod/assignment$ patch -b <assignment_types.patch\n(Stripping trailing CRs from patch.)\ncan't find file to patch at input line 8\nPerhaps you should have used the -p or --strip option?\nThe text leading up to this was:\n--------------------------\n|Index: type/online/assignment.class.php\n|===================================================================\n|RCS file: type/online/assignment.class.php,v\n|retrieving revision 1.43.2.1\n|diff -u -r1.43.2.1 assignment.class.php\n|--- type/online/assignment.class.php 30 Mar 2007 02:09:07 -0000 1.43.2.1\n|+++ type/online/assignment.class.php 7 Jun 2007 22:34:08 -0000\n--------------------------\nFile to patch: type/online/assignment.class.php\npatching file type/online/assignment.class.php\nHunk #1 succeeded at 260 (offset 1 line).\n(Stripping trailing CRs from patch.)\ncan't find file to patch at input line 89\nPerhaps you should have used the -p or --strip option?\nThe text leading up to this was:\n--------------------------\n|Index: type/upload/assignment.class.php\n|===================================================================\n|RCS file: type/upload/assignment.class.php,v\n|retrieving revision 1.29.2.1\n|diff -u -r1.29.2.1 assignment.class.php\n|--- type/upload/assignment.class.php 5 Apr 2007 02:11:24 -0000 1.29.2.1\n|+++ type/upload/assignment.class.php 7 Jun 2007 22:32:49 -0000\n--------------------------\nFile to patch: type/upload/assignment.class.php\npatching file type/upload/assignment.class.php\nHunk #1 succeeded at 1054 (offset 101 lines).\n(Stripping trailing CRs from patch.)\ncan't find file to patch at input line 170\nPerhaps you should have used the -p or --strip option?\nThe text leading up to this was:\n--------------------------\n|Index: type/uploadsingle/assignment.class.php\n|===================================================================\n|RCS file: type/uploadsingle/assignment.class.php,v\n|retrieving revision 1.30.2.1\n|diff -u -r1.30.2.1 assignment.class.php\n|--- type/uploadsingle/assignment.class.php 5 Apr 2007 03:18:45 -0000 1.30.2.1\n|+++ type/uploadsingle/assignment.class.php 7 Jun 2007 22:37:37 -0000\n--------------------------\nFile to patch: type/uploadsingle/assignment.class.php\npatching file type/uploadsingle/assignment.class.php\n}}}\n===\n\nNow tar zip these changed files and untar into code.\nAll changes instantiated into moodle19 (test)\n!!Problems:\nAdvanced File upload -- review files uploaded by faculty. Error message:\n<<<\nfailed to copy file\n{{{\n/var/moodledata19/4/moddata/assignment/25/temp/ronw_Avoiding underwater ghoulies__responses/els_screenshot.png\n/var/moodledata19/4/moddata/assignment/25/34/responses/els_screenshot.png\n}}}\n<<<\nTherefore cannot use ZIP download when reviewed files have been uploaded.\n!!Files\n* [[Assignment ZIP patch|modules/assignment.patch]]\n* [[Assignment ZIP files for moodle 1.9|modules/assignment_zip19.tgz]]\nAlso see the Moodle Tracker item : MDL-7206 [[Can not download all submitted assignment at once compressed in one single zip file|http://tracker.moodle.org/browse/MDL-7206]] where the files are also located.
Addressing the issue as detailed on [[the Moodle Stats blog|http://blogs.frumentius.earlham.edu/mstats/weblog/805.html]] and doing the update indicated in [[Assignment_zip guts]] I backed up MGMT344 Startegic Planning from moodle.earlham and restores it into moodle_test. The ZIP download worked. \nNext steps: \n* try it on other courses\n* get details to Aaron.\nTry to get this done over the weekend.
This discussion [[single file upload vs. advanced uploading|http://moodle.org/mod/forum/discuss.php?d=126431]] revealed what may be an incredibly useful patch [[Assignment module update to support Bulk Downloads and Receipting|http://online.waikato.ac.nz/wcel/development/AssignmentReceiptAndDownloads.zip]] from http://online.waikato.ac.nz/wcel/development/\nBUT:\n\nStick with the normal ZIP assignments : http://tracker.moodle.org/browse/MDL-7206\n
!!Power of Open Source\nI got this email/moodle message today from Chris Dennison (chd@henry-cort.hants.sch.uk) (UK)\n<<<\nchris dennison [Tue, 21:26]: Mark, re assignment zipping.\nI've done some more work to get the 3 types downloading. We hit a problem which was quite serious - after a while we had some 160 word documents in the assignment, which caused the zipping to fail. This left a large file in temp, which caused the main backup to fail.\nI've got fixes for the above and wondered if and how you might want to update your website.\nRegards Chris\n<<<\nI'm gobsmacked! Somehow he discovered or downloaded my ZIP assignment hacks and has kept me up to date with developments. How about that!\n
Monteze is having problems with MGMT334 (Strategic Planning and Mgmt) with getting the ZIP and download to operate. Basicaly, when you click on the "ZIP and download all submissions" button it just generates a blank page.\n# Not all students had actually submitted for marking their assignments. So we managed to get all those done.\n# Then there were two who had not submitted anything. I logged in did a dummy submission.\nStill the same problem.\nI had a brainwave. I backed up the course together with the users and uploaded it into my test Moodle site on Barnabas. Then I restored it there to see what would happen. Tried the ZIP and download again and got:\n<<<\nFatal error: Call to undefined method assignment_upload::download_submissions() in /var/www/moodle/mod/assignment/submissions.php on line 44\n<<<\nNow I'll switch on the php debugging and see what that generates. \nAlso I've got an +++[email]>\nChris,\n\nTHANK YOU for searching me out about this. I had tested this out with a small number of users. What I'm finding now is that if there's a single user in the class who has not submitted then the ZIP fails with a blank page and now it's failing even though I have all the users with submissions. I'm hoping that you can email me a ZIP with your fixes so that I can test things out on my test server.\n\nCheers,\n\nMark Pearson\n------------------------------------------------------------------------\n\n{{{This email is: [x] actionable [ ] fyi [ ] social [ ] response}}}\n{{{Response needed: [x] yes [ ] up to you [ ] no}}}\n{{{ Time-sensitive: [ ] immediate [x] soon [ ] none}}}\n\nchris dennison wrote:\n\n Mark, re assignment zipping.\n I've done some more work to get the 3 types downloading. We hit a problem which was quite serious - after a while we had some 160 word documents in the assignment, which caused the zipping to fail. This left a large file in temp, which caused the main backup to fail.\n\n I've got fixes for the above and wondered if and how you might want to update your website.\n\n Regards Chris\n This email is a copy of a message sent to you at "Moodle"\n=== \nback to [[Chris Dennison|Assignment zip problem]] to see if I can get his 'fixed' file.\n\n
Major changes between the lib.php as used by assignment_zip and the latest 1.8.3 lib.php code:\n{{{ diff -iwBu lib.php.nozip lib.php}}}\n\n<html>\n<pre>\n--- lib.php.nozip 2007-09-24 22:56:05.000000000 -0400\n+++ lib.php 2007-06-08 10:40:26.000000000 -0400\n@ @ -1,4 +1,4 @ @\n-<?PHP // $Id$\n+<?PHP // $Id: lib.php,v 1.219.2.10 2007/05/15 18:27:12 skodak Exp $\n /**\n * assignment_base is the base class for assignment types\n *\n@@ -623,10 +623,6 @@\n\n if ($updatedb){\n if ($newsubmission) {\n- /// assignment_submissions->data1 and assignment_submissions->data2 are not null (and\n- /// text columns haven't a default, so we must provide it before insert. MDL-11268\n- $submission->data1 = '';\n- $submission->data2 = '';\n if (!insert_record('assignment_submissions', $submission)) {\n return false;\n }\n@@ -713,7 +709,7 @@\n if (empty($SESSION->flextable['mod-assignment-submissions']->collapse['timemodified']) &&\n $submission->timemodified) {\n $output.= 'opener.document.getElementById("ts'.$submission->userid.\n- '").innerHTML="'.addslashes_js($this->print_student_answer($submission->userid)).userdate($subm ission->timemodified)."\s";\sn";\n+ '").innerHTML="'.addslashes($this->print_student_answer($submission->userid)).userdate($submiss ion->timemodified)."\s";\sn";\n }\n\n if (empty($SESSION->flextable['mod-assignment-submissions']->collapse['timemarked']) &&\n@@ -727,7 +723,7 @@\n $buttontext = get_string('update');\n $button = link_to_popup_window ('/mod/assignment/submissions.php?id='.$this->cm->id.'&userid='.$ submission->userid.'&mode=single'.'&offset='.(optional_param('offset', '', PARAM_INT)-1),\n 'grade'.$submission->userid, $buttontext, 450, 700, $buttontext, 'none', true, 'button'.$s ubmission->userid);\n- $output.= 'opener.document.getElementById("up'.$submission->userid.'").innerHTML="'.addslashes_js($b utton).'";';\n+ $output.= 'opener.document.getElementById("up'.$submission->userid.'").innerHTML="'.addslashes($butt on).'";';\n }\n $output .= "\sn-->\sn</script>";\n return $output;\n@@ -810,8 +806,7 @@\n\n $select = 'SELECT u.id, u.firstname, u.lastname, u.picture,\n s.id AS submissionid, s.grade, s.submissioncomment,\n- s.timemodified, s.timemarked,\n- COALESCE(SIGN(SIGN(s.timemarked) + SIGN(s.timemarked - s.timemodified)), 0) AS status ';\n+ s.timemodified, s.timemarked ';\n $sql = 'FROM '.$CFG->prefix.'user u '.\n 'LEFT JOIN '.$CFG->prefix.'assignment_submissions s ON u.id = s.userid\n AND s.assignment = '.$this->assignment->id.' ' .\n@@ -1072,8 +1067,7 @@\n\n $select = 'SELECT u.id, u.firstname, u.lastname, u.picture,\n s.id AS submissionid, s.grade, s.submissioncomment,\n- s.timemodified, s.timemarked,\n- COALESCE(SIGN(SIGN(s.timemarked) + SIGN(s.timemarked - s.timemodified)), 0) AS status ';\n+ s.timemodified, s.timemarked ';\n $sql = 'FROM '.$CFG->prefix.'user u '.\n 'LEFT JOIN '.$CFG->prefix.'assignment_submissions s ON u.id = s.userid\n AND s.assignment = '.$this->assignment->id.' ' .\n@@ -1189,6 +1183,13 @@\n }\n /// End of fast grading form\n\n+ // print button offering zip file function to teacher\n+ $options["id"] = "$cm->id";\n+ $options["download"] = "zip";\n+ echo '<div align="center">';\n+ print_single_button("submissions.php",$options, "Zip & Download all submissions") ;\n+ echo '</div>';\n+\n /// Mini form for setting user preference\n echo '<br />';\n echo '<form id="options" action="submissions.php?id='.$this->cm->id.'" method="post">';\n@@ -1652,21 +1653,6 @@\n return '';\n }\n\n- /**\n- * Add a get_coursemodule_info function in case any assignment type wants to add 'extra' information\n- * for the course (see resource).\n- *\n- * Given a course_module object, this function returns any "extra" information that may be needed\n- * when printing this activity in a course listing. See get_array_of_activities() in course/lib.php.\n- *\n- * @param $coursemodule object The coursemodule object (record).\n- * @return object An object on information that the coures will know about (most noticeably, an icon).\n- *\n- */\n- function get_coursemodule_info($coursemodule) {\n- return false;\n- }\n-\n } ////// End of the assignment_base class\n\n\n@@ -1685,17 +1671,8 @@\n return false;\n }\n\n- // fall back to base class if plugin missing\n- $classfile = "$CFG->dirroot/mod/assignment/type/$assignment->assignmenttype/assignment.class.php";\n- if (file_exists($classfile)) {\n- require_once($classfile);\n+ require_once("$CFG->dirroot/mod/assignment/type/$assignment->assignmenttype/assignment.class.php");\n $assignmentclass = "assignment_$assignment->assignmenttype";\n-\n- } else {\n- debugging("Missing assignment plug-in: {$assignment->assignmenttype}. Using base class for deleting inst ead.");\n- $assignmentclass = "assignment_base";\n- }\n-\n $ass = new $assignmentclass();\n return $ass->delete_instance($assignment);\n }\n@@ -1981,16 +1958,6 @@\n }\n\n /**\n- * Returns true if the scale is in use in the system.\n- *\n- * @param $scaleid int The scale to be counted.\n- * @return boolean\n- */\n-function assignment_scale_used_anywhere($scaleid) {\n- return record_exists("assignment","grade","-$scaleid");\n-}\n-\n-/**\n * Make sure up-to-date events are created for all assignment instances\n *\n * This standard function will check all instances of this module\n@@ -2331,30 +2298,6 @@\n */\n }\n\n-/**\n- * Add a get_coursemodule_info function in case any assignment type wants to add 'extra' information\n- * for the course (see resource).\n- *\n- * Given a course_module object, this function returns any "extra" information that may be needed\n- * when printing this activity in a course listing. See get_array_of_activities() in course/lib.php.\n- *\n- * @param $coursemodule object The coursemodule object (record).\n- * @return object An object on information that the coures will know about (most noticeably, an icon).\n- *\n- */\n-function assignment_get_coursemodule_info($coursemodule) {\n- global $CFG;\n-\n- if (! $assignment = get_record('assignment', 'id', $coursemodule->instance)) {\n- return false;\n- }\n-\n- require_once("$CFG->dirroot/mod/assignment/type/$assignment->assignmenttype/assignment.class.php");\n- $assignmentclass = "assignment_$assignment->assignmenttype";\n- $ass = new $assignmentclass($coursemodule->id, $assignment);\n-\n- return $ass->get_coursemodule_info($coursemodule);\n-}\n</pre>\n</html>\n\n
!!What does Assignment_zip do?\nI started in the 'assignment' directory -- ie {{{moodle/mod/assignment}}}\nI ran some 'diffs on the code. The [[wikipedia entry for diff|http://en.wikipedia.org/wiki/Diff]] helped to suss out the command line to run -- {{{diff -iwBu old_file new_file}}}\n# compare submissions.php.nozip (original) with submissions.php (zip download). +++[results]>\n{{{diff -iwBu submissions.php.nozip submissions.php}}}\n- - - submissions.php.nozip 2006-08-28 22:01:31.000000000 -0400\n+ + + submissions.php 2007-06-08 10:32:34.000000000 -0400\n@ @ -6,6 +6,7 @ @\n $id = optional_param('id', 0, PARAM_INT); / Course module ID\n $a = optional_param('a', 0, PARAM_INT); / Assignment ID\n $mode = optional_param('mode', 'all', PARAM_ALPHA); / What mode are we in?\n@@+ $download = optional_param('download' , 'none', PARAM_ALPHA); /ZIP download asked for? [line added]@@\n if ($id) {\n if (! $cm = get_coursemodule_from_id('assignment', $id)) {\n@ @ -40,6 +41,10 @ @\n $assignmentclass = 'assignment_'.$assignment->assignmenttype;\n $assignmentinstance = new $assignmentclass($cm->id, $assignment, $cm, $course);\n\n- $assignmentinstance->submissions($mode); / Display or process the submissions\n@@substitution here@@\n+ if($download == "zip") {\n+ $assignmentinstance->download_submissions();\n+ } else {\n\n+ $assignmentinstance->submissions($mode); / Display or process the submissions\n+ }\n ?>\n=== There were only two lines added here concerning the ZIP download and so the differences were trivial. \n# Not so for comparing lib.php.nozip (the original) with lib.php (with zip code). Here, there have been major bug fix changes which probably need to be integrated into the new lib.php. [[Assignment_zip changes to lib.php]]\n# fixed in [[Merging lib.php]] -- upload back into moodle/mod/assignment\n# now check out the code differences in ''assignment/type/online'' +++[code changes]>\n{{{moodle/mod/assignment/type/online$ diff -iwBu assignment.class.php.nozip assignment.class.php}}}\n{{{--- assignment.class.php.nozip 2007-03-29 22:31:56.000000000 -0400}}}\n{{{+++ assignment.class.php 2007-10-17 07:23:08.000000000 -0400}}}\n{{{@@ -259,6 +259,73 @@}}}\n{{{ }}}}\n{{{+ function download_submissions}}}\n=== Basically, just the download function is added and there are no other changes. Leave alone.\n# check ''assignment/type/upload'' +++[code changes]>\n<html>\n<pre>\nmoodle/mod/assignment/type/upload$ diff -iwBu assignment.class.php.nozip assignment.class.php\n--- assignment.class.php.nozip 2007-08-07 09:53:58.000000000 -0400\n+++ assignment.class.php 2007-10-17 07:24:32.000000000 -0400\n@@ -1,4 +1,4 @@\n-<?php // $Id: assignment.class.php,v 1.29.2.2 2007/08/06 13:26:43 poltawski Exp $\n+<?php // $Id: assignment.class.php,v 1.29.2.1 2007/04/05 02:11:24 nicolasconnault Exp $\n require_once($CFG->libdir.'/formslib.php');\n\n define('ASSIGNMENT_STATUS_SUBMITTED', 'submitted');\n@@ -921,6 +921,7 @@\n $ynoptions = array( 0 => get_string('no'), 1 => get_string('yes'));\n\n $choices = get_max_upload_sizes($CFG->maxbytes, $COURSE->maxbytes);\n+ $choices[1] = get_string('uploadnotallowed');\n $choices[0] = get_string('courseuploadlimit') . ' ('.display_size($COURSE->maxbytes).')';\n $mform->addElement('select', 'maxbytes', get_string('maximumsize', 'assignment'), $choices);\n $mform->setDefault('maxbytes', $CFG->assignment_maxbytes);\n@@ -952,6 +953,73 @@\n\n }\n\n+ function download_submissions() {\n</pre>\n</html>\n=== Here again, apart from the download_submissions function the only change is the addition of ''$choices[1]'' so we can leave this well alone.\n# In ''assignment/type/uploadsingle'' the code diffs are exactly the same as with ''upload'' so we'll leave this alone as well.\n!!!Summary\n* I have just had to update the ''assignment/lib.php'' code --and that's all.-- @@NO@@ -- also need to upload the appropriate //assignment.class.php// code!! \n* ToDo: tar-gzip the code and upload to moodle.org and NITLE after testing.\n!!!Update\nThe assignment zip [[did not work|Assignment zip: more problems]] on the production Moodle. Sussed out that the problem was that I had not combined the new assignment.class.php incorporating the download_submissions function.
Procedures for grading assignments are covered in in [[EC Moodlings : Advanced upload : zip download|http://www.earlham.edu/markp/moodle_dox/index.html#[[Advanced uploading files]]]]\n\n!!Testing Results\n* Use the [[test rig on barnabas|http://barnabas.lly.earlham.edu/moodle]] as described [[here|http://www.earlham.edu/~markp/ITI_wiki/#[[Create new 1.8.3 test moodle]]]]\n* I used the MISC-TST:2008 Testing and Practice course. I rejigged some of the participants moving Wes and Monteze from Teachers to Students so that I had more students to test with.\n* Logged in as markp teacher using Flock and administrator with Firefox. \n* Clicking on Participants - User list : More detailed I found that there was a 'login as' link for most of the students. One account (Kerri Jones) I could not login as and I don't know why that was.\n* Created test assignments for Advanced upload, upload single and online options.\n* Uploaded submissions and made notes 'logging in as' to each of the student accounts.\n* Returned response files as the teacher.\n!!! Advanced upload\nEverything went smoothly and all the functions seemed to work as expected.\n@@However@@ as a teacher, clicking the Zip and download all submissions button ''after'' having uploaded the response files will give an error. The application tries to access the response files and cannot.\n!!! Upload single\nGrading went smoothly with no glitches. Files zipped and downloaded as expected.\n!!! Online text\nHere the Zip and download function does not perform properly. No files are downloaded although since the assignment is online that's not perhaps surprising.\n\n
!!Installation\n* downlaod from [[here|http://do.nspu.ru/~dlnsk/moodle/block_attendance_for_v19.zip]] from [[modules and plugins|http://moodle.org/mod/data/view.php?d=13&rid=1062]]\n* Unzip and then copy into correct place +++[commands]\n{{{\n/var/www/moodle19/mod$ sudo cp -r /home/markp/moodle_stuff/modules/attendance/blocks/* .\n$ sudo chown -R www-data:admin attendance\n$ cd ../mod\n/var/www/moodle19/mod$ sudo cp -r /home/markp/moodle_stuff/modules/attendance/mod/* .\n}}}\n===\n\n* Backup database just in case : {{{ mysqldump -u moodlebackup -p -C -Q -e moodle19 >moodle_test19_preattendance.sql}}}\n* browse to administration : notifications and //success// for tables installed.\n!!Notes\n* Comprehensive documentation at the [[Moodle docs : Attendance|http://docs.moodle.org/en/Attendance_module]]
Basically, in Attendance : Report : Download in Excel format all you get is what turns out to be a list of student ids, +++[example]>\n1049\n869\n978\n1365\n===\n\nWhen you choose 'Download in ~OpenOffice format you get the +++[proper data]>\n|Student ID| Surname | First name | 10.01.2008 |\n|1049| Anderson | Alex | P |\n===\n\nPosted to Moodle.org as a response to [[Problems with Attendance Module|http://moodle.org/mod/forum/discuss.php?d=79134]]\n\n
Cool new features in Attendance:\n# Can now add extra fields to attendance variables, eg participation. Here's an example : [[Attendance : Settings|graphics/attendance_variables.png]]<<imagebox>>\n# Taking attendance is now a lot easier : [[Attendance : update|graphics/attendance_update.png]]<<imagebox>>\n# And creating Sessions is a piece of cake : [[Attendance : add|graphics/attendance_addsessions.png]]<<imagebox>>\n
This was brought up by Monteze.\nWhat happens when there are no classes and therefore no attendance? Eg Thanksgiving break and Fall break. Students should not loose marks.\n
!!Problems with playing MP3s\nWe've noticed in the past that the Moodle Flash player (and the stand alone flash player) can't handle MP3s encoded at bit rates less than 128kbps. This is a pain because often we don't need 128 and 64 will do.
!!Filename format for course backups\nHere's a standard format for the filename for course backup: backup-pols372_200810-20070822-1353.zip\n|!backup|-|!pols|!372|_|!2008|!10|-|!20070822|-|!1353|\n|indicates course backup|-|department|course id|_|graduation year|semester 10-fall, 20-spring|-|<year><month><day> of backup|-|<hour><minute> of backup|\n
Interesting discusssion [[Picture of Eric Merrill \nBanner/Luminis Message Broker plug-in update|http://moodle.org/mod/forum/discuss.php?d=83891]]\nSounds like we could be doing something here.\n
I started off a discussion thread in the Blogs forum of moodle.org called [[Blogging in Moodle.Role of elgg|http://moodle.org/mod/forum/discuss.php?d=65777#299242]]. \nHere are are initial thoughts and a nicely thought out proposal from Michael Penney.\n\n<<faqlist bytag MBA title hr>>\nWhat should be our response?\n* offer to mentor?\n* offer to collaborate (already done)?\n* MP has considerable Moodle programming experience under his belt so collaboration would be rather asymmetrical.\n
I downloaded Book from the contrib CVS.\nCopy into mod.\nGo to Site Admin : Notifications\nDone!\nProblem [[Participation report|http://moodle.org/mod/forum/discuss.php?d=102402]] +++[Fix]>\nWe've just put in book 1.9 and we have noticed that the participation reports don't work (actually they didn't in 1.6 either). However, by putting the below code into mod/book/lib.php they seem to be ok. Can anyone confirm that this is the right thing to do or is there more to it? Perhaps someone in the know could put it into the production version if it is. This issue also seems to affect a number of other modules, you can see if you google\n\nMoodle Module "missing the code needed to perform this function"\n\nThanks\njim\n\n// the code:\nfunction book_get_view_actions() {\n return array('view');\n}\n\nfunction book_get_post_actions() {\n return array('upload');\n}
[[Alison Pope's Diigo bookmarks tagged with cas|http://www.diigo.com/user/Ajp-diigo/cas?page_num=1&sort_by=2]]
!![[CAS|Central Authentication Service (CAS)]] in Moodle\n* Here's what happens when a non-authenticated user visits an application which has been modified with CAS, for example, Moodle : [[Scenario 1|graphics/CAS scenario1.png]]<<imagebox>>\n* If a user is already authenticated with CAS, here's what happens when he visits Moodle: [[Scenario 2|graphics/CAS scenario2.png]]<<imagebox>>\n\nIn our current production version of Moodle (1.6.3+) an authentication method is present called "Use a CAS server (SSO)" (in Administration >> Users >> Authentication). This basically looks up the user on the CAS server (which must therefore do the authentication -- with LDAP in our case) and can create a new user record in Moodle if not already present. Obviously we would need a CAS server with LDAP to implement this.\n!!!The bad news\n# The entry [[Use a CAS server (SSO)|http://docs.moodle.org/en/auth/cas]] in ~MoodleDocs has no meaningful content. \n# New entry [8th March 07] in Moodle tracker entitled [[The CAS authentification don't work|http://tracker.moodle.org/browse/MDL-8813]] with the comment:\n<<<\nYes - it is caused by its non-standard implementation - it duplicated a lot of code from other places.\nIt needs cleanup and some rewriting to make it work properly :-( \n<<<\nHere's an [[older conversation|http://moodle.org/mod/forum/discuss.php?d=18179]] about CAS and SSO for Moodle from 05.
# take a look at some ideas already on the table : [[Collaborative Moodle Projects]]\n# reformulate the [[Blogging Activity in Moodle]] to integrate with Elgg and use RSS feeds off tags\n# [[Speex project]]\n
In an email from 16-Nov-2007 reagrding my query about doing a Moodle spiel Denise said:\n>Are you wanting your own group or to keep this part of the DBI group?\nSo, if there's to be a CS Applications Moodle group what would it do, and how would it be managed?
* make a directory for your cvs checkout. call it whatever you want.\n* To connect and login for the first time to the CVS server, you can use this command: {{{cvs -d:pserver:anonymous@cvs.moodle.sourceforge.net:/cvsroot/moodle login}}} . There is no password - when asked for one, just hit Enter.\n* To checkout (download) the entire Moodle code for the first time, use this command: {{{cvs -z3 -d:pserver:anonymous@cvs.moodle.sourceforge.net:/cvsroot/moodle co contrib}}}\n* Later, to update your local copy of Moodle to the current version in CVS you just need to go into your local moodle directory and type: {{{cvs update -dP}}}\n
This command did not work:\n{{{\ncvs -z3 -d:pserver:anonymous@us.cvs.moodle.org:/cvsroot/moodle co -P -d moodle_19 -r MOODLE_19_WEEKLY moodle\ncvs [checkout aborted]: connect to us.cvs.moodle.org(130.212.64.111):2401 failed: Connection refused\n}}}\n;Solution:\n: Need to get Aaron to open port 2401 to enable CVS to work
This command did not work:\n{{{\ncvs -z3 -d:pserver:anonymous@us.cvs.moodle.org:/cvsroot/moodle co -P -d moodle_19 -r MOODLE_19_WEEKLY moodle\ncvs [checkout aborted]: connect to us.cvs.moodle.org(130.212.64.111):2401 failed: Connection refused\n}}}\n;Solution:\n: Need to get Aaron to open port 2401 to enable CVS to work\nTo update:\n* export CVSROOT=:pserver:anonymous@us.cvs.moodle.org:/cvsroot/moodle\n* cvs update -dP\n!!Follow Up\nI talked to Aaron about doing stuff on Frumentius for the Hack-Doc session but he was not keen. So I set up the [[OpenVPN|http://www.earlham.edu/ecs/html/openvpn.html]] system on my Mac and was able to get to the web server on Barnbas no trouble. The problem was that I ended up using the Moodle Issues on Barnabas too!\nSo, all my moodle 1.9 testing is off the Barnanbas server.\n!!!To Do\nWhen the new test/production Elgg/Moodle server goes live move the barnabas IP address from the Dell server to the Intel server, tar/gzip all the contents and move everything over to the Intel system. Run web TiddlyWikis from 'heping'\n
Login:\n{{{cvs -d:pserver:anonymous@us2.cvs.moodle.org:/cvsroot/moodle login}}}\nApparently the CVS root is the moodle directory. So, this works:\n{{{\n~/moodle_contrib$ cvs -z3 -d:pserver:anonymous@us2.cvs.moodle.org:/cvsroot/moodle co \ncontrib/plugins/blocks/yui_menu\n}}}\n+++[code]\ncvs checkout: Updating contrib/plugins/blocks/yui_menu\nU contrib/plugins/blocks/yui_menu/COPYING.txt\nU contrib/plugins/blocks/yui_menu/README.txt\nU contrib/plugins/blocks/yui_menu/block_yui_menu.php\nU contrib/plugins/blocks/yui_menu/config_instance.html\nU contrib/plugins/blocks/yui_menu/styles.php\ncvs checkout: Updating contrib/plugins/blocks/yui_menu/db\nU contrib/plugins/blocks/yui_menu/db/course_menu_migrate.php\ncvs checkout: Updating contrib/plugins/blocks/yui_menu/icons\nU contrib/plugins/blocks/yui_menu/icons/viewall.gif\ncvs checkout: Updating contrib/plugins/blocks/yui_menu/lang\ncvs checkout: Updating contrib/plugins/blocks/yui_menu/lang/en_utf8\nU contrib/plugins/blocks/yui_menu/lang/en_utf8/block_yui_menu.php\n===\n
Lori Watson phoned with a Moodle problem today. When she was filling in the Enrolment key (Administration : Settings) it kept putting in her moodle password. No changes would stick. I remembered that Wes had come across a similar problem.\nShe opened up moodle in Safari and this time she was able to change it.\n!!Fix\nI figured out that the problem was actually a browser issue related to automatic entry of passwords with Firefox. So I got her to the password window (Preferences [Options] : Security : Saved passwords) and then she searched for 'moodle' and Removed all the saved passwords. A restart of the browser and opening the course in Moodle showed that she was able to change the enrollment key and have it 'stick'. \nBut now she has to type the password in every time.
!!!On Rublev, the experimental server\nI have done:\n<<<\n # Setup a new 'remote' to track the\n # MOODLE_19_BRANCH as imported by catalyst\n # (you only need to do this step once)\n{{{ git remote add cat-moodle git://git.catalyst.net.nz/moodle-r2.git}}} ''done''\n # fetch latest code from the catalyst moodle repo\n # (the first time this will take a minute)\n{{{ git fetch cat-moodle}}} ''done''\n # before attempting the merge, check that\n # your status is "clean" so it's safe to\n # later "reset" if the merge goes wrong...\n{{{ git status}}}\n ... +++[git will tell you about changed files]>\n{{{\n[markp@rublev ~/moo-cat/moodle]$ git status\n# On branch mdl19-tinymce\nnothing to commit (working directory clean)\n}}}\n===\n\n # and attempt the merge\n{{{ git merge cat-moodle/MOODLE_19_STABLE}}}\nThis did it. Version.php:\n{{{\n $release = '1.9.4+ (Build: 20090209)'; // Human-friendly version name\n}}}\n<<<
Create system to test [[Catalyst version of Moodle with TinyMCE]]\n# Get code from above link\n# Create web dir and copy code +++[commands]\n{{{\n/var/www$ sudo mkdir moo-cat\n/var/www$ sudo cp -R ~/moo-catalyst/moodle/* moo-cat\n}}}\n===\n\n# dump mtest19 database in lieu of obtaining copy of production database (which we really need). {{{markp@Barnabas:~/mbackups$ mysqldump -u moodlebackup -p -CQe mtest19 >mtest19db.sql}}}\n# create +++[new database]>\n{{{\nmysql> CREATE DATABASE moocat DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;\nmysql> GRANT ALL PRIVILEGES ON moocat.* TO moocat_user@localhost IDENTIFIED BY '*********';\nmysql> GRANT SELECT,LOCK TABLES on moocat.* TO moodlebackup@localhost IDENTIFIED BY '******';\nmysql> FLUSH PRIVILEGES;\n}}}\n===\n\n# Now load up {{{moocat}}} with mtest19 database {{{mysql -u root -p -D moocat <mtest19db.sql}}} (can repeat this with production db). Create /var/moo-catdata for data.\n# Go to {{{http://barnabas.lly.earlham.edu/moo-cat/install.php}}} and complete the installation process\n!!!Finishing installation\nI had to do some 'chown'ing to set correct ownerships (root -> www-data:admin)\nI realised that having loaded the database I needed to use the mtest19 admin password!\nDisappontingly it announced that it was just updating builds of 1.9.2+ and not going to 1.9.3\nAlso it picked up that some modules were missing:\n|?| attforblock |Non-standard (Missing from disk)|\n|?| book |Non-standard (Missing from disk)|\n|?| feedback |Non-standard (Missing from disk)|\nSo I need to copy these from mtest19. Also blocks:\n|?| yui_menu| Non-standard (Missing from disk)|\n|?| attendance| Non-standard (Missing from disk)|\nCopy over and set ownerships +++[here's how]>\n{{{\nsudo mkdir yui_menu \nsudo chown www-data:admin yui_menu/\nsudo cp -pR ../../mtest19/blocks/yui_menu/* yui_menu/\n}}}\nNote the -p to retain ownship and -R to recurse directories\n===\nand reload page +++[results]\n|mod/attforblock| Attendance |Non-standard|\n|mod/book| Book |Non-standard|\n|mod/exercise| exercise |Standard (about to be installed)|\n|mod/feedback| Feedback |Non-standard|\nand ditto for blocks/attendance and blocks/yui_menu.\n===\n\nDatabase successfully upgraded +++[results]\nUpgrading Moodle database from version 1.9.2+ (Build: 20080730) (2007101520.03) to 1.9.2+ (Build: 20081012) (2007101526)...\n{{{\n(mysql): ALTER TABLE mdl_user MODIFY COLUMN lang VARCHAR(30) NOT NULL DEFAULT 'en_utf8' after country \nSuccess\n(mysql): SELECT name FROM mdl_config WHERE name = 'version' LIMIT 1 \n(mysql): UPDATE mdl_config SET value = '2007101526' WHERE name = 'version'\n}}}\nDatabase was successfully upgraded\n===\n\n+++[New Settings]>\nNew settings - Manage authentication\nRestrict domains when changing emailverifychangedemail\nDefault: Yes\nEnables verification of changed email addresses using allowed and denied email domains settings. If this setting is disabled the domains are enforced only when creating new users.\n----\nNew settings - User report\nShow percentagegrade_report_user_showpercentage\nDefault: Yes\nWhether to show the percentage value of each grade item.\n----\nNew settings - HTTP\nLogged IP address sourcegetremoteaddrconf\nDefault: HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR, REMOTE_ADDR\nIf your server is behind a reverse proxy, you can use this setting to specify which HTTP headers can be trusted to contain the remote IP address. The headers are read in order, using the first one that is available.\n===\n\nA bunch of new module tables are now created: mdl_exercise, mdl_exercise_submissions, mdl_exercise_assessments, mdl_exercise_elements, mdl_exercise_rubrics, mdl_exercise_grades\n\nCopy over ecs_theme and we're there!\n\n[[TinyMCE fixes for Moodle]]
Martin Langhoff reports a 'clean port' of TinyMCE to Moodle 1.9 -- [[discussion|http://moodle.org/mod/forum/discuss.php?d=107550]]. \nI followed +++[these instructions to download]>\nThe code is on a branch off MOODLE_19_STABLE (from the catalyst repo), right here:\nhttp://dev.laptop.org/git?p=users/martin/moodle.git;a=shortlog;h=mdl19-tinymce\nTo download, follow the 'tree' link at the top, which will reveal a 'snapshot' link.\nTo use, set $CFG->defaulthtmleditor='tinymce';\n=== and this:\n{{{\ntar --strip-components 2 -xvzf /path/to/moodle.git-mdl19-tinymce.tar.gz\n}}}\nto unpack. Have also asked about command line used to update the git package ([[here|http://moodle.org/mod/forum/discuss.php?d=107550&parent=475540]])\nThis is wrong:\n<<<\nTo install git:\n>{{{sudo apt-get install git}}} \n+++[done it 28-Oct-08]>\n{{{\n$ sudo apt-get install git\nReading package lists... Done\nBuilding dependency tree\nReading state information... Done\nThe following NEW packages will be installed:\n git\n0 upgraded, 1 newly installed, 0 to remove and 70 not upgraded.\nNeed to get 262kB of archives.\nAfter unpacking 995kB of additional disk space will be used.\nGet:1 http://us.archive.ubuntu.com feisty/universe git 4.3.20-10 [262kB]\nFetched 262kB in 15s (17.4kB/s)\nSelecting previously deselected package git.\n(Reading database ... 28947 files and directories currently installed.)\nUnpacking git (from .../git_4.3.20-10_i386.deb) ...\nSetting up git (4.3.20-10) ...\n}}}\n=== need to {{{sudo apt-get remove git}}} to get rid of it.\n<<<\nSee [[Old GIT]] for correct instructions.\n\nHere are the instructions for using +++[git workflow]>\nThe tarball is not a git repository. If you want the git repository you do git clone...\nA quick workflow...\n # clone the repo - will take a few minutes...\n {{{git clone git://dev.laptop.org/users/martin/moodle.git}}} +++[output]>\n{{{\ngit clone git://dev.laptop.org/users/martin/moodle.git\nremote: Generating pack...\nremote: Counting objects: 227967\nremote: Done counting 279377 objects.\nremote: Deltifying 279377 objects...\nremote: 100% (279377/279377) done\nIndexing 279377 objects.\nremote: Total 279377 (delta 204424), reused 278846 (delta 204008)\n 100% (279377/279377) done\nResolving 204424 deltas.\n 100% (204424/204424) done\ncat: /home/markp/moo-catalyst/moodle/.git/refs/heads/master: No such file or directory\nChecking files out...\n 100% (5073/5073) done\n}}}\n===\n\n # the "default" branch of this repo is for the\n # moodle version we run in the OLPC School Server\n # - not what you want - so create a local\n # branch to track the mdl19-tinymce branch, and\n # switch to it\n{{{ git checkout -b mdl19-tinymce origin/mdl19-tinymce}}}\n # done! so configure and use...\n # ... some time later...\n # Pull updates from the mdl19-tinymce branch\n{{{ git pull}}}\nNow, I will be regularly merging fixes from MOODLE_19_STABLE so all you need to do is that "git pull" regularly. But perhaps I fall behind, or get rolled over by a bus. If that happens you can merge in updates from the MOODLE_19_STABLE branch without waiting for me...\n # Setup a new 'remote' to track the\n # MOODLE_19_BRANCH as imported by catalyst\n # (you only need to do this step once)\n{{{ git remote add cat-moodle git://git.catalyst.net.nz/moodle-r2.git}}}\n # fetch latest code from the catalyst moodle repo\n # (the first time this will take a minute)\n{{{ git fetch cat-moodle}}}\n # before attempting the merge, check that\n # your status is "clean" so it's safe to\n # later "reset" if the merge goes wrong...\n{{{ git status}}}\n ... git will tell you about changed files\n # and attempt the merge\n{{{ git merge cat-moodle/MOODLE_19_STABLE}}}\n ... some noise from git, hopefully it all\n merges ok and no further steps are needed...\n # if the merge has conflicts...\n # a) learn a bit more about git and how to\n # deal with conflict resolution...\n # b) cancel the merge like this:\n{{{ git reset --hard}}}\n===
!!Objective\nTest in moo-cat Rublev (copy of production db)\n* backup database {{{mysqldump -u moodlebackup -p -C -q -e moocat >moo-cat_pre_categoryshuffle.sql}}}\n** copy uploadcourse.php into place +++[code]\n{{{\nmarkp/moo-plugins]$ wget http://www.earlham.edu/markp/miss/modules/uploadcourse.phps\nmarkp/web/moo-cat/admin]$ cp ~/moo-plugins/uploadcourse.phps uploadcourse.php\n}}}\n=== \n* Move current categories into 2009 category which we hide\n* upload and create list of new categories [[Create category list]]\n* upload list of new courses\n* make sure can import course from hidden category\n
What I thought would be trivial is turning out to be a pain in the bot.\nI though that I could use //uploadcourses.php// to create a list of empty categories. To that end I made a CSV file like this:\n{{{\ncategory\n/African American Studies Prog (AAAS)/\n/Art (ART)/\n/Athletics & Wellness (AWPE)/\n}}}\nI then had to modify the uploadcourse.php so that the course fullname and shortname was no longer required:\n{{{\n$required = array('category' => $defaultcategory); // Mandatory fields\n\n$optional = array( 'fullname' => false, // Default values for optional fields\n 'shortname' => false,\n}}}\nBut this was not good enough. When I ran the modified script with the list of categories I got the following result:\n{{{\nParsed 49 course(s) from CSV\nCreated 1 course(s) out of 49\n48 course(s) were skipped (duplicate ShortName)\n1 new category(ies) were created\nYou may wish to manually Re-Sort the categories\nRe-Sorted courses\nANALYZE Database Tables OK\nOPTIMIZE Database Tables OK\nTotal Execution Time: 0.45 s\n}}}\nand only a single category was created. \nSo it looks like I need at least one course in every category. Maybe I could place a dummy hidden course and then delete it?\nSee [[Category create #2]]
!!New effort\nUse the following import file:\n|!category|!shortname|!fullname|!visible|\n|/African American Studies Prog (AAAS)/| ~DUM1| dummy course 1 | 0|\n|/Art (ART)/| ~DUM2| dummy course 2 | 0|\nSo what I'm doing here is is adding a dummy hidden course to each category. This may or may not be deleted.\nThis was successful: \n{{{\nParsed 49 course(s) from CSV\nCreated 49 course(s) out of 49\n48 new category(ies) were created\nYou may wish to manually Re-Sort the categories\nRe-Sorted courses\nANALYZE Database Tables OK\nOPTIMIZE Database Tables OK\nTotal Execution Time: 1.32 s\n}}}\n
!Central Authentication Service (CAS)\n!! What is CAS\nCAS is basically a mechanism for achieving [[Single Sign On (SSO)|http://www.ja-sig.org/products/cas/]] between a number of different web applications developed by Yale University and made Open Source. See [[Using CAS at Yale: A Quick Introduction|http://www.yale.edu/tp/auth/usingcasatyale.html]]\n!! How it works (from the Yale site)\n# "First and more importantly, CAS is unlike many familiar authentication systems because it is not simply a password-validation tool. In a traditional environment, your web application will ask users for an ID and a password, and it will then call logic to determine whether this ID/password pair is valid. With CAS, however, your application never gains access to the user's password; to improve systemwide security, users supply their passwords only to the CAS server directly."\n# When you first encounter a new user (e.g., one that has not yet established a session with your application), you'd normally display a username/password form in HTML. With CAS, you don't do this; instead, you simply redirect the browser to CAS's login URL, which is {{{https://secure.its.yale.edu/cas/login}}}\n# CAS then authenticates the user. If authentication fails -- e.g., if the user cannot supply a correct password -- then you'll never hear from the user again. (At least, you won't hear formally through any CAS protocol!) Only if a user succesfully authenticates does that user's browser return to your application. Specifically, the user returns because CAS redirects the browser back to your application. CAS knows how to find your application because when you initially redirected the user to CAS, you supplied a service parameter, in the form {{{https://secure.its.yale.edu/cas/login?service=http://my/url}}}\n# When CAS redirects the authenticated user back to your application, it will append a parameter named ''ticket'' to your URL. For instance, the URL you supplied CAS may be called as follows: {{{http://my/url?ticket=ST-92834-m34Aa83f7a3f}}}\n# The only thing you can do with this ticket is to send it back to CAS, which involves opening an HTTPS connection to {{{https://secure.its.yale.edu/serviceValidate}}} and sending two query parameters: ''service'', which must match the service URL you initially supplied to CAS when redirecting the user there, and ''ticket'', which is the ticket you just received. CAS then responds either with an explicit refutation of this ticket (think "it's not meaningful to me and does not represent a valid user") or an acknowledgement that the ticket proves authentication. In the latter case, CAS also supplies the user's ~NetID so that you know the identity of the user.\n\nNote that this final connection to CAS occurs directly between your application and CAS; your application opens a socket connection and retrieves information from the CAS server. You do not redirect the browser; you speak directly to CAS, effectively closing the loop and completing the authentication process.\n\n* [[diagram of CAS protocol in action|http://www-128.ibm.com/developerworks/web/library/wa-singlesign/figure1.gif]]<<imagebox>> from [[Build and implement a single sign-on solution|http://www-128.ibm.com/developerworks/web/library/wa-singlesign/]]\n* [[CAS resources]]\n
* Updated to [[Tiddlywiki|http://www.tiddlywiki.com/]] v2.0.11 on 8/23/06\n* added Alan Hecht's [[FAQlist|http://www.personal.psu.edu/staff/a/c/ach12/tiddlywiki/extensions.htm#%5B%5BFaqList%20(for%20TW%202.0)%5D%5D]]\n
# Teachers seems to be unenrolled. Argg! Why is this happening? The setting //longtimenosee/// in Site Administration > Server > Cleanup was set to 120 days but for ''students''. Why is this affecting faculty? It affects ''all users'' not just students. See [[this discussion|http://moodle.org/mod/forum/discuss.php?d=104106]]\n# How do I change the spelling of "enrol" to "enroll"?. Simply install the American English language pack (en_us) then choose it as the default language for the site. Or edit your language settings. --''Do this''-- @@Done@@\n[[Problems with Import]]\n!!!Default Blocks Site wide\n;Change from \n: {{{'participants,activity_modules,search_forums,admin,course_list:news_items,calendar_upcoming,recent_activity'}}}\n; to: \n:{{{ $CFG->defaultblocks_override = 'yui_menu,sharing_cart,quickmail,admin,myCourses';}}}\n!!!Theme list\n{{{anomaly,serenity,Facebooky,custom_corners,chameleon_ecs,formal_ecs}}}\n!!!Problems with themes:\n<<tiddler [[Fixing theme icons]]>>\n!! Backup for Aaron\n{{{\n~/moo-archives/migrate]$ mysqldump -u moodlebackup -p -C -Q -e mooclampprod >moo195_testdb.sql\n}}}\n\n
Which is the latest version? Downloaded from Moodle plugins or CVS?\n{{{markp/moo-plugins/attendance]$ diff -iwBu blocks/attendance/block_attendance.php ../contrib/plugins/blocks/attendance/block_attendance.php}}} This returns no diffs, so this has not changed\nNow let's look at the //mod/attforblock/RELEASES.txt//:\n{{{\n/moo-plugins/attendance]$ diff -iwBu mod/attforblock/RELEASES.txt ../contrib/plugins/mod/attforblock/RELEASES.txt\n--- mod/attforblock/RELEASES.txt 2009-02-28 23:11:13.000000000 +0000\n+++ ../contrib/plugins/mod/attforblock/RELEASES.txt 2009-02-23 20:16:23.000000000 +0000\n@@ -42,8 +42,3 @@\n * permissions improved\n * backup/restore improved\n * export improved\n-\n-2.1.0 - 28 feb 2009 - Dmitry Pupinin [moodle.org member]\n-+ hidden sessions displayed\n-* format of backup changed\n-* bug fixes\n\s No newline at end of file\n}}}\nFrom this it can be seen that the downloaded version is the latest!\n''but'' here's the +++[results]\n{{{\n/contrib/plugins/mod/attforblock]$ cvs update -dP\ncvs update: Updating .\ncvs update: Updating db\ncvs update: Updating lang\ncvs update: Updating lang/cs_utf8\ncvs update: Updating lang/de\ncvs update: Updating lang/en\ncvs update: Updating lang/en/help\ncvs update: Updating lang/en/help/attforblock\ncvs update: Updating lang/en_us_utf8\ncvs update: Updating lang/en_utf8\ncvs update: Updating lang/en_utf8/help\ncvs update: Updating lang/en_utf8/help/attforblock\ncvs update: Updating lang/es\ncvs update: Updating lang/es/help\ncvs update: Updating lang/es/help/attforblock\ncvs update: Updating lang/es_utf8\ncvs update: Updating lang/es_utf8/help\ncvs update: Updating lang/es_utf8/help/attforblock\ncvs update: Updating lang/eu_utf8\ncvs update: Updating lang/eu_utf8/help\ncvs update: Updating lang/eu_utf8/help/attforblock\ncvs update: Updating lang/fr_utf8\ncvs update: Updating lang/it\ncvs update: Updating lang/it/help\ncvs update: Updating lang/it/help/attforblock\ncvs update: Updating lang/ja_utf8\ncvs update: Updating lang/ja_utf8/help\ncvs update: Updating lang/ja_utf8/help/attforblock\ncvs update: Updating lang/ru\ncvs update: Updating lang/ru/help\ncvs update: Updating lang/ru/help/attforblock\ncvs update: Updating lang/ru_utf8\ncvs update: Updating lang/ru_utf8/help\ncvs update: Updating lang/ru_utf8/help/attforblock\ncvs update: Updating lang/sk\ncvs update: Updating lang/sk_utf8\ncvs update: Updating lang/sv\n}}}\n=== of the CVS update.\n\nPosted [[Latest up to date version of Attendance|http://moodle.org /mod/forum/discuss.php?d=127795]] to moodle discussions.
# find all backup zip files in moodle data {{{locate *.zip | grep moodledata192+ | grep backupdata >~/moo-archives/backupdata_zip.txt\n}}}\n# size of moodledata {{{du -h : 35G}}}\n# delete them \n{{{\nsed -e 's;/usr/;rm /usr/;g' backupdata_zip.txt >backupdata_zip.sh\nchmod 750 backupdata_zip.sh\n./backupdata_zip.sh\n du -h moodledata192+/\n 27G\n}}}\ndelete all other zips\n{{{\n$ locate *.zip | grep -v backupdata | grep moodledata >moodledata_zip.txt\n$ sed -e 's;/usr/;rm /usr/;g' moodledata_zip.txt >moodledata_zip.sh\n$ chmod 770 moodledata_zip.sh\n$ ./moodledata_zip.sh\n}}}\nA few errors where files did not exist.\nNow:\n{{{\n/usr/home/moodle/data]$ du -h moodledata192+/\n 24G moodledata192+/\n}}}\nNow Back ''this'' one up! With:\n{{{\n/usr/home/moodle/data]$ tar --exclude-from=moodledata192+/moodledata_exclude -cvf ~/moo-archives/migrate/moo-195.tgz moodledata192+/\n}}}\n\n\n
/***\n| Name:|CloseOnCancelPlugin|\n| Description:|Closes the tiddler if you click new tiddler then cancel. Default behaviour is to leave it open|\n| Version:|6.9.3|\n| Date:|30-Sep-2006|\n| Source:|http://mptw.tiddlyspot.com/#CloseOnCancelPlugin|\n| Author:|Simon Baird <simon.baird@gmail.com>|\n| CoreVersion:|2.1.x|\n***/\n//{{{\nmerge(config.commands.cancelTiddler,{\n\n handler_orig_closeUnsaved: config.commands.cancelTiddler.handler,\n\n handler: function(event,src,title) {\n this.handler_orig_closeUnsaved(event,src,title);\n if (!store.tiddlerExists(title) && !store.isShadowTiddler(title))\n story.closeTiddler(title,true);\n return false;\n }\n\n});\n\n//}}}\n\n
!!Code starters for Self Service Course Create\nWhat we have :\n* perl [[course creation script|modules/csv_course_creation_script.pl]] by Kevin Hunter which pulls data from Webdb and writes into a file [[course create data format]]. +++[Notes]>\nThis makes sql queries directly to the Webdb Oracle database. There would probably be permissions issues with allowing this to occur from a regular user account on the Moodle server.===\n\n* [[perl script|modules/professorExtract.pl]] to [[generate teacher accounts|Course Upload : teacher accounts]]. Same caveat as noted above.\n* Dusko Koncaliev wrote a [[Webdb API]] which could be used to extract data from webdb using a Moodle block.\n----\n\n\n
!!Ideas for Moodle projects for NITLE collaboration\n\n* [[Structured Outline / Template]]\n* [[Blogging Activity in Moodle]]\n* [[Enhancements to Assignment]]\n* [[PRS, SMS & Moodle]]\n* [[Music notation Interpreter]]\n
!!Course Request Form\n* Clarity about cross listed courses. Put an item in about profs making decision.\n* comment field\n* table output\n* send to RT (ask ~RandyK how to do this)\nFaculty asked for @@exporting grades from Moodle into Banner@@\nTalked about issues of cross listed courses. Basically self service asks for grades from each cross-listed course //separately// so there are two lists of students. Denise said that there will not be more than 2 cross listings.\n!!Course Backups\n* Automated -- yes\n* Kick all users off, disable logins (go into management mode) and save user information\n* once per week and overwrite single file.\n!!Unenrolment\n* Message to faculty / students. Faculty to decide on unenrolment policy for course. Otherwise students can unenrol themselves.\n* Display on main Moodle page\n!!Upload issues\nAaron has addressed file size upload problem.. Duplicate code base that points to the same Moodledata dir. Moodle-admin has php setting for 512K upload size.\n!!Moving to production server\n* This will happen ''Jan 5^^th^^'' and Moodle will be down all day.\n* Announce on Moodle front page.\n* Apply patches to Test server\n* Update production after testing.\n
!!Default blocks on creation of new courses\nThe default blocks are not set up correctly when new courses are created either manually, or by batch upload [[screenshot|graphics/moodle19_default_blocks_wrong.png]]<<imagebox>>. This is strange. What we're getting is :\n;left column:\n: People, Activities, Search Forums, Administration, Course Categories\n; middle\n: Weekly Outline\n;Right column:\n:Latest News, Upcoming events, Recent Activity\n----\nWe should be seeing:\n;left column:\n:Course Menu, Latest News, Upcoming Events, Administration, Course Categories\n; middle:\n: Weekly outline\n; Right column:\n: blank\nWhich looks like [[this|graphics/moodle19_default_blocks_correct.png]]<<imagebox>>\n!!!! Fix?\nThe config.php should have this statement in it:\n{{{\n// If this one is set it overrides all others and is the only one used.\n $CFG->defaultblocks_override = 'yui_menu,news_items,calendar_upcoming,admin,course_list';\n}}}\nMaybe we should add one of these lines:\n{{{\n// These variables define the specific settings for defined course formats.\n// They override any settings defined in the formats own config file.\n// $CFG->defaultblocks_site = 'site_main_menu,admin,course_list:course_summary,calendar_month';\n// $CFG->defaultblocks_social = 'participants,search_forums,calendar_month,calendar_upcoming, social_activities,recent_activity,admin,course_list';\n// $CFG->defaultblocks_topics = 'participants,activity_modules,search_forums, admin,course_list:news_items,calendar_upcoming,recent_activity';\n// $CFG->defaultblocks_weeks = 'participants,activity_modules,search_forums, admin,course_list:news_items,calendar_upcoming,recent_activity';\n}}}\nlike this:\n{{{$CFG->defaultblocks_site = 'yui_menu,news_items,admin,course_list';}}}\n\n\n
!!Blocks not operating under AJAX\nIn all courses on the new Moodle the AJAX drag'n'drop for blocks is not operational. Instead, you see the old style arrows for moving one screen refresh at a time. \n\n[img[graphics/non-AJAX_moodle19.png]]\n\nWhat we should be seeing is:\n\n[img[graphics/moodle19_AJAX.png]]\n\n!!!What I have checked:\n# the course teacher has "Yes:use advanced web features" in the AJAX & Javascript setting of the User's Profile\n# In Site Administration : Appearance : AJAX and Javascript, Enable AJAX is checked Yes, and Disable AJAX course editing is off.\nCould this be a side effect of ''https://'' ?
/***\nJust some bits and pieces\n***/\n//{{{\nconfig.messages.messageClose.text = "X"; // default is "close"\nconfig.views.wikified.defaultText = ""; // default is "The tiddler '%0' doesn't yet exist. Double-click to create it"\nconfig.options.chkHttpReadOnly = false; // Enable editing so that visitors can experiment with it\n//}}}
!!Front Page : settings \n;Front Page\n: List of categories, News items.\nsame when logged in. 20 courses per page\n
!!Moodle Course Backup organizer (MCBO)\n!!!Background\nWe have been running Moodle for several years at Earlham. We decided on a policy of renewing the database each time we moved to a new Moodle version. This prevented a lot of problems and issues with migrating old data and cruft and also issues with incompatible modules. Previous year's implementations have hitherto been kept online but the time has come to retire some of these. However, it's important to have the Moodle course backups available so that faculty can reuse old material when they need to. But how does one manage the potentially vast number of courses involved and track course names to files which may be very anonymous. The "Moodle Course Backup organizer (MCBO)" is a first attempt at addressing this issue.\nMy thought is that this would be a script that ran inside a Moodle installation. Thus one would have to provide a system for persistence of data so that one could transition from one Moodle install to another. The obvious way to do this is to dump the data into an XML format file.\n!!!Objective\n* Track and catalog course backups\n* Provide a mechanism for accessing archived course backups for restore.\n!!!Database tables(s)\nInformation extracted from moodle.xml encapsulated in every course backup .zip file.\n# filename, course logname, course shortname, course startdate\n# location/path to group of archives (ie current directory where they can be located)\n!!!Functions : [[CRUD|http://en.wikipedia.org/wiki/Create,_read,_update_and_delete]]\n* delete Course Backup (CB) entry / archive file from the system ()\n* Change location (ie path) for group of CBs\n* Add group of Course Backups\n* Watch directory for changes\n* display list CBs / short name, long name, etc\n* copy CB / group CBs to new location\n* dump database to xml file for transitional storage (when upgrading Moodle version)\n* import above xml file to fresh database.\nWith course backups being tracked in this way it makes managing course restore and backup a lot easier. The Moodle system course backup could deposit it's zip files into a 'watched' location so that they are automatically tracked. \n
In accordance with the new [[Moodle policy 09]] we'll need to make sure that all the courses from 0506 and before are backed up. Aaron will have to configure the backup options to store the files in a location that Kerri can get to in order to archive. It would be good to have some sort of [[Course backup archive system|Course backup tracker]].\n|!Year|!Moodle version|!database|!Actions|\n|@@white-space: nowrap;04 - 05@@|1.5|Postgres|data is in the 05-06 Moodle install.|\n|@@white-space: nowrap;05 - 06@@|1.5|Postgres|This one should go offline. Make sure there's a backup of all courses. Could we make this into a virtual machine to archive? Test the restore of some of these into 1.9 test system|\n|@@white-space: nowrap;06 - 07@@|1.6|~MySQL|Keep online. Currently backups have all been copied onto DVD.|\n|@@white-space: nowrap;07 - 08@@|1.8|~MySQL|Keep online. System course backup process currently fails. Kerri may have to back these courses up individually|\n* Aaron C-R will need to ensure that the backup directory has sufficient space to accommodate the backup files. Kerri can take them offline if the backup directory is publically accessible.\n* Restoring backup files bigger than 128Mb requires write access directly to the //moodledata// directory which contains the course files. This is because there is a maximum upload limit of 128Mb within Moodle (actually it's a php limit). We will have to sort out a procedure with Aaron so that files can be placed in an accessible location by Kerri / Mark and then moved from there to //moodledata//.\n
++++!![Why bother with automated course creation?]> \nCurrently, all courses on Moodle have been manually created (by MHP). This has the advantage that I can keep an eye on new users but is very tedious. In addition, there is often an email tag where faculty don't provide the full amount of information (course name, short name) and I have to email back and forth to obtain it. Faculty like to feel in control and so they prefer to create their own courses when it suits them and not have to wait for one to be created. Why not just allow faculty to use the Moodle course creation procedure? The problem here is that there are numerous opportunities for messing up. Faculty have been known to create courses in the wrong category (department) and then create a duplicate in the correct department. Following a standard form for [[short names|generate unique short name]] also proves problematic. \nThus it seems that a course creation system which pulls data from the Banner database would be ideal. But we need to make sure that there's a positive benefit for faculty so that the new system is easier and better to use than emailing the Moodle admin. Two major selling points:\n# Control over course creation\n# Ability to import material from a previous year's course\n===\nTwo approaches:\n!!Create all courses present in the Banner database\nUse [[Course Upload into Moodle]] to generate all courses offered by the college. Could also add preregistered students to the course.\nWhile superficially attractive, this approach has a number of drawbacks:\n# All courses with a teacher appear in the teacher's 'Overview of my courses' list (ie moodle.earlham.edu/my ) but most teachers do not use Moodle for every course they teach. I will get inundated with requests to remove courses that are not wanted in Moodle. Both faculty (and students) dislike having courses visible that they are not using (clutter).\n# Faculty //could// leave courses in their list but just not use them. However, it's highly likely that students will enroll themselves into courses that faculty are not wanting to use. We could create all courses not accessible to students, but then it would require faculty to manually reset this switch to 'accessible' on courses they want to use. No surprises as to what will happen at this point; faculty will not realize that their course is hidden and I will get inundated with emails/calls about inaccessible courses (extra overhead for faculty to cope with).\n# While it is the case that students have already been pressing recalcitrant faculty to adopt Moodle I think that it would stir up resentment among the neo-luddites if we were to arbitrarily create courses on Moodle that they had no intention of using. I see the possibility of a backlash.\n# Prepopulating a course with student names has no advantages for the teacher; on the contrary, most teachers want the liberty to experiment with their courses without the possibility of student access. Student access could be switched off by default but then there's still the issue of having to switch it back on (and faculty forgetting that the course is hidden)\n!!Self service course creation\nThis could use the same architecture as the [[Course Upload into Moodle]] but handled differently. Thus a script would be run to extract data from Banner and written into a file with [[course create data format]]. Then, rather than create every course, this file could be used as the data source for a self service routine which could run as follows:\n# User logs in and runs the self service course creation applet.\n# The user is identified as a teacher from the [[course create data file|course create data format]]. +++[TBA courses|teacher of TBA course]>\nSome courses do not have a teacher assigned until the new semester. These are indicated with 'TBA'. Some means will need to be found for faculty to 'claim' a TBA course. Since it takes an eternity for this kind of information to be updated in Banner we cannot rely on Banner data to provide timely allocation of teacher names to courses labelled TBA.=== \n# A list of all the courses that the faculty is about to teach appears and she can choose which course she wants to create. +++[Departmental course list|choose TBA course from departmental list]>\nIn addition, a list of courses with teacher = 'TBA' in the faculty's department could be provided. Then the faculty could choose to assign himself to teach one of these courses. However, this would be predicated upon knowledge of faculty membership of departments. For existing faculty, this would not be a problem since the department name is the Category field in the [[course create data file|course create data format]].=== \n# Having chosen a course, the faculty can then choose the desired outline format -- Weekly or Topics. This neatly sidesteps the problem of [[setting default course outline|choice default course outline]] in the [[Banner source data file|course create data format]]\n# At this point, the teacher could //choose// to populate the course with pre-registered students, and could also choose to make it not accessible to students. +++[System reminders]>\nIt would be handy for the system to "remember" that faculty have chosen to make the course inaccessible and then send a reminder (perhaps via the Moodle messaging system) to reset student access at any appropriate time.=== \n# [[Import old courses|Import courses]]. A key feature of this new system, and one which would, I think, be compelling to faculty, would be the ability to import a selected course from last year (or many years ago) as the course 'backbone'. \n
In response to ken Newquist's post in NME [[Course Creation Practices within Moodle|http://moodle.nitle.org/mod/forum/discuss.php?d=1369&mode=3]]:\n<<<\nI'm not sure what is meant by "Unique id" in the Moodle context. If you look at the Course settings for a course in Moodle you have:\n* Full name\n* Short name\n* Course id number\nThe confusing and unituitive thing is that the "short name" has to be unique (and less than or equal to 15 characters) and the course id number is\n>"The ID number of a course is only used when matching this course against external systems - it is never displayed within Moodle. If you have an official code name for this course then use it here ... otherwise you can leave it blank."\nIt seems to me that the Banner CRN is of little use for the Short Name since it's only guaranteed to be unique within an academic year, on the other hand, the term code and course number or id can be used.\nHere's what I'm proposing for Earlham:\n* Short name (desireable to be unique across years) -- Banner course number : Termcode. So ~BIOL110-1:0810 (note that the '20' is truncated so that the complete string remains under 15 chars.\n* Full name -- short name + name of course (as you have it). Thus, ~BIOL110-1:0810 Introduction to Biological processes\n* Course id number -- here's where we could use the Term code.CRN as you suggest, so 200810.10032\nI do think that it's important to have a unique Short Name across years so that you can unmistakeably identify a previous year's course to import (which faculty will want to do).\n<<<
!!Resources only\nRestoring these worked fine with no problems. \n!!Assignments\nI wanted to make sure that course assignments would be restored properly. Here's what I found:\n<<faqlist byTag "testing_crestore" title hr>>\n!!Overall\n* Avoid restoring from backup with user data. No titles appear to any of the activities or resources.\n* Can restore course with teacher (& student) participants and accounts automatically created (Users -> Course)\n* Category must be present in order to take the course. Attempting to restore a course into a non existant category will place it into Miscellaneous.\n!!!Remaining Issues\n* deleting courses. Most of the courses that have been added sucessfully don't delete. The process starts but no list of items deleted appears and a 'Done' just appears on the browser status bar.
!!!Philosophy of Law : the grind of grounding law\nThis course was restored from a backup made by the automated backup system. This was set to include user data and also included unused modules (such as SCORM, wiki, workshop and ~ULPGCassignment) by default. <html><div id="unused" style="display:none;">\n<pre>-<MOD>\n <NAME>scorm</NAME>\n <INCLUDED>true</INCLUDED>\n <USERINFO>true</USERINFO>\n</MOD>\n%u2212<MOD>\n <NAME>survey</NAME>\n <INCLUDED>true</INCLUDED>\n <USERINFO>true</USERINFO>\n</MOD>\n%u2212<MOD>\n <NAME>wiki</NAME>\n <INCLUDED>true</INCLUDED>\n <USERINFO>true</USERINFO>\n</MOD>\n%u2212<MOD>\n <NAME>workshop</NAME>\n <INCLUDED>true</INCLUDED>\n <USERINFO>true</USERINFO>\n</MOD>\n%u2212<MOD>\n <NAME>book</NAME>\n <INCLUDED>true</INCLUDED>\n <USERINFO>true</USERINFO>\n</MOD>\n%u2212<MOD>\n <NAME>ULPGCassignment</NAME>\n <INCLUDED>true</INCLUDED>\n <USERINFO>true</USERINFO>\n</MOD></pre>\n</html><<divbox "Unused modules" "unused" "Unused modules listed in xml contents">>\n* Restored with no users and no user data and unchecked acivities not used.\n* ''Aberrant behaviour on restore''. Course modules are created and then the process stops. No [Continue] button to add teachers.\n* The PHIL category was not created on the fly -- the course was dumped into Miscellaneous\n!!failures in Course Outline\nThe course format (weekly outline with blocks) should have been duplicated exactly. Following failures found:\n* No blocks present (but they could be added when editing switched on and Add blocks)\n* no assignments present.\n* All titles for resources were lost -- [[screenshot|graphics/course_restore1.8_probs.png]]<<imagebox>>\n** Update anonymous resource with no title gives error message: \n>{{{"The required instance of this module doesn't exist. Continue"}}} \n>And then dumped out of the course.\n
!!!~POLS107: Introduction to IR\nRepeated the test of restoring course with user data included with backup.\n* User data ''not'' restored\n* Uncheck activities not used: SCORM, survey,wiki,workshop.\n* No users, no user files <<tiddlerbox "restore results" "Course creation : POLS107 (+user data)" "interim results of POLS107 with user data restore">>\n* no [Continue] button.\n!!!Course Outline\nRestore was not completed\n* no blocks or titles for forums, quizzes, assignments, resources, etc\n* the only text present was in the summary area.\n* theme was correct\n* error on attempted edit the same as before, namely : {{{"The required instance of this module doesn't exist. Continue"}}}\n\nProblems deleting this course. It won't go through the whole deletion process.
!!!~POLS107: Introduction to IR\nThis time the course backup contained no user data (this can be accomplished by the default backup process). \n* The restore process proceeded to completion <<tiddlerbox "restore results" "Course creation : POLS107 (no user data)" "results of POLS107 no user data restore">>.\n* everything restored as it should. All text present.\n!!!Conclusion\n* Avoid restoring from backup with user data ("Users" are OK, as we will see in [[the next test|Course Restore tests : assignment 4]])\n* poses question -- how does one determine whether a course backup has user data present?\n
!!Web Design Workshop\n* ''before'' doing the backup unenroll all students. Just Teachers as participants.\n* Backup with no user data. Users -- Course (teachers only)\nCourse restore works properly -- user accounts added as teachers\n!!Conclusion\n* can restore course with teacher (& student) participants and accounts automatically created\n* same deal with user data -- don't use a backup with user data to restore from.\n
Asian American Perspectives\n* Restore with no user data. Fine. No user data. No participants, no teachers assigned.\n* Course restored into MISC with original blocks retained.\n
We now have a more orthogonal way of naming courses so that they will be easily identifiable.\n> {{{Short name = [dept][course #]:[graduation year][semester code]}}}\nwhere [semester code] = 10 for ''Fall semester'' and = 20 for ''Spring semester''\nexamples:\n> ~MATH120:200810 is the ~MATH120 course held in Fall 2007\n> ~BIOL111-3:200810 is section 3 of ~BIOL111 (Eco Bio) from Fall 2007\nNote that where there iis only a single section, the number '-1' is omitted, otherwise the section number is appended as shown.\n[From [[EC Moodlings|http://www.earlham./edu/~markp/moodle_dox]] ]\n----\n\n
<<siteMap [[CourseUpload]]>>\n<<siteMap [[cupload]]>>\n<<siteMap [[cuploadF]]>>
These are produced by a modified script ([[sql script|modules/cross_listed_courses.sql]]) which produces a comma delimited file in the same format as above -- [[example|modules/crosslistedcourses.csv]] . This file needs to be edited in Excel to remove cross listings and retain the course listing corresponding to the profs native department.[[Here's the edited list|modules/crosslistedcourses_edited.csv]] produced on 20^^th^^June.
Ken Newquist posted [[Moodle Flat File Data Import Procedures|http://moodle.nitle.org/mod/wiki/view.php?id=1518&page=Moodle+Flat+File+Data+Import+Procedures]] on the [[NITLE Moodle Exchange|http://moodle.nitle.org]]. He's using the uploader scripts from Smith, but I'm using the new, improved version from Appalachian State University -- see [[Course Upload into Moodle]].\nKen reported that the Smith upload.php chokes on more than 140 courses so I ran the Appalachian uploader on the [[latest course list|modules/fulltestupload_340.csv]] with 340 courses. \nI had to perform a couple of hacks in order to fix things:\n# increase length of shortname from 15 -> 20 chars (the database can handle 256 char length) on line 627. I figured that since we shouldn't be renaming any of these courses it wouldn't matter. And anyway [[AWyatt's hacks|http://eduspaces.net/mod/forum/forum_view_thread.php?post=178921]] (login needed) posted on [[Eduspaces Moodle experiences 1.8 community|http://eduspaces.net/moodle18/weblog/]] can be used to increase the offending form size.\n# similarly, increase the default category length from 30 to 50 chars (line 208).\nThe fixed uploadcourse.php is [[here|modules/uploadcourse.phps]] and the zip archive with real example courses what work is [[Appalachian_uploadcourse.zip|modules/Appalachian_uploadcourse.zip]]\n!!Results\nBloody brilliant! Here's the screen output:\n<<<\n{{{Parsed 340 course(s) from CSV}}}\n{{{Created 322 course(s) out of 340}}}\n{{{18 course(s) were skipped (duplicate ShortName)}}}\n{{{33 new category(ies) were created}}}\n{{{You may wish to manually Re-Sort the categories}}}\n{{{Re-Sorted courses}}}\n{{{ANALYZE Database Tables OK}}}\n{{{OPTIMIZE Database Tables OK}}}\n{{{Total Execution Time: 25.16 s}}}\n<<<\n18 courses were already present. The [[results look great|graphics/upload_course_works.png]]<<imagebox>> -- note that the first 5 categories were already present and all the others were created in alphabetical order.\n!!Latest (June 22 07)\n[[Shortname field]] length has also been fixed.\n\n----\n
In [[Course Upload working]] I tested uploadcourse.php with a file of test data and dummy users. This week I finally hassled Kevin Hunter into writing a script (which runs against ~WebDb not Banner) to produce a comma delimited output file of all the courses for the Fall 07 semester ([[course creation script|modules/csv_course_creation_script.pl]] , [[comma separated course listing|modules/ComprehensiveCourseList_June20.csv]]). \nA number of issues emerged (see [[here|Course Upload working]] also for special cases -- now outdated compared to the list below); here's what we did :\n* drop all AWPE courses -- these are all practical and are not likely to require an online presence.\n* discard CS courses as well since we know they're not wanted.\n* if multiple teachers are listed for the course only the first teacher is selected.\n* courses that are cross listed have more than one course entry for the same course. It's impossible to determine which course is the canonical one (basically it would be the course corresponding to the teacher's department), so we leave these out too.\n* Apart from BIOL courses (ie Eco Bio) crosslisted which stay in this main listing as a special case.\n* discard any courses with '340' as being ephemeral.\n* handling multiple sections of the same course. Rather than label every course with "-1" the default section is left blank and subsequent sections have the section number attached. Thus ~BIOL111 , ~BIOL111-2, ~BIOL111-3. These are sufficiently rare so that the "-1" can be added by hand in Excel if need be. \n* use full email addresses as teacher names to avoid problems with multiple last names (eg Van Buskirk) and middle names (eg Scott D. Hess)\n* change role from "Teacher" to "editingteacher" (this is a logical bug)\n* placing "/" around category names (eg /Art (ART)/ ) will automatically create the category (and as an added bonus they'll be in alphabetical order too! ''Note:'' Add a dummy course for the Miscellaneous category so that this gets created too.\n* Note that the default outline format used is 'weeks' (course start date 19th Aug, # weeks 16) - we could change known courses to topics using Excel, but restoring courses would make this superfluous on the whole.\nI recommend that ''before'' running the courseupload script the file be loaded into Excel and checked thoroughly for errors.\n!!!Note:\nAccounts for teachers must be present ''before'' the upload is performed otherwise it will stall on the record containing the unknown teacher. A special username called 'TBA' should be created to handle unassigned courses.\n<<faqlist byTag cuploadF title hr>>\n\nStill to suss out :\n* It would be nice to be able to have profs restore their own courses. I need to suss out how to make them available for access.\n
As noted before all the moodle accounts for teachers need to be created before the course upload is run. [[This perl script|modules/professorExtract.pl]] extracts names from the ~WebDb database and outputs to a web page -- the [[csv output file|modules/professorExtract.csv]]. \nRun with: {{{./professorExtract.pl > ~/www/professorExtract.csv}}}. \n[[This file|modules/faculty_accounts.csv]] has all the profs registered with Banner as of 20^^th^^ June.
Ben Johnson helped with this one. Produced a list of courses ''with no TBA teachers'' -- in courseDeptExtract_nonTBA.csv\nNeed to add extra categories to this : [[New Categories to create]]\n!!To Do\n* update courseDeptExtract_nonTBA.csv with new categories from course_dept_list_july07.cvs and rename ''courses08-noTBA.csv''\n''done''\n* Trimmed out all the 'applied' theatre, art & music courses -- 56 in all -- into applied_courses_08.csv\nHad to add Wes Miller and Alice Shrock to professorextract08.csv & to Moodle test.\n!!Update data file\n''courses08-noTBA-1.csv'' uploaded:\n<<<\n{{{\nParsed 179 course(s) from CSV\nCreated 179 course(s) out of 179\n46 new category(ies) were created\nYou may wish to manually Re-Sort the categories\nRe-Sorted courses\nANALYZE Database Tables OK\nOPTIMIZE Database Tables OK\nTotal Execution Time: 8.51 s\n}}}\n<<<\n!!Upload courses mtest19\n<<<\n{{{\nParsed 182 course(s) from CSV\nCreated 182 course(s) out of 182\n47 new category(ies) were created\nYou may wish to manually Re-Sort the categories\nRe-Sorted courses\nANALYZE Database Tables OK\nOPTIMIZE Database Tables OK\nTotal Execution Time: 7.4 s\n}}}\n<<<\n''Success'' . Just the "Miscellaneous" category is at the head of the list, but I can delete that one.
!!Batch Course Upload\n[[This conversation on moodle.org|http://moodle.org/mod/forum/discuss.php?d=30126&mode=3]] details the development of a simple plugin to create a bunch of courses from a simple text file. A version which is compatible with Moodle 1.7 has been created by students at Appalachian State University ([[details|http://moodle.org/mod/forum/discuss.php?d=30126&parent=305290]]) -- [[uploadcourse.zip|http://www.earlham.edu/~markp/miss/modules/Appalachian_uploadcourse.zip]]. \n<<<\nTwo of our student programmers modified the course upload file to work in 1.7.1. It does not have a hook into the gui interface so you run it just like you did for the original quick method. Login as the admin and enter {{{http://moodleaddress/admin/uploadcourse.php}}}. Most of it works the same as before but in this version the add teacher works and the fields needed for 1.7 have been added. For the teacher role use the role short name, found under define roles.\n<<<\n* [[Instructions for uploadcourse]]\n* [[course create data format]]\n* [[Course Upload : finalized]]\n* [[Course Upload : big test]]\n----\n!!!Note :\nCheck out [[Upload courses test 08]] for new simplified data format\n\n\n
I tested out the [[Course Upload into Moodle]] in my version 1.8 test install of Moodle at [[http://moodle.macarius.earlham.edu/]]. The nice things was that there was only a single php file involved which has a unique name and so doesn't affect the standard installation.\nI used [[this test file|modules/test2_import.csv]] to create some test courses. Here's what I found:\n# This will create new categories to accomodate courses. Categories are created in the order listed in the input file.\n# Courses that are already present are not re-created (check)\n# User accounts for teachers //have// to be present before the script is run. The script will fail if it encounters a user that it cannot find. \n# All the fields that have entries in the [[test file|modules/test2_import.csv]] are required. If any required field is omitted the data import for that record fails and file processing halts.\n# "sortorder" refers to the order of courses //within// a category rather than the order of categories.\n# The labels to use for roles are not intuitive and were not given in the field value information. I found the role mappings in Administration : Courses : Enrolments -> flat file:\n|Course creator|coursecreator|\n|Teacher|editingteacher|\n|Non-editing teacher|teacher|\n|Student|student|\n|Guest|guest|\n|Authenticated user|user|\n* I tried changing the mappings to make them more logical (eg Teacher -> teacher, Non-editing teacher -> non-editingteacher) but this did not work and the import threw errors with roles not being created properly.\n* Even though it's implied that you can have "teacher2_account" and "teacher2_role", here again, the script complains and does not place anyone in a role when a second name & role is presenet in the record.\n* unfortunately, the Default blocks part of the [[Course profile plugin|MINTED Plugins]] does not exert it's settings on courses imported in this flate file way. Pity!\n
!!System for transferring courses to new Moodle\nSince we're planning a fresh Moodle install each year we need a system for getting courses from last year's system into the new one. This should be operable by faculty themselves.\n* Perform a system backup which places course backups in accessible folder (/home/fc-raid-00-2/classes/moodlebackup). Problem : [[backup non-standard components]]\n* The ''moodle_data/1'' folder corresponds to Site files ; create folders for each department corresponding to category: \n<html><blockquote><pre>\n0FFC DIV HIST LTST PHIL THEA\nAAAS ECON INST MAT PHYS UNKNOWN\nART ENG INTD MATH POLS WMNS\nBIOL ENPR INTP MED PROG backupdata\nCHEM FILM JAPN MGMT PSYC\nCLAS FREN JNLM MISC REL\nCLL GEOS JPNS MUS SOAN\nCLUB GER JWST MUSE SPAN\nCOMM HDSR LANG PAGS TESO</pre></blockquote></html>\n* Move the course backups into individual folders. Tar-gzip the whole moodle_data directory and transfer to the moodle server and unpack.\n* In Moodle, create a //Directory// resource that shows the Site Files containing all the departments. \n* Hide this from the main page (prior to login) but add to an HTML block in My Moodle\n* [[Procedure for restoring courses|http://www.earlham.edu/~markp/moodle_dox/index.html#[[Course Restore Procedure]]]]\n!!!Problims\nThe course naming system I used last year (ie banner name + grad year) can identify individual courses ''but'' since only the shortname is used for the backup filename the faculty has to know the connection between the short name and the long name, for example, 'Intro to statistics' corresponds to ~MATH120.\n
Email sent to Neal / Amy today:\n\nHere are some of the issues are course restoring:\n\n* The course backup filenames have the SHORTNAME only in their filename. Thus JAPN201 etc. In theory this should be fine, but in practice :\n** faculty don't remember the course shortname so you're out of the water unless you can access the old moodle course\n** the course number will often change between years. So AAAS355 was AAAS347 last year for example.\n* Faculty are not specific or not sure what year they need the course from. I often have to look at multiple years to find the right course.\n* Faculty sometimes think that they had a course on Moodle when it's not there, or they didn't ever place any content into it.\n* ECS have not been able to provide a single location where I can aggregate all the course backups for all years because of space constraints.\n* The system wide course backup process for Moodle0708 (last year's moodle) was non functional. I had to have a student worker manually perform course backups for all the courses with content. Then manually copy these to G:\sold_moodle_courses\n* How to get course backups from individual courses to a central location -- downloading each individual course is incredibly time consuming. Much easier to do this at the system command line level with something like "cp backup*.zip /home/groups/old_moodle_courses". But you have to ascertain the system id of the course which gives it's directory name in the moodledata folder.\n* Courses larger than 128Mb cannot be uploaded from the web interface. They need to be placed by the ECS system manager (Aaron) into the correct course using the Unix command line since only he has write permission to do this.\n\nAnd there 's probably a lot more.
!!Latest on Moodle Course Backups\nCurrently there seem to be two issues with running course backups from Moodle:\n# [[system backup|backup issues : system backup]]. Backup does not even start. Aaron considers that basically the Moodle backup process is running out of system memory. Why might that be? After a conversation a couple of weeks ago, I realised that that course backup process would run in order of course numbers in /moodledata and would therefore start with course #1. But course #1 has all of the zipped course backup files from the previous year and attempting to stuff all of this into a single file is probably what's crushing the system.\n# There's also issues with [[tarring up moodledata|backup issues :tar]] -- is the filesystem actually ~UTF-8 compliant?\n!!Solution : move course backup files\nI told Aaron that we didn't really need to have last years course backups still acessible, so they could be moved outside of the moodledata. But where to? Aaron said that Hedd had 20Gb free space so we decided to move the contents of {{{/home/fc-raid-00-2/moodle_content/moodledata08/1}}} to {{{/data/backups}}} on hedd. \n;''Problem: '' \n:Ran out of space on Hedd before all files moved over. Had 20Gb used on Hedd and 3.2 Gb left to move. So we needed a total of 24Gb.\n;''Workaround:''\n:Move backup files to {{{/home/fc-raid-00-2/moodle_content/coursebackups}}} which is on Rahu. The I'll have Kerri do a {{{scp -r *}}} and copy them all over to Macarius so that they can be burned to 6 DVDs. Then she can do another {{{scp}}} and shift them all to Frumentius which has gobs of free space. \n\n
!!Course backup archive system\nWhere are course backups for a particular year stored? How do I know which backup goes with which course name? How can I address the request from faculty "restore last time's course from two year's ago" especially with [[confusion over course ids|Problems with course id scheme]].\nAnswer: a simple database with a simple front end (? interface with Moodle?)\nTable with following columns:\n|Teacher|Course long name|course short name|course backup filename|semester|year|file location|\nMost of this info could be extracted from the Moodle database, but the table would have to be in a separate database since it needs to be independent.\nOR If we don't use a database, an XML file with this information might do the job.\n
<html>\n<pre> * Creating new course\n o Intro to IR (International Security and Human Rights) (POLS107:0720)\n o Category: Politics (POLS)\n * Creating the Restorelog.html in the course backup folder\n * Creating sections\n * Creating categories and questions\n o Category "Default"\n .\n o Category "Welling\s's Intro IR"\n . . . . . . . . . . . . . . . . . . . .\n . . . . . . . . . . . . . . . . . . . .\n . . . . . . . . . . . \n * Copying course files. . . . . . . . . . . .\n o Files/folders: 24\n * Creating scales\n * Creating groups\n * Creating groupings\n * Creating events\n * Creating course modules\n o Assignment "Bonus Quote"\n o Assignment "Quote 2"\n o Assignment "Quote 1"\n o Assignment "Quote 3"\n o Assignment "Quote 4"\n o Assignment "Quote 5"\n o Assignment "Quote 6"\n o Assignment "Quote 7"\n o Assignment "Quote 8"\n o Assignment "First Test"\n o Assignment "Second Test"\n o Assignment "Third Test"\n o Assignment "ECMUN Help"\n o Assignment "Bonus Quote 2"\n o Assignment "Final Quotebook"\n o Assignment "ECMUN Chair"\n o Assignment "QB 9"\n o Assignment "QB 10"\n o Assignment "Final Exam"\n o Forum "Announcements"\n o Forum "You Can Post Here! --> Discussion and Current Events Forum <--"\n o Label "Resources related to Power, A Problem from Hell"\n o Label "Resources related to Aitmatov"\n o Label "Resources related to Sagan and Waltz"\n o Label "TestsRefer to announcements for instructions on ho..."\n o Label "Global War on Terror9/11 Commission Report: Execut..."\n o Label "Review Handouts for Test 3"\n o Quiz "Quiz January 22, 2007"\n o Quiz "Quiz January 15, 2007"\n o Quiz "Quiz January 29, 2007"\n o Quiz "Quiz February 12, 2007"\n o Quiz "Quiz February 19, 2007"\n o Quiz "Quiz April 11, 2007"\n o . Quiz "Quiz April 18, 2007"\n o Resource "Online Writing Lab at Purdue: General Writing Concerns"\n o Resource "Handout/Discussion Questions Susan Sontag, %u201CRegarding the Torture of Others%u201D"\n o Resource "Discussion Questions for Last Best Chance"\n o Resource "Study Questions for Test 3"\n o Resource "Answer Key to Third Test"\n[+ 40 other resources]\n</pre></html>
First part is the same as in [[Course creation : POLS107 (+user data)]]\n<html><pre>\n o Resource "APSA format for electronic resources"\n * Creating gradebook\n o Preferences\n o . . . . . . . . Letters\n o . . . . . . . . . . . Categories\n . . . . . . . \n * Creating blocks\n * Course format data\n * Checking instances\n * Refreshing events\n * Decoding internal links\n o From Assignments. . . .\n o From Forums\n o From Labels.\n o From Quizzes.\n o From Resources. . . . . . . . .\n o From Questions. . . . . . . . . . . . . . . . . . . .\n . . . . . . . . . . . . . . . . . . . .\n . . . . . . . . . . . . . . . . . . . .\n . . . . . . . . . . . . . . . . . . . .\n . . . . . . . . . . . . . . . \n * Creating roles definitions\n * Creating course level role assignments and overrides\n * Creating module level role assignments and overrides\n * Creating block level role assignments and overrides\n * Creating user level role assignments and overrides\n * Checking course\n * Cleaning temp data\n * Closing the Restorelog.html file.\n\nRestore completed successfully\n</pre></html>
So, Tsilavo needs a duplicate of his Fall ~GEOS111 Environmental Science course for the spring. I create a new course and ''import'' the old one into it. Seemed a sensible thing to do. [[Here's|graphics/import_problems.png]]<<imagebox>> what happened. The first n items have no titles and indeed when clicked on give an error {{{"Course Module ID was incorrect"}}}. \nSo, I did a backup/restore to new course instead. This actually worked properly and leads me to wonder what use is "Import" anyway?
Prepend the [[course shortname|Course Shortname]] to the long name so that it's easy to figure out which semester the course was taught in and also what the Banner id is. Eg ~CHEM111-2:200810 - Principles of Chemistry 11 AM\n
Prepend the [[course shortname|Course Shortname 0708]] to the long name so that it's easy to figure out which semester the course was taught in and also what the Banner id is.\n----\n\n
Installed Yui_menu aka 'Course menu' block\n!!Features\n* each section of the Outline appears as a clickable link making it easier to navigate. \n* The name for each section is taken from the Heading in the section Summary\n* Assignments and other activities are listed in expandable sub-sections\n* The block can be configured to display all the Activity types used (and therefore makes the 'People' and 'Activities' block redundant.\n!!Installation\n# login to CVS {{{cvs -d:pserver:anonymous@us2.cvs.moodle.org:/cvsroot/moodle login}}}\n# Download the code using CVS: {{{cvs -z3 -d:pserver:anonymous@us2.cvs.moodle.org:/cvsroot/moodle co\n contrib/plugins/blocks/yui_menu}}}\n** or get it from https://courses.mytwu.ca/demo/moodle/mod/resource/view.php?id=12\n# copy into moodle19/blocks and adjust ownership +++[code]\n{{{\n$ cd /var/www/moodle19/blocks\n$ sudo cp -R ~/moodle_contrib/contrib/plugins/blocks/yui_menu .\n}}}\n===\n\n# browse to Admin : Notifications to install\n
!!Restore course backup from 1.8 to 1.9\nPOLS107200820 - welling Hall. Quiz, categories\n<<<\nCreating categories and questions\n* Category "Default"\n* Category "Welling\s's Intro IR"\n . . . . . . . . . . . . . . . . . . . .\n . . . . . . . . . . . . . . . . . . . .\n . . . . . Could not recode parent 738 for question 531\n . Could not recode parent 753 for question 532\n Could not recode parent 753 for question 533\n . Could not recode parent 756 for question 534\n Could not recode parent 810 for question 535\n . Could not recode parent 822 for question 536\n Could not recode parent 826 for question 537\n . Could not recode parent 826 for question 538\n Could not recode parent 834 for question 539\n . Could not recode parent 834 for question 540\n Could not recode parent 834 for question 541\n<<<\n!!!To Do\n* Follow this up.\n* test more courses
Uploaded Lyn Miller's REL342 Historical Christianity from 0708 Moodle. Tried to do a Restore into the exisitng course. Old course weekly outline, fresh course topics outline. Result : most of the resources got stuck into Topic 0.\nIt looks like you need to match the Outlines ''exactly'' (# weeks / topics) if you want to restore / import into a current course. Hmmm.\n!!Workaround\nRestore into ''new'' course. But this does not help with user importing.\n!!Update\nI tried restoring a Scott Hess course (American Lit -- weekly 16 weeks) ''adding'' it to the existing course. I changed the current course to match and then the process was successful and no screw ups.\n
I removed these courses so that Amy can have a Margaret Hampton course copied over:\n<<<\nbackup-japn_382_0710-20070220-0326.zip\nbackup-jpns150_200810-20080806-1249.zip\nbackup-eng464_200810-20080730-0936.zip\nbackup-japn101_200810-20080806-0938.zip\nbackup-wmns340_200810-20080808-0946.zip\n<<<\n
!!Create dept list from current database\n* start up phpmyadmin.\n* execute SQL {{{SELECT `name`FROM `mdl_course_categories`}}} on the production database (or copy thereof)\n* Query results operations (at bottom of page) : Export\n** CSV for MS Excel\n** check 'Save as File'\n** add other id string to Filename template\n** Go and open with Excel\n* In Excel will have a list of categories, but need to have slashes on either side, eg {{{/Athletics & Wellness (AWPE)/}}}\n** in adjacent column apply formula {{{=CONCATENATE("/",A2,"/")}}} and duplicate by dragging for the rest of the entries\n** Now highlight this column and copy\n** create a new //worksheet//\n* Edit -> ''Paste special'' : check ''values'' and all the modified entries will be pasted in.\n* File -> Save As. Save the file in CSV format for upload\n* File -> Save. save in XLS format for reference.\n\n
Kerri has some work to do for Dan Graves' Fall music classes, Intro to Western Music (MUS144) and Beethoven (MUS150):\n# Make backups of both of these (MUS144 in Moodle 0708, MUS150 in Moodle 0607) and restore into the 2009 category\n# Apply the list of fixes to both courses\n# Rip two tracks and upload into two separate players -- instructions separate\n# Upload syllabus and check that all the links work\n# Coordinate with Dan to make sure he's happy.
Email from Dylan on 27-Feb:\n<<<\nI just zorched the mdl_course table on the test site by accident. I tested my script to move inactive courses, then went to restore mdl_course from a backup of the table I had created...or so I thought, I had accidentally created a backup of the mdl_user table. Needless to say, I was unable to restore mdl_course from it. I don't know if there's another backup you can restore from, or if perhaps you can simply copy it over from the production site. My apologies at any rate.\n<<<\nMy response:\n<<<\nNo worries mate. That's what the test server is for. Problem is that there was something on there that I did want to keep -- Kerri had set up a Hogwarts course for me with a bunch of new user accounts (Harry, Hermione, Ron, etc) for testing out the new Gradebook. I am sure that I've got a SQL dump somewhere that we can extract said table from.\n<<<\n
Referencing [[Updating Assignment_zip]] we need to make changes to mod/assignment/lib.php and submissions.php:\n!!!lib.php\nDid a {{{diff -iwBu lib.php /var/www/moodle/mod/assignment/lib.php}}} between 1.8.3+ latest stable download (@@lib.php@@) and the Barnabas test 1.8.3 from Oct (@@/var/www/moodle/mod/assignment/lib.php@@). +++[Results:]\n<html><pre>\ndiff -iwBu lib.php /var/www/moodle/mod/assignment/lib.php\n--- lib.php 2007-12-04 21:59:35.000000000 -0500\n+++ /var/www/moodle/mod/assignment/lib.php 2007-10-18 15:14:26.000000000 -0400\n@@ -3,6 +3,7 @@\n * assignment_base is the base class for assignment types\n *\n * This class provides all the functionality for an assignment\n+ * 1191 -- added print button offering zip file function\n */\n\n DEFINE ('ASSIGNMENT_COUNT_WORDS', 1);\n@@ -155,7 +156,7 @@\n navmenu($this->course, $this->cm));\n\n $groupmode = groupmode($this->course, $this->cm);\n- $this->currentgroup = setup_and_print_groups($this->course, $groupmode, 'view.php?id=' . $this->cm->id);\n+ $currentgroup = setup_and_print_groups($this->course, $groupmode, 'view.php?id=' . $this->cm->id);\n\n echo '<div class="reportlink">'.$this->submittedlink().'</div>';\n echo '<div class="clearer"></div>';\n@@ -293,7 +294,7 @@\n if (!has_capability('moodle/course:managegroups', $context) and (groupmode($this->course, $this->cm) == SEPARATEGROUPS)) {\n $count = $this->count_real_submissions($this->currentgroup); // Only their groups\n } else {\n- $count = $this->count_real_submissions($this->currentgroup); // Everyone\n+ $count = $this->count_real_submissions(); // Everyone\n }\n $submitted = '<a href="submissions.php?id='.$this->cm->id.'">'.\n get_string('viewsubmissions', 'assignment', $count).'</a>';\n@@ -1189,6 +1190,13 @@\n }\n /// End of fast grading form\n\n+ // print button offering zip file function to teacher\n+ $options["id"] = "$cm->id";\n+ $options["download"] = "zip";\n+ echo '<div align="center">';\n+ print_single_button("submissions.php",$options, "Zip & Download all submissions");\n+ echo '</div>';\n+\n /// Mini form for setting user preference\n echo '<br />';\n echo '<form id="options" action="submissions.php?id='.$this->cm->id.'" method="post">';\n@@ -2351,13 +2359,9 @@\n\n require_once("$CFG->dirroot/mod/assignment/type/$assignment->assignmenttype/assignment.class.php");\n $assignmentclass = "assignment_$assignment->assignmenttype";\n+ $ass = new $assignmentclass($coursemodule->id, $assignment);\n\n- // MDL-12160, get_coursemodule should not touch context_creation code as the function is called during upgrade\n- // prior to creation of context_rel table\n- return call_user_func(array($assignmentclass, 'get_coursemodule_info'), $coursemodule);\n-\n- //$ass = new $assignmentclass($coursemodule->id, $assignment);\n- //return $ass->get_coursemodule_info($coursemodule);\n+ return $ass->get_coursemodule_info($coursemodule);\n }\n\n\n@@ -2516,7 +2520,7 @@\n $submissions = 0; // init\n if ($students = get_users_by_capability($context, 'mod/assignment:submit', '', '', '', '', 0, '', false)) {\n foreach ($students as $student) {\n- if (record_exists_sql("SELECT id FROM {$CFG->prefix}assignment_submissions\n+ if (get_records_sql("SELECT id,id FROM {$CFG->prefix}assignment_submissions\n WHERE assignment = $assignment->id AND\n userid = $student->id AND\n teacher = 0 AND\n</pre></html>\n===\n\n\nThe important part here is the +++[ZIP code]>\n<html><pre>\n@@ -1189,6 +1190,13 @@\n }\n /// End of fast grading form\n\n+ // print button offering zip file function to teacher\n+ $options["id"] = "$cm->id";\n+ $options["download"] = "zip";\n+ echo '<div align="center">';\n+ print_single_button("submissions.php",$options, "Zip & Download all submissions");\n+ echo '</div>';\n</pre></html>\n===\n\nSo, in latest stable release apply this to the assignment/lib.php.\n!!!submissions.php\nDitto with submissions.php. {{{diff -iwBu submissions.php /var/www/moodle/mod/assignment/submissions.php}}} showed two +++[changes needed:] \n<html><pre>\n--- submissions.php 2006-08-28 22:01:31.000000000 -0400\n+++ /var/www/moodle/mod/assignment/submissions.php 2007-06-08 10:32:34.000000000 -0400\n@@ -6,6 +6,7 @@\n $id = optional_param('id', 0, PARAM_INT); // Course module ID\n $a = optional_param('a', 0, PARAM_INT); // Assignment ID\n $mode = optional_param('mode', 'all', PARAM_ALPHA); // What mode are we in?\n+ $download = optional_param('download' , 'none', PARAM_ALPHA); //ZIP download asked for?\n\n if ($id) {\n if (! $cm = get_coursemodule_from_id('assignment', $id)) {\n@@ -40,6 +41,10 @@\n $assignmentclass = 'assignment_'.$assignment->assignmenttype;\n $assignmentinstance = new $assignmentclass($cm->id, $assignment, $cm, $course);\n\n- $assignmentinstance->submissions($mode); // Display or process the submissions\n+if($download == "zip") {\n+ $assignmentinstance->download_submissions();\n+ } else {\n\n+ $assignmentinstance->submissions($mode); // Display or process the submissions\n+ }</pre></html>\n===\n\n\n\n
[[WhatsNew]]\n
Denise Crum wrote:\n> Mark,\n>\n> I need to get the project schedule updated for the Admin Service Team and the DBI group and was wondering if you could tell me if some of these items have been completed or not. I had Dylan's name next to a few of them and not sure if he finished them or if there is still more work that needs done.\n>\n> Debug and fix zip download of assignments.\n> Enhance the "My Moodle" page so that users can hide courses they have already taken.\n> Statistics. Some of the code can be used but it needs to be polished up.\n>\n> If there are some "new" projects that you have asked Nate to work on could you let me know what those are so I can add them to the list.\n>\n> Thanks,\n> Denise\n>\n!!Project List\n* ZIP download. Dylan and I fixed the problem that occurred but there are still bugs (eg attempting to ZIP after you've already zipped throws a wobbly) which could do with being squashed.\n* Statistics. Dylan did a great job but I really need feedback on what people are wanting Moodle statistics about. Plus, it would be nice if we could run it on previous versions to get comparative data.\n* ~MyMoodle. I talked with Nate and our conversation is at https://els.earlham.edu/mdev/weblog/ -- log in to make a comment!\n* The other thing we talked about was the course backup issue -- he agrees with me that a standalone database of some description is needed. I'd like to work on a more thorough proposal for this.\n
/***\nTo use, add {{{[[HorizontalMainMenuStyles]]}}} to your StyleSheet tiddler, or you can just paste the CSS in directly. See also HorizontalMainMenu and PageTemplate.\n***/\n/*{{{*/\n\n#topMenu br {display:none; }\n#topMenu { background: #870000; }\n#topMenu { padding:2px; }\n#topMenu .button, #topMenu .tiddlyLink {\n margin-left:0.5em; margin-right:0.5em;\n padding-left:3px; padding-right:3px;\n color:#white; font-size:100%;\n}\n#topMenu .button:hover, #topMenu .tiddlyLink:hover { background:#4C4C4C;}\n\n#displayArea { margin: 1em 15.7em 0em 1em; } /* so we use the freed up space */\n\n/* just in case want some QuickOpenTags in your topMenu */\n#topMenu .quickopentag { padding:0px; margin:0px; border:0px; }\n#topMenu .quickopentag .tiddlyLink { padding-right:1px; margin-right:0px; }\n#topMenu .quickopentag .button { padding-left:1px; margin-left:0px; border:0px; }\n\n\n/*}}}*/
<div class='header' macro='gradient vert #390108 #900'>\n<div class='headerShadow'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span> \n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n<!--\n<div class='headerForeground'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span> \n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n-->\n<div id='topMenu' refresh='content' tiddler='MainMenu'></div>\n</div>\n</div>\n<!--\n<div id='mainMenu'>\n<div refresh='content' tiddler='MainMenu'></div>\n-->\n</div>\n<div id='sidebar'>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>\n</div>
/*{{{*/\n.viewer .listTitle { list-style-type:none; margin-left:-2em; }\n.editorFooter .button { padding-top: 0px; padding-bottom:0px; }\n/*}}}*/\n/***\nImportant stuff. See DevFireTagglyTaggingStyles and DevFireHorizontalMainMenuStyles\n***/\n/*{{{*/\n[[DevFireTagglyTaggingStyles]]\n[[DevFireHorizontalMainMenuStyles]]\n/*}}}*/\n/***\nClint's fix for weird IE behaviours\n***/\n/*{{{*/\nbody {position:static;}\n.tagClear{margin-top:1em;clear:both;}\n/*}}}*/\n/***\nJust colours, fonts, tweaks etc. See SideBarWhiteAndGrey\n***/\n/*{{{*/\n\n/***\nhttp://tiddlystyles.com/#theme:DevFire\nAuthor: Clint Checketts\n***/\n\n/*{{{*/\nbody {\nbackground: #000;\n}\n/*}}}*/\n/***\n!Link styles /% ============================================================= %/\n***/\n/*{{{*/\na,\na.button,\n#mainMenu a.button,\n#sidebarOptions .sliderPanel a{\n color: #ffbf00;\n border: 0;\n background: transparent;\n}\n\na:hover,\na.button:hover,\n#mainMenu a.button:hover,\n#sidebarOptions .sliderPanel a:hover\n#sidebarOptions .sliderPanel a:active{\n color: #ff7f00;\n border: 0;\n border-bottom: #ff7f00 1px dashed;\n background: transparent;\n text-decoration: none;\n}\n\n#displayArea .button.highlight{\n color: #ffbf00;\n background: #4c4c4c;\n}\n/*}}}*/\n/***\n!Header styles /% ============================================================= %/\n***/\n/*{{{*/\n.header{\n border-bottom: 2px solid #ffbf00;\n color: #fff;\n}\n\n.headerForeground a {\n color: #fff;\n}\n\n.header a:hover {\n border-bottom: 1px dashed #fff;\n}\n/*}}}*/\n/***\n!Main menu styles /% ============================================================= %/\n***/\n/*{{{*/\n#mainMenu {color: #fff;}\n#mainMenu h1{\n font-size: 1.1em;\n}\n#mainMenu li,#mainMenu ul{\n list-style: none;\n margin: 0;\n padding: 0;\n}\n/*}}}*/\n/***\n!Sidebar styles /% ============================================================= %/\n***/\n/*{{{*/\n#sidebar {\n right: 0;\n color: #fff;\n border: 2px solid #ffbf00;\n border-width: 0 0 2px 2px;\n}\n#sidebarOptions {\n background-color: #4c4c4c;\n padding: 0;\n}\n\n#sidebarOptions a{\n margin: 0;\n color: #ffbf00;\n border: 0;\n}\n#sidebarOptions a:hover {\n color: #4c4c4c;\n background-color: #ffbf00;\n\n}\n\n#sidebarOptions a:active {\n color: #ffbf00;\n background-color: transparent;\n}\n\n#sidebarOptions .sliderPanel {\n background-color: #333;\n margin: 0;\n}\n\n#sidebarTabs {background-color: #4c4c4c;}\n#sidebarTabs .tabSelected {\n padding: 3px 3px;\n cursor: default;\n color: #ffbf00;\n background-color: #666;\n}\n#sidebarTabs .tabUnselected {\n color: #ffbf00;\n background-color: #5f5f5f;\n padding: 0 4px;\n}\n\n#sidebarTabs .tabUnselected:hover,\n#sidebarTabs .tabContents {\n background-color: #666;\n}\n\n.listTitle{color: #FFF;}\n#sidebarTabs .tabContents a{\n color: #ffbf00;\n}\n\n#sidebarTabs .tabContents a:hover{\n color: #ff7f00;\n background: transparent;\n}\n\n#sidebarTabs .txtMoreTab .tabSelected,\n#sidebarTabs .txtMoreTab .tab:hover,\n#sidebarTabs .txtMoreTab .tabContents{\n color: #ffbf00;\n background: #4c4c4c;\n}\n\n#sidebarTabs .txtMoreTab .tabUnselected {\n color: #ffbf00;\n background: #5f5f5f;\n}\n\n.tab.tabSelected, .tab.tabSelected:hover{color: #ffbf00; border: 0; background-color: #4c4c4c;cursor:default;}\n.tab.tabUnselected {background-color: #666;}\n.tab.tabUnselected:hover{color:#ffbf00; border: 0;background-color: #4c4c4c;}\n.tabContents {\n background-color: #4c4c4c;\n border: 0;\n}\n.tabContents .tabContents{background: #666;}\n.tabContents .tabSelected{background: #666;}\n.tabContents .tabUnselected{background: #5f5f5f;}\n.tabContents .tab:hover{background: #666;}\n/*}}}*/\n/***\n!Message area styles /% ============================================================= %/\n***/\n/*{{{*/\n#messageArea {background-color: #666; color: #fff; border: 2px solid #ffbf00;}\n#messageArea a:link, #messageArea a:visited {color: #ffbf00; text-decoration:none;}\n#messageArea a:hover {color: #ff7f00;}\n#messageArea a:active {color: #ff7f00;}\n#messageArea .messageToolbar a{\n border: 1px solid #ffbf00;\n background: #4c4c4c;\n}\n/*}}}*/\n/***\n!Popup styles /% ============================================================= %/\n***/\n/*{{{*/\n.popup {color: #fff; background-color: #4c4c4c; border: 1px solid #ffbf00;}\n.popup li.disabled{color: #fff;}\n.popup a {color: #ffbf00; }\n.popup a:hover { background: transparent; color: #ff7f00; border: 0;}\n.popup hr {color: #ffbf00; background: #ffbf00;}\n/*}}}*/\n/***\n!Tiddler Display styles /% ============================================================= %/\n***/\n/*{{{*/\n.title{color: #fff;}\nh1, h2, h3, h4, h5 {\n color: #fff;\n background-color: transparent;\n border-bottom: 1px solid #333;\n}\n\n.subtitle{\n color: #666;\n}\n\n.viewer {color: #fff; }\n\n.viewer table{background: #666; color: #fff;}\n\n.viewer th {background-color: #996; color: #fff;}\n\n.viewer pre, .viewer code {color: #ddd; background-color: #4c4c4c; border: 1px solid #ffbf00;}\n\n.viewer hr {color: #666;}\n\n.tiddler .button {color: #4c4c4c;}\n.tiddler .button:hover { color: #ffbf00; background-color: #4c4c4c;}\n.tiddler .button:active {color: #ffbf00; background-color: #4c4c4c;}\n\n.toolbar {\n color: #4c4c4c;\n}\n\n.toolbar a.button,\n.toolbar a.button:hover,\n.toolbar a.button:active,\n.editorFooter a{\n border: 0;\n}\n\n.footer {\n color: #ddd;\n}\n\n.selected .footer {\n color: #888;\n}\n\n.highlight, .marked {\n color: #000;\n background-color: #ffe72f;\n}\n.editorFooter {\n color: #aaa;\n}\n\n.tab{\n-moz-border-radius-topleft: 3px;\n-moz-border-radius-topright: 3px;\n}\n\n.tagging,\n.tagged{\n background: #4c4c4c;\n border: 1px solid #4c4c4c; \n}\n\n.selected .tagging,\n.selected .tagged{\n background-color: #333;\n border: 1px solid #ffbf00;\n}\n\n.tagging .listTitle,\n.tagged .listTitle{\n color: #fff;\n}\n\n.tagging .button,\n.tagged .button{\n color: #ffbf00;\n border: 0;\n padding: 0;\n}\n\n.tagging .button:hover,\n.tagged .button:hover{\nbackground: transparent;\n}\n\n.selected .isTag .tagging.simple,\n.selected .tagged.simple,\n.isTag .tagging.simple,\n.tagged.simple {\n float: none;\n display: inline;\n border: 0;\n background: transparent;\n color: #fff;\n margin: 0;\n}\n\n.cascade {\n background: #4c4c4c;\n color: #ddd;\n border: 1px solid #ffbf00;\n}\n/*}}}*/
/***\nTo use, add {{{[[TagglyTaggingStyles]]}}} to your StyleSheet tiddler, or you can just paste the CSS in directly. See also ViewTemplate, EditTemplate and TagglyTagging.\n***/\n/*{{{*/\n.tagglyTagged li.listTitle { display:none;}\n.tagglyTagged li { display: inline; font-size:90%; }\n.tagglyTagged ul { margin:0px; padding:0px; }\n.tagglyTagging { padding-top:0.5em; }\n.tagglyTagging li.listTitle { display:none;}\n.tagglyTagging ul { margin-top:0px; padding-top:0.5em; padding-left:2em; margin-bottom:0px; padding-bottom:0px; }\n\n/* .tagglyTagging .tghide { display:inline; } */\n\n.tagglyTagging { vertical-align: top; margin:0px; padding:0px; }\n.tagglyTagging table { margin:0px; padding:0px; }\n\n\n.tagglyTagging .button { display:none; margin-left:3px; margin-right:3px; }\n.tagglyTagging .button, .tagglyTagging .hidebutton { color:#aaa; font-size:90%; border:0px; padding-left:0.3em;padding-right:0.3em;}\n.tagglyTagging .button:hover, .hidebutton:hover { background:#eee; color:#888; }\n.selected .tagglyTagging .button { display:inline; }\n\n.tagglyTagging .hidebutton { color:white; } /* has to be there so it takes up space */\n.selected .tagglyTagging .hidebutton { color:#aaa }\n\n.tagglyLabel { color:#aaa; font-size:90%; }\n\n.tagglyTagging ul {padding-top:0px; padding-bottom:0.5em; margin-left:1em; }\n.tagglyTagging ul ul {list-style-type:disc; margin-left:-1em;}\n.tagglyTagging ul ul li {margin-left:0.5em; }\n\n.editLabel { font-size:90%; padding-top:0.5em; }\n/*}}}*/\n
|<<siteMap [[elgg]]>>|<<siteMap [[Blog]]>>|<<siteMap NME>><<siteMap MoodleDir>><<siteMap Drupal>>|
<html>\n<h3 id="id11">Frustrations with Moodle Development</h3>\n\n<p>Andreas from Austria posted this question <a href="http://moodle.org/mod/forum/discuss.php?d=45852&mode=3">moodle newbie – general questions & <span class="caps">API</span></a></p>\n\n<blockquote>\n<p>My name is Andreas and I'm a student from Austria. I'm rather new to moodle, but I will have to go a bit "under the surface", as I want to use moodle for my diploma thesis.</p>\n<p>some more dev-related questions:</p>\n</blockquote>\n\n<ul>\n <li>I am new to <span class="caps">PHP</span> (always dealt with Java before), so it is kind of hard for me to get through all the code. Which are in general the libraries I can concentrate on (as there are lots of them defining lots and lots of functions)?</li>\n <li>As I want to keep my code maintainable and "pretty" I do not want to hardcode any sql queries as far as possible. But how can I properly access moodle functionality? I mean is there always some "release stable <span class="caps">API</span>" e.g. for authentication?</li>\n <li>How do I correctly access other modules instead from directly accessing the database tables? Is there always some <span class="caps">API</span> or does this depend on the developer? What I would need for example is the <span class="caps">API</span> for doing a post in a forum or sending/receiving a chat message. What does the community suggest?</li>\n</ul>\n\n<p>Sam Marshall responded with <a href="http://moodle.org/mod/forum/discuss.php?d=45852&parent=210885">this</a> which matches the frustration which we found when trying to do development — to understand how the ruddy thing works you have to reverse engineer the system. And <strong>everyone</strong> who wants to develop Moodle has to do the same thing. Welcome to the 80s indeed.</p>\n\n<blockquote>\n<p> Basically you are expecting a system with a clearly-designed architecture, but you need to adjust your expectations. Moodle is not that system. It has a limited amount of architecture in certain areas (for example, there is a module <span class="caps">API</span>, although it's hard to find full documentation on this last I looked). There are many other small areas with different defined APIs, such as auth plug-ins, blocks, etc. Some of these work in a similar way to modules while others have a totally different style.</p>\n</blockquote>\n\n<p>It has been claimed that this is a good thing.</p>\n\n<p>In answer to your question about hardcoding <span class="caps">SQL</span> queries – Moodle's 'datalib.php' includes a number of data access functions. However, these don't really do what you probably expect (define wrapper functions through which you can access database functionality without needing to know how the tables are defined, thus separating the precise details of data definition from other areas of code). What they actually do is provide a limited set of table access operations which at least are guaranteed to work on both the databases Moodle supports. These work on 'Moodle-style tables' which must have a primary key called 'id' that is an autosequenced integer. You can also just do <span class="caps">SQL</span> queries if you like living dangerously; there are functions in datalib that can be used to run arbitrary <span class="caps">SQL</span>. Even for this it's better to use datalib functions than use <span class="caps">ADODB</span> (the <span class="caps">PHP</span> database integration layer Moodle uses) directly, because the datalib functions track some statistics about the number of queries etc.</p>\n\n<p>For accessing other modules it is entirely up to the module – there is no defined way for modules to expose their <span class="caps">API</span>. Instead, you go look into that module's code and see if there's a function that looks like it does what you want. If there is, use it (and hope they don't redefine the function next version); otherwise, you'll have to access database tables directly (and hope they don't redefine the tables next version).</p>\n\n</html>
Because I want to use Elgg for EC's blogging needs (say 'no' to bloat!) I switched off the blogging on Moodle 08. Administration : security : Site Policies : Blog Visibility -- Disable blog system completely.
!!Problem : I'm getting all postings to discussion Forums as email messages. Make it stop!\nWhen you join a Forum on Moodle it 'subscribes' you to that Forum by default. This means that you get forum posts by email. \n!!Fix : Part I\nYou will need to turn off subscriptions for each Forum you are a member of:\n# Logon to Moodle and go to the course\n# Click the Forums link in Activities box -- you'll see all the Forums together.\n# In Learning Forums section, click the Forum name.\n# At the top right you'll see a link called "Unsubscribe from this forum". Click on this and you'll get unsubscribed.\n# Return to the Forums listing by clicking the Forums link on the breadcrumb bar. [img[graphics/forums_breadcrumb.png]]\n# Repeat for ''every'' Forum\n!! Fix : Part II\nTo change the default behaviour so that you don't subscribe to a new Forum (you'll want to do this too):\n# On the course mail page open Participants and click on your own name.\n# This is your Profile page. Now select the Edit Profile tab\n# Find the option 'Forum auto-subscribe' and pull down the menu to 'No: dont' automatically subscribe me to Forums"\n# You will also have to type some comments into the Description field before you can Update.\n# Click Update Profile to save.\n----\n21 Sept 2006
!!New approach\nInstead of modifying the ''old'' theme I decided to repeat the process of customizing the formal_white theme with the ecs stuff. That way, I'd keep all of the vital stuff and just apply the modifications.\n# rename current //formal_ecs// {{{sudo mv formal_ecs/ formal_ecs_old}}}\n# copy //formal_white// preserving ownership and permissions {{{sudo cp -rp formal_white/ formal_ecs}}}\n# copy the graphics backgrounds overwriting current versions (we have backups) and remove files not needed. +++[actions]\n{{{\nsudo cp ../formal_ecs_old/gradient.jpg .\nmarkp@Barnabas:/var/www/moodle19/theme/formal_ecs$ sudo cp ../formal_ecs_old/background_p2.jpg .\nmarkp@Barnabas:/var/www/moodle19/theme/formal_ecs$ sudo cp ../formal_ecs_old/logo.jpg .\nmarkp@Barnabas:/var/www/moodle19/theme/formal_ecs$ sudo cp ../formal_ecs_old/logo_small.gif .\nmarkp@Barnabas:/var/www/moodle19/theme/formal_ecs$ sudo rm logo_small.jpg\n}}}\n===\n\n# copy over the header.html since we've already modded this {{{sudo cp -p ../formal_ecs_old/header.html .}}}\n!!!Even newer approach\n* I realised that I needed to edit fw_color.css, fw_fonts.css & fw_layout.css -- so upload to PC and edit with jEdit. Apply colors from [[New Theme]]\n* Also the ''//pix//'' folder has changed and there's now a //pix/grad// folder for gradients and //pix/tab// folder for left & right. I will need to change background sizes to fit the sizes used here.\n|!Old file|!width|!height|!image|!New file|!width|!height|!image|\n|background_p2.jpg| 20| 55| [img[graphics/background_p2.jpg]] |pix/grad/bg_header.jpg| 20| 25| [img[graphics/bg_header.jpg]] |\n| | | | |pix/grad/bg_bread.jpg| 20| 25| [img[graphics/bg_bread.jpg]] |\n|gradient.jpg| 42| 100| |/pix/grad/gradient_h.jpg| 169| 26|[[gradient_h.jpg|graphics/gradient_h.jpg]]<<imagebox>>|\n!!Problem\nI can't seem to find the //.tiff// files which generated the background & moodle logo! Kerri was working on this, so email her.\n!!Disaster\nI edited css files as listed above, copied the pix from //formal_ecs_old// into //formal_ecs// , renamed the folder on the server to //formal_ecs_back// and ftped the whole folder back into moodle19/themes. Result : disaster!\n* the [[main header background|graphics/formalecs_main_header.png]]<<imagebox>> is not showing properly\n* the backgrounds are also screwed up on the [[category list|graphics/formalecs_category_list.png]]<<imagebox>>\n* and aside form the lacking background the [[course display|graphics/formalecs_course_display.png]]<<imagebox>> does not show the correct pixs.\n;Conclusion:\n: Go back to original pran and just edit parts of the original formal ecs ....''wasted day'' \n\n''BUT" restoring //formal_ecs// did not fix the issue.
!!Problem\nThe short name in the breadcrumb bar is substituted by "Array" (graphic). The footer breadcrumb bar is fine.\n!!Solution\nPosted to [[moodle.org forum|http://moodle.org/mod/forum/discuss.php?d=102536#p453255]] and got this reply:\n<<<\nAt least in my case, it was a theme problem. When I used my Moodle 1.8 theme, I had the Moodle site > Array breadcrumb on top (but correct breadcrumb on bottom) but using Standardwhite theme, it was fine. So, I did what any nonprogrammer would do -- I copied and pasted! Specifically, I replaced the breadcrumb code in my theme's header.html (last section of the file) with the corresponding header code from Standardwhite as quoted below:\n{{{\n<?php //Accessibility: breadcrumb trail/navbar now a DIV, not a table.\n if ($navigation) { // This is the navigation bar with breadcrumbs ?>\n <div class="navbar clearfix">\n <div class="breadcrumb"><?php print_navigation($navigation); ?></div>\n <div class="navbutton"><?php echo $button; ?></div>\n </div>\n<?php } else if ($heading) { // If no navigation, but a heading, then print a line\n?>\n <hr />\n<?php } ?>\n <!-- END OF HEADER -->\n}}}\nand, presto-chango! Correct breadcrumbs!\n<<<\nI'm sure this'll work!
!!Going deeper into customized theme changes\nThe [[Display problem]] led me to realise that changes have been made to how the themes work. Thus the solution given is not as simple as I first thought.\nThe guy that posted the solution had used 'standardwhite' as his theme base but I used 'formal_white'. So, after making a backup copy of header.html I copied over ../formal_white/header.html and overwrote the original. Now, two problems arose. \n# the small logo did not appear +++[solution]\nchange the reference in //header.html// from ''logo_small.jpg'' to ''logo_small.gif''\n===\n\n# the display of the current course did not appear. +++[solution]>\nAdd :\n''{{{<br clear="all">\n<h2 class="headermain"><?php echo $heading ?></h2>}}}''\nto make:\n{{{\n<div class="headermenu"><?php echo $menu ?></div><br clear="all">\n<h2 class="headermain"><?php echo $heading ?></h2>\n<?php print_container_end(); ?>\n}}}\n===\n\n!!!Stylesheet problems\nBut there are still stylesheet problems (eg background to logo_small.gif is not transparent). So:\n* backup fw_layout.css\n* copy over formal_white/fw_layout.css\n* apply changes\nI have been working in site ''mtest19''. I need to see the effect on real courses so move over to site ''moodle19'' and do the mods there, then copy back.\n[[Display : new approach]] -- did not work so back to here.\nPartially sussed out the problem with the //logo_small.gif// which is transparent but showing a color background instead of the background url.\nTraced this to the //header.html// code:\n{{{\n <?php print_container_start(true, '', 'header'); ?>\n <h1 class="headermain"><img alt='Moodle' src='<?php echo $CFG->httpsthemewww .'/'. current_theme() ?>/logo_small.gif' /></h1>\n <div class="headermenu"><?php echo $menu ?></div><br clear="all">\n <h2 class="headermain"><?php echo $heading ?></h2>\n <?php print_container_end(); ?>\n}}}\nI determined that the {{{<h1>}}} was causing the problem so I switched it to {{{<p>}}}\n
# New features to 1.9\n** AJAX -- drag and drop\n** Course Menu block\n** Gradebook\n** Notes\n# new modules\n** Feedback\n** Book\n\nnew changes [[new link]]
/***\nDropDownTagChooser\nhttp://simonbaird.com/mptw/#DropDownTagChooser\nRequires TagUtils\nExample:\n{{{<<selectUniqueTag Priority>>}}}\n<<selectUniqueTag Priority>>\nSee also ExampleTask (uses ViewTemplate to put a couple of these in the toolbar).\n***/\n//{{{\nvar selectUniqueTagOnChange = function(tiddler,newTag,tagGroup) {\n\n // can I do this a better way, ie not have to use store.getTiddler???\n // just use macro handler scope ???\n\n var t = store.getTiddler(tiddler);\n t.setUniqueTagFromGroup(newTag,tagGroup);\n\n // refresh visible tiddlers\n story.forEachTiddler(function(title,element) {\n if (element.getAttribute("dirty") != "true") \n story.refreshTiddler(title,false,true);\n });\n\n return false;\n}\n\nconfig.macros.selectUniqueTag = {};\nconfig.macros.selectUniqueTag.handler =\n function(place,macroName,params,wikifier,paramString,tiddler) {\n\n var tagGroup = params[0];\n var label = params[1]?params[1]:params[0]+":";\n\n var tagsInGroup = getTitles(store.getTaggedTiddlers(params[0]));\n\n var select = document.createElement("select");\n\n /*\n // dont know how to make this work..\n var update = function(e) {\n if (!e) var e = window.event;\n alert("here");\n return false;\n };\n select.onchange = update;\n */\n\n select.setAttribute("onchange","selectUniqueTagOnChange('"+\n tiddler.title+"',this.options[this.selectedIndex].text,'"+tagGroup+"');");\n\n select.setAttribute("style","font-size:90%;"); // evil. should use a class!\n\n // in case there is currently none of them\n if (!tiddler.hasAnyTag(tagsInGroup)) {\n var opt = document.createElement("option");\n opt.text = "-";\n opt.selected = true;\n try {\n // for IE\n select.add(opt);\n }\n catch(e) {\n select.appendChild(opt)\n };\n }\n\n for (var i=0;i<tagsInGroup.length;i++) {\n var opt = document.createElement("option");\n opt.text = tagsInGroup[i];\n if (tiddler.hasTag(tagsInGroup[i]))\n opt.selected = true;\n try {\n // for IE\n select.add(opt);\n }\n catch(e) {\n select.appendChild(opt)\n };\n }\n\n wikify(label,place,null,tiddler);\n place.appendChild(select);\n}\n\n//}}}
!!Duplicate Activity problem\nThe only current way to duplicate an activity --is-- was this [[gruesome work around|http://www.earlham.edu/~markp/moodle_dox/#Duplicate Activity]]\nBut now in version 1.8 this gives an error message ([[screenshot|graphics/duplicate_activity_problem.png]]<<imagebox>>)\n!!Workaround\nWelling needs a means to replicate activities over several weekly chunks. The workaround is rather clunky but it does work; basically you make a course backup with just the assignment you want and then restore it to the same course taking care to add to the course rather than delete it.\n# Make a complete course backup just to be on the safe side : [[instructions|http://www.earlham.edu/~markp/moodle_dox/#[[Create a Course Backup]]]]\n# Startup the Course backup (in Administration block)\n# click the None link located over the column of activities. This deselects everything. Now check the Assignment you want to duplicate.\n# Other settings :\n** Metacourse : No\n** Users : None\n** Logs : No\n** User Files : No\n** ''Course files : No'' (you just want the assignment definition not any course files)\n# Continue. Now rename the backup file to indicate that it just contains the assignment, eg "backup-assignment-assign2.zip". Continue.\n# You should see a screen with a list of what's backed up and a success indicator. Continue.\n# You are now dumped into the backupdata folder of your Files area and you can directly restore the assignment from here.\n## locate the backup zip file that you just created and click the associated "Restore" link. Yes to continue. Continue.\n## Restore to : ''Existing course, adding data to it''. Leave everything else at their defaults. Continue.\n## Restore this course now\n## Continue. Course Restored sucessfully.\n## New assignment created can now be moved to a different location and renamed.\nThe advantage with this procedure is that you can backup/restore several different activities all at once and also duplicate multiple instances of activities.\n----\n\n\n\n\n\n
Kevin Hunter has just done some quick SQL selects to figure out how many courses would be created by the batch upload script he's writing. There are a number of special cases:\n# cross listed courses cannot be included. A single course can be cross listed into several departments each with it's own id and we can't have the situation where there's more than one Moodle course for the same course. So Charles Watson has his course "Race, Philosophy and Politics" as ~PHIL240, and crosslisted as ~AAAS240 and ~POLS240.\n# the course number '340' is apparently given to any course which is experimental and has not yet got the CPC imprimatur, so these need to be left out too.\n# AWPE courses can safely be excluded from auto creation too.\nAt the end of the day we have currently (19th June):\n|!Category|!# courses|\n|Unique| 344|\n|Cross listed|122 total, 54 individual|\n|"340"| 5|\n|AWPE| 48|\n\n
!!Thurs 13 March + Denise & Aaron\n!!!1. Considering Server hardware and OS\nOptions:\n* Use FreeBSD and put two 'Gaols' in the same hardware. \n;Advantage : \n:Pre-production and Production would have //exactly// the same hardware and OS configuration. \n;Disadvantages : \n:single point of failure\n:shared memory & CPU -- activity on pre-production system reduces resources for production\n* Use FreeBSD on two servers.\n* VMWare virtual machines on same server. Would need to use a Linux since BSD is not supported. Could use //Centos// which is a Red Hat Enterprise clone. But we have not tried this out yet.\nAscertain hardware specs for new machine -- >2 Gb memory.\n!!!2. Profile /benchmark code on Hedd (Sunfire 210)\nMySQL server is Taika (Dell PowerEdge 1750). We considered that it was not worth upgrading this currently.\nCheck out [[this discussion|http://moodle.org/mod/forum/discuss.php?d=57028]] and benchmarking scripts on Moodle.org. Interesting is the effect of PHP5 (//much// faster on same hardware). We might also want to look at [[eaccelerator|http://eaccelerator.net/]] which can have a [[significant effect|http://www.ipersec.com/index.php/2006/05/30/benchmarking-php-accelerators/]]\n* This version of performance perspectives includes an estimate of max users supported by the system : [[Benchmark max users code|modules/perspective_users.php]]\n* This version tidies up afterwards and deletes all the TEST tables [[benchmark code with cleanup|modules/perspective_cleanup.php]].\n+++[This advice]> \n... you definitely want to have at least one place where you do development and testing outside of your production environment - ideally one or more development setups (which can be local, etc) and then testing/staging environments which are as close as possible to your production environment (in particular, that are running the same OS, webserver, php, etc so that you can identify any issues/conflicts etc before applying the same changes in production.\n...If for instance you want to run Sam's script (the one from this thread) in your production setup, you should be fine just to be running in a separate database - perhaps a clone of your existing site or for the purposes of this (where existing data shouldn't have much/any impact),just a clean Moodle install. Definitely be sure to run the same version of Moodle that you're running in production, as there have been significant performance enhancements in the past couple of months.\n=== from the above discussion thread could be very useful.\nSuggestion:\n# Merge the benchmark code from the two versions above.\n# To test on Hedd use new 1.9 Moodle codebase and new test database to avoid polluting production database\n# Repeat on Frumentius to see the effect of fast CPU + memory.\n!!!3. Upgrade hardware\nAny new server h/w won't arrive until new budget year in July. +++[List Apache and PhP modules]>\nApache v 2.x:\n* Modrewrite\nPhP - version 5.1:\n* GD\n* tokenizer\n* openssl\n* curl\n* mbstring\n* iconv\n=== needed.\nTasks:\n|Benchmark Hedd (see above|Aaron|\n|Hardware specs for new machines|Aaron|\n|Purchase new machine & install OS & Gaols|~RandyS|\n|Timetable for rollover to new h/w|Aaron & Mark|\n|Suss out configuration of new Moodle version|Mark|\n|Install new version on new h/w|Aaron & Mark|\n!!!4. Data space\nWe need to figure out whether we want local data storage or remote. Where do we want to put the course backups generated daily? How many course backups do we want to keep (just the last one or 2 previous ones, etc)?\n!!!5. Old versions\nMy suggestion is that we don't put any previous years Moodle versions onto the new server (name suggestions, "NewHedd" or "SkinHedd"?) but leave the old server up and run them off of it.\nIn any case, the new Moodle server won't have Postgres (how do we handle a system that needs PGSQL?) . \n;@@Mark todo@@\n: Do course backups for all courses 0405 & 0506 that are on the PG system. Copy into directories indicating year. \n@@Aaron@@ -- Retire Moodle 1.5/1.6.\n!!Summer User Issues\n# Move student and faculty user accounts into new system using [[this technique|Year-end version rollover]]. Get list of continuing students from Denise. Have Kerri do the grunt work adding names to the course. Also need list of permanent faculty.\n# Summer programmes needing to use Moodle:\n** Summer Writing Intensive -- student accounts? How?\n** Wes / Bonita / WendyS Moodle use by incoming students. We may need a separate instance to handle this?\n!!!Longer term issues for ITPC\n* Handling IUEast students. Only accept IU email address?\n* Automatic loading of mugshots into Moodle (v2.0)\n!Not Considered Yet\n# Elgg issues -- SSO between Elgg and Moodle\n# Codebase and data storage\n\n
!!Meeting with Denise and Aaron Thurs 28 Feb\nProposed architecture for Moodle deployment:\n| | Stage |>|>|\n| |!1|!2|!3|\n|!Admin| Mark | Aaron | Aaron |\n|!Type|Sandbox|Pre-production|Production|\n|!Function|Construct pre-production install|Next version of Moodle for testing|Production Moodle|\n* The Sandbox would be where Mark sets up the initial install of Moodle and figures out what modules to use. Also adds test users and restores some courses to check that things work. Documents the whole install process. For hardware, I could use the Intel box from Charlie. Database, data and code on same box.\n* Pre-production. This system would be similar but perhaps not as powerful as the Production system. Database would reside on the Db server, and data would be where? Aaron reinstalls Moodle following Mark's docs (above). Here is where we upload all the faculty accounts and create categories and courses. The full course upload can only be done a week or so before semester starts because the registrar's office does not have it ready until then.\n* Production. Having tested on the pre-production server, Aaron merely copies the code over to the production server and it accesses the same database (and data dir?). This server hardware would have a lot of oomph.\nThe advantage with this system is that Aaron gets to install & run the system before it hits production - the more eyes the better.\n!!!Data\nThere are four sets of data that we need to deal with:\n# //moodledata//. That is the directory where all the uploaded files (including all student assignment files) are stored. This is always outside of the web directory. It's organized by course - each course has a numbered directory - and system stuff is stored in course #1. Each year's moodle version will have a separate moodledata directory. Implications : \n** not designed to store individual student material - no place for groups, etc\n** not persistent since we use a new directory each year - cannot be used for persistent data eg e-portfolios, \n** access via Apache is open - a course can see other course's files via php - not a repository with access controls.\n# Weekly course backups. I think that we should perform weekly if not daily course backups via the Moodle system. Initially Rowan did this but the server got bogged down and system level backups were substituted. These backups need to have a data location (which can be totally separate from //moodledata// )\n# Previous year's course backups. There needs to be a place where faculty can easily restore a previous year's course from a backup. Ideally this process would be driven from a [[self service course creation interface|Self Service Course Creation #2]]. We'd have to consider carefully the location of this [[Location of course backups]]\n# Previous year's //moodledata//. Currently we keep previous years Moodles online as a failsafe measure. This has bailed me out several times when restoring of the course backup has failed and I've been able to create a new backup with a different configuration. I suggest that we maintain two years of previous Moodle online. We need to make an announcement to this effect.\nHere's a rough guide to where we are right now. \n|!Year|!Location|!Size|!Comments|\n|2008|moodlecontent/moodledata08| 27Gb|probably won't get much bigger. All last year course backups have been moved|\n|2007|classes/moodledata2| 60Gb|Dan Graves' Western Music class was 4Gb|\n|2006|classes/moodledata| 27Gb| |\nCourse backups from 2007 occupy 32Gb.\n* Aaron thinks that we should save media files such as ~MP3, ~MP4, other video formats in a separate place but I'm not sure how that would work to maintain access in order to play.\n* I think that video clips are going to become a lot more popular - one option to handle this would be to convert to ~FLV and play in a Flash player. This would result in smaller file sizes and prevent downloads.\n!!Policy Decisions and Announcements\n* Apparently the assumption is that we'll have at least a new Production server and perhaps a new pre-production as well. This should have php5 and Apache2.\n* After we have figured out policy with regard to previous year's storage we probably need to run it by ITPC and then announce to faculty.\n!ELS/Elgg\nWe figured that Earlham Learning Spaces (running on Elgg) could use the same deployment architecture as Moodle. That is, initial setup on the sandbox, reinstall on the pre-production and then transfer to production. My feeling is that a dual core dual CPU server should be able to handle Moodle & Elgg together easily.\nWe could use the same install sequence as Moodle; however, it's a wee bit more complicated since Elgg is driven my rewrite rules in .htaccess and thus an Apache virtual host needs to be configured.\n!!!Data\nLike Moodle, Elgg has a data directory outside the web directory. However the organization of the directories is totally different. Each user has their own directory and access to this is controlled by php access controls. Thus 'public' files are visible to other Elgg users and the internet but files with 'logged in user' access can only be seen by ELS users and private files are not visible to anyone other than the user. Access permissions are also associated with communities and groups. Thus this would be the better place for eportfolio type activities.\nI see no reason why the Elggdata directory should not be located in the same place as moodledata.\n!!!Backup\nMy current backup scheme for ELS on Frumentius is as follows:\n* Daily ~MYSQLdump of the database & bzipped\n* Weekly tar/gzip of the data directory\n* Monthly tar of all daily & weekly backups. Move this offsite.\nIn terms of restoring. I have successfully restored a user plus all blog postings form a database dump that had previously been deleted.\n!!!Media\nI am currently looking at a mediastream plugin for Elgg that uses ~FFMpeg to translate incoming ~MP4 files into Flash (rather like YouTube). This may be a big deal.\n\n;@@Next Meeting@@ \n:Thursday 13 March at 10am.\n\n
!!June 16 -- latest module versions\n* Book. After making a backup, update with cvs. No changes at all.\n* Attendance. Pretty sure that it hasn't been updated since last time. But I downloaded a new version anyway (in moodle/moo-cat)\n** "In last version of module you can just set "Grade" option to "No grade" in preferences page of Attendance module." Dmitri.\n* Feedback. Use cvs version from ~MOODLE_STABLE with following command line {{{\n/markp/moo-plugins]$ cvs -d:pserver:anonymous@us2.cvs.moodle.org:/cvsroot/moodle login \n/markp/moo-plugins]$ cvs -z3 -d:pserver:anonymous@us2.cvs.moodle.org:/cvsroot/moodle co -P -r MOODLE_19_STABLE contrib/plugins/mod/feedback\n}}} and get the block version as well\n* Yui_menu. Do CVS update for this too.\nAdditional modules:\n* OU Wiki -- same as last version.\n* Sharing Cart. Download latest version and check for version.php. The latest version is now on cvs and not as zip. Have updated this.\n
<!---\n| Name:|~TagglyTaggingEditTemplate |\n| Version:|1.1 (12-Jan-2006)|\n| Source:|http://simonbaird.com/mptw/#TagglyTaggingEditTemplate|\n| Purpose:|See TagglyTagging for more info|\n| Requires:|You need the CSS in TagglyTaggingStyles to make it look right|\n-->\n<!--{{{-->\n<div class='toolbar' macro='toolbar +saveTiddler closeOthers cancelTiddler deleteTiddler wikibar'></div>\n<div class='title' macro='view title'></div>\n<div class='editLabel'>Title</div><div class='editor' macro='edit title'></div>\n<div class='editLabel'>Tags</div><div class='editor' macro='edit tags'></div>\n<div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>\n<div class='editor' macro='edit text'></div>\n<br>\n<!--}}}-->
!!Moodle Blog Writing Activity\nCreate an activity module for Moodle called Elgg-assignment or something similar.\n# Configure activity\n# Get formatted blog postings\n# Split up into student sections\n# Comment -- option for automatic post back to Elgg !\n# Grade - normal gradebook stuff\n# no need for notification\n!!!Formatted blog postings\nThe easy way applicable to Elgg only :\n* Have students tag their assignment blog posting / video upload / group project with class keyword/tag\n* In the elgg-assignment configuration give the keyword/tag used. RSS feed is automatically generated from that keyword\n* the assignment reads in the RSS stream (but we have to reckon on security -- most entries will be set to [logged in users]. How can Moodle read a non-public RSS feed?\n* the RSS stream is exploded into one block of content per user and we're on our way.\n* Display content and grade. Possibly duplicate content to comment. Setting in configuration.\n!!!Roadblock to circumvent : private RSS stream. \n* Surely if we can do a SSO between Moodle and Elgg we can establish an authenticated link between the two.\n* Elgg SSO / assignment integration with Moodle : code from Spring 07 (Elgg 0.7 / Moodle 1.6) is [[here|http://moodle.org/mod/forum/discuss.php?d=65446&parent=306090]]. I ''think'' this allows a file to uploaded into Moodle and also into Elgg. Or vice versa.\n
Useful link. Perhaps outdated and needs work done, but great start:\n[[MoodleElgg HOWTO|http://eduforge.org/wiki/wiki/nzvle/?pagename=MoodleElggHOWTO]]
!!Moodle shenanigans\nA couple of glitches in the Moodle ecosystem situation have come to light:\n# For many faculty accounts the default timezone is incorrect. We are taking steps to correct this problem but you can fix it yourselves.\n** Having logged in to Moodle, open up your own Profile by clicking on your name.\n** Select the Edit Profile tag\n** Find the field labeled ''Timezone''\n** Pull down the menu and change from ''UTC+5'' to ''Server's local time''\n** Scroll down to the bottom of the page and click Update profile.\n** That's all\n# There are also problems with sending email from the Moodle system. The system manager is working on this from home and hopes to get it sorted soon.\n\n
// //''Name:'' EmailLink\n// //''Version:'' <<getversion email>> (<<getversiondate email "DD MMM YYYY">>)\n// //''Author:'' AlanHecht\n// //''Type:'' [[Macro|Macros]]\n\n// //''Description:'' email lets you list a "email" address without displaying it as readable text. This helps prevent your email address from being harvested by search engines and other web crawlers that read your page's contents. Using email, you type in the words "at" and "dot" instead of the punctuation symbols and add spaces inbetween words to disguise your address. However, email will display your email address in a web browser so that humans can read it. And email turns the address into a hyperlink that can be clicked to send you an instant email.\n\n// //''Syntax:'' << {{{email yourname at yourdomain dot com "?optional parameters"}}} >>\n// //Example 1: <<email sample at nowhere dot com>> (standard)\n// //Example 2: <<email multiple dot sample at somewhere dot nowhere dot com>> (multiple dots)\n// //Example 3: <<email sample at nowhere dot com "?subject=Submission&body=Type your message here.">> (with optional parameters)\n\n// //''Directions:'' <<tiddler MacroDirections>>\n\n// //''Notes:'' You can use the optional email parameters to stipulate a subject or message body for the message. Most (not all) email clients will use this information to construct the email message.\n\n// //''Related Links:'' none\n\n// //''Revision History:''\n// // v0.1.0 (20 July 2005): initial release\n// // v0.1.1 (22 July 2005): renamed the macro from "mailto" to "email" to further thwart email harvesters.\n// // v0.1.2 (15 October 2005): added global replacement of "dots" thanks to a suggestion from Ralph Winter\n\n// //''Code section:''\nversion.extensions.email = {major: 0, minor: 1, revision: 2, date: new Date("Oct 15, 2005")};\nconfig.macros.email = {}\nconfig.macros.email.handler = function(place,macroName,params)\n{\nvar temp = params.join(" ");\ndata = temp.split("?");\nvar recipient = data[0];\nrecipient = recipient.replace(" at ","@").replace(" dot ",".","g");\nrecipient = recipient.replace(/\ss/g,"");\nvar optional = data[1] ? "?" + data[1] : "";\nvar theLink = createExternalLink(place,"ma"+"il"+"to:"+recipient+optional);\ntheLink.appendChild(document.createTextNode(recipient))\n}\n
!!1. Control over release of grades\nCurrently, whenever a student's assignment has been graded the student sees the results immediatley. But what if the faculty wants to go back and readjust the final grade? It may be too late for a change of mind if the student has already seen her grade. The only workaround I can think of is to turn grade visibility off in the Settings and then back on when ready. But this is clumsy. Enter Grade release.\n# Have a setting in the assignment creation page : hold grades for release / release immediately\n# On the grading page an option Release now/ Release after [date/time] / Hold all (overrides setting)\n# Also a reminder on the grading page of the current grade release status. \n\n!! 2. Modify ULPGC assignment\nThe ULPGC Assignment is used intensively by two faculty ([[Monteze]] and [[Welling]]) but there are a number of issues:\n<<faqlist byTag ULPGCiss title hr>>\nI suggest investigating the capabilities of the assignment module in Moodle v1.7 )& perhaps 1.8) to see what improvements have been made and then, with the ULPGC assignment as a starting point redo the code to address all the problems and add enhancements.\n\n* Another enhancement is in the Assignment list showing the numbers submitted, graded and ungraded -- as in [[this post to Moodle.org|http://moodle.org/mod/forum/discuss.php?d=43461&parent=299648]]\n* See also [[Moodle Assignment enhancements]]
Got new Parchment theme. Generates error:\n>Notice: Undefined property: stdClass::$parent in /usr/home/markp/public_html/moo-t95/lib/weblib.php on line 2496\n\nWhen I go to the Notifications page I get an unrelated error:\n>"Warning: Call-time pass-by-reference has been deprecated in /usr/home/markp/public_html/moo-t95/blocks/yui_menu/block_yui_menu.php on line 63"\n\nI removed all the list code from menu.php but adding back a list item does not make a difference. \nThe Anomaly theme does not generate this error.\n
On Monday july 27, when Aaron applied the 1.9.5 code:'Rublev' to the database from production (on Moodletest) we got the same errors that had occurred before : [[More Attendance problems]].\nWhat I am going to do now is to attempt to duplicate these errors and to see whether this code [[Attendance Module with extra fields and advanced report|http://tracker.moodle.org/browse/CONTRIB-1400]] fixes the problem.\n!!!Procedure\n# make a complete copy of moo-195 -- call it moot95. Use it to test TinyMCE as well.\n# Switch to //config-test.php//\n# Drop Attendance table\n# See if it generates same errors remaking table.\n# Drop table again\n# Substitute new code and repeat table generation test\n!!!Results\n# Copied moo-195 into moo-t95 as above and pointed to 'mooclamp' database. It turns out that this db did not have the tables already created so when I logged in as administrator they //attforblock// tables were created along with the others. All successfully. The it dawned on my that the problem being displayed was with table @@update@@ rather than table @@create@@. Another look at the error messages confirms this.\n# I still don't understand why there is a different number of tables in db //mooclamp// (233) than //mooclampprod// (243) but the latter is the production database with updated code.\n# Drop tables +++[list]>\n{{{DROP TABLE `mdl_attendance_log` ,\n`mdl_attendance_makeupnotes_log` ,\n`mdl_attendance_scan_logs` ,\n`mdl_attendance_sessions` ,\n`mdl_attendance_sessiontitles` ,\n`mdl_attendance_sicknotes_log` ,\n`mdl_attendance_statuses` ,\n`mdl_attendance_subjects` ,\n`mdl_attendance_teachers` ,\n`mdl_attforblock` ;\n}}}\n=== \n# delete Attforblock from Site Administration : Modules : Activities and Attendance from Modules : Blocks\n# +++[copy code]\n{{{\n/usr/home/markp/public_html/moo-t95/mod]$ cp -r ~/moo-plugins/attendance/attforblock_july attforblock\n/usr/home/markp/public_html/moo-t95/mod]$ cd ../blocks/\n/usr/home/markp/public_html/moo-t95/blocks]$ cp -r ~/moo-plugins/attendance/blocks/attendance attendance\n}}}\n=== \n# Attforblock tables set up correctly.\nReported problem in Tracker [[Attendance generates errors when updating database|http://tracker.moodle.org/browse/CONTRIB-1447]] and have done a 'watch' on this.\n
Recall [[Problems with exercise module]]\nPosted [[Excercise module leads to infinite loop on upgrade|http://moodle.org/mod/forum/discuss.php?d=117603]] on moodle support forums -- +++[posting]>\nOK, so I'm testing out the Catalyst version of moodle (1.9.4+) which has TinyMCE. I started out with a fresh database and all was hunky dory -- I was able to log in and do stuff.\nBut I really wanted to make sure that it worked with my production system. So after backing up everything in sight I load a mysqldump of the production database into the test moodle database.\nI figure out a database issue (mdl_config id=84 change loginhttps from1 to 0) and then the module tables start to set up. I have a problem with Attendance but I think that's sussed with a latest release. Now comes the issue:\n* First there are a sequence of errors to the effect that the exercise tables already exist, eg:{{{ 1050: Table 'mdl_exercise_submissions' already exists}}}\n* however {{{ALTER TABLE mdl_exercise_grades COMMENT='Info about individual grades given to each element'}}} is successful\n* BUT this SQL: {{{ INSERT INTO mdl_log_display(module, action, mtable, field) VALUES ('exercise', 'close', 'exercise', 'name')}}} gives:{{{ 1062: Duplicate entry 'exercise-close' for key 2}}} \n> and this is replicated for entries 'exercise-open', 'exercise-submit', 'exercise-view' , and 'exercise-update'. Clicking [Continue] merely tries again and so I enter into an infinite loop.\nI did use phpmyadmin to drop the exercise and associated tables. The table creation code worked but I still got the INSERT errors.\n\nThing is that I don't use 'exercise' at all so I could happily do without it. Any ideas how I can skip this database update step?\n=== \n!!Kludge solution\n* Drop exercise tables (?)\n* delete code // /mod/exercise //\n* I found that the error was already reported on the Tracker -- [[erro upgrading moodle - mod exercise|http://tracker.moodle.org/browse/MDL-17993]] so I added my 2c!\nAnother look at the Forums reveal that Exercise is no longer supported and due to be rolled into a rewritten Workshop. So dropping the code is no problem.\n
!FAQ is compiled from a single tiddler that uses the {{{<<tiddler>>}}} macro to pull in the answers from other tiddlers\n<<faqlist byTitle [[FAQ Tiddler Sample 2]] null hr>>
!FAQ is compiled from a single tiddler\n<<faqlist byTitle [[FAQ Tiddler Sample]] null hr>>
How can I add you, Reference Librarian, as a 'teacher' to my course? Also, I want to change the role name to 'reference librarian'.\nClick Administration: Teachers. Search for the username of the person you want to add. Then Add Teacher.\nTo change the 'role' merely delete 'Teacher' from the box and type in 'reference librarian'\nSave Changes\n\nHow can the color theme be changed for my course?\nAdministration: Settings. Find 'Force theme' at the bottom of the page and pull down the theme you want. \nSave changes.\nThe only way of seeing what these are like is to experiment!\n\nI want to remove topics or weeks from the Outline. How do you do this?\nThis operation is not readily apparent.\nGo to Administration: Settings -> Number of Weeks/Topics\nReduce the number shown. \nSo, reducing Number Weeks/topics from 10 to 8 will remove 2 blocks from the bottom of the Outline (make sure that there is nothing in these!)\n\nI'm not doing online grading. How can I make the 'Grades' link disappear on the student's view of my course?\nAdministration: Settings\nChange Show grades to No\n\nHow can I let students know about a new resources or assignment on Moodle?\nMake a posting in the 'News forum'. All students are subscribed to this and so will get the posting via email.\nThis is a misnomer -- it would better be called 'Announcements and News'.\nTo make things even smoother you can paste in a link to the assignment or resource itself.\n\nWhat is this 'subscription' business in Forums?\n'Subscribing' to a forum means that you get sent all the postings as email messages.\nThis may or may not be convenient. It is certainly not encouraged because it tends to fragment the community building of a discussion forum.\n\nEvery time I post to a discussion Forum I get subscribed. How can I change this?\nHere again, this is not readily apparent.\nAdministraion : Edit Profile\nFrom Forum autosubscribe choose 'No:don't automatically subscribe me to forums'\n\nWhy should I use FireFox instead of Internet Explorer or Safari? What's the downside? Are there any special things that need to be done with a new FireFox installation?\nSafari won't display the HTML editing bar when in Edit or Update\nInternet Explorer often gives an error opening Word or Powerpoint files see [[Internet Explorer Information bar|http://www.earlham.edu/~markp/moodle_wiki/#%5B%5BInternet%20Explorer%20Information%20bar%5D%5D]]\nFor the whys and wherefores of Moodle with Firefox see [[Using Moodle with Firefox|http://www.earlham.edu/~markp/cms/user_guides/moodle_tips/moz_firefox.php]]\n\nI need 6 groups of 5 students for this course. How can I set this up, and how do groups work with Activities?\nAdnministration : Settings.\nAdd Groups (more to come).\n\nHow can I get rid of the 'blocks' I don't want?\nClick Turn editing on\nEach block can be moved about with the arrow buttons; use the ''X'' to delete it.\nIf you make a mistake the block can be found again: in 'blocks' block pull down Add to see a list of potential blocks to display.\n\nHow can I change my Moodle site from three columns to two columns and give more space to the Outline?\nDelete superfluous blocks, eg Search Forums, Recent Activity, Course Categories.\nMove other blocks to the left side of the page. Reorder to suit.\nThe 'blocks' block will always be present on the right side but when you click Student view it'll disappear.\n\nHow can I quickly contact a Reference Librarian or Mark when I'm in Moodle?\nUse the Messages system. Either:\nAdd Messages block to your course. Or,\nGo to your Profile and click the Messages button\n\nHow can I change the grading scale for an assignment?\nAdministration : Scales\nClick Add New Scale\ngive it a name\nlist the items from lowest to highest separated by commas. Eg D,C,B,A \nadd a description\nSave\n
Question: Why would I want to use the FAQList macro?\nAnswer: <<tiddler Answer1>>\n\nQuestion: What are the modes that the FAQList macro can run in?\nAnswer: <<tiddler Answer2>>\n\nQuestion: How should the faq tiddler be formatted?\nAnswer: <<tiddler Answer3>>\n
// //''Name:'' FAQ List\n// //''Version:'' 1.4 for TW 2.0.0\n// //''Author:'' AlanHecht\n// //''Type:'' [[Macro|Macros]]\n\n// //''Description:'' FAQ List lets you compile a list of Frequently Asked Questions and present them in a cascading style for the viewer. Each question is turned into a link that will toggle the view of the answer text. The list can be compiled either from all tiddlers containing a certain tag or from a single tiddler that contains all the needed questions and answers.\n\n// //''Syntax:''