Assignment submissions : Mahara Assignment Submission

Maintained by Catalyst logoAaron Wells, Picture of Tony BoxTony Box, Picture of Ruslan KabalinRuslan Kabalin, Picture of Catalyst ITCatalyst IT
Allows grading of Mahara portfolio pages & collections in Moodle.
521 sites
22 fans
Current versions available: 5

Mahara Assignment Submission Plugin

This repository houses an updated Mahara assignment submission plugin.


  • XML-RPC integration with a Mahara installation
  • The student selects one of their Mahara portfolio pages or collections as a Moodle assignment submission
  • If multiple submissions are allowed, it releases the previously selected submission
  • Abides by Moodle assignments config options
  • Popups for quickly previewing submissions (no windows... no tabs)
  • Mahara pages can be made to lock upon submission, and unlock upon grading. Or stay permanently locked. Or not lock at all.
  • Unlock-on-grading functionality also supports marking workflow. Submitted pages will unlock when the workflow state changes to "Released".



  1. Make sure that your Moodle and Mahara versions are up to date.
  2. Connect your Moodle and Mahara sites via MNet. (For detailed instructions see the Mahara wiki).
  3. If you are using Mahara 1.9 or earlier, apply the included patch file "mahara-patch.txt" to your Mahara site.
  4. If you are using Moodle 2.6, apply the included patch file "moodle-patch.txt" to your Moodle site.
  5. If you are using Moodle 2.5 or earlier, install the Mahara local plugin now.
  6. Install this plugin the normal way: by using the Moodle web installer, or by extracting the plugin archive to {Moodle_Root}/mod/assign/submission/mahara and going to the admin "Notifications" page.
  7. Once the plugin is installed, go to "Site administration -> Networking -> Manage Peers". Select the peer record for your Mahara site, click on the "Services" tab, and subscribe to the "Assign Submission Mahara services" service.
  8. Open the "Site admin" -> "Plugins" -> "Activity modules" -> "Assignment" -> "Submission plugins" -> "Mahara portfolio" and configure default locking behavior.
  9. Now you may create your first Mahara assignment.

Upgrading (Moodle 2.6 or later)

There were previously two different forks of the Mahara assignment submission plugin for Moodle, one developed by the University of Portland, and another by Lancaster University. This plugin is designed to allow you to upgrade from either. It will automatically detect which version of the plugin you have installed, and migrate it accordingly. So all you need to do is:

  1. Remove the current contents of your mod/assign/submission/mahara directory.
  2. Follow the steps under "Installation" above. (This will trigger the database upgrade script.)
  3. If you are using Moodle 2.7 or later and you have previously installed the Mahara assignment feedback plugin (mod/assign/feedback/mahara), the upgrade will prompt you to uninstall it. You will then need to remove its directory.
  4. If you have also installed the Mahara local plugin (local/mahara), you should now uninstall it and remove its directory.

NOTE: If you were using the Mahara assignment feedback plugin before, you need to upgrade this assignment submission plugin before uninstalling the assignment feedback plugin. This is to allow the per-assignment locking settings from the feedback plugin to be migrated into the replacement system in the submission plugin.


  1. Go into a Moodle course as a teacher.
  2. An an "Assignment" activity to the course.
  3. Under the assignment's "Submission types" section, you should see an option for "Mahara portfolio". Tick this box, and any others you also want the student to include in their submission.
  4. Use the "Lock submitted pages" menu to choose whether you want submitted Mahara pages & collections to be locked from editing in Mahara. This feature is useful if you wish to prevent students to edit the page after the submission deadline.
  5. Once the assignment is set up, a student in the course will see a screen to let them select one of their Mahara portfolio pages or collections as part of their assignment submission.
  6. As the teacher, when you view the assignment submission via the gradebook, you will see a link that will allow you to view the submitted Mahara page or collection. (The plugin will automatically generate the access rights in Mahara).
  7. See the Readme for more details.

Feedback plugin (Moodle 2.6 only)

In Moodle 2.6, if you set the plugin to lock submitted pages & collections, they will remain locked in Mahara permanently. If you wish them to become unlocked once they are graded, you should also install the Mahara assignment feedback plugin, and activate it in your assignment.


Please use plugin repository bug tracker for reporting issues.


The original Moodle 1.9 version of this plugin was funded through a grant from the New Hampshire Department of Education to a collaborative group of the following New Hampshire school districts:
  • Exeter Region Cooperative
  • Windham
  • Oyster River
  • Farmington
  • Newmarket
  • Timberlane School District

The upgrade to Moodle 2.0 and 2.1 was completed by Aaron Wells at Catalyst and supported by NetSpot and Pukunui Technology.

The upgrade to the Moodle 2.3 mod/assign plugin was developed by:

Subsequent updates to the plugin for Moodle 2.6 and 2.7 were implemented by Aaron Wells at Catalyst with funding from:

The upgrade to use events for unlocking behaviour and supporting grading workflow was developed by Lancaster University.


This plugin is part of set Mahara assignment.

Potential privacy issues

Mahara pages and collections submitted by the student will be visible to the teacher (or any Moodle user who can view the gradebook and grade students), regardless of their privacy settings in Mahara. The plugin generates a special "secret URL" for this purpose, which it links to in the Moodle gradebook. This acts like any other Mahara "secret URL", except that the student cannot delete it, and it will only work for users who are logged in to Mahara via MNet. If the page is released after grading, the "secret URL" will be disabled at that time.


Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5


Please login to view contributors details and/or to contact them

Comments RSS


  • Anthony Borrow
    Sun, Aug 25, 2013, 7:50 AM
    Tony - Many thanks for sharing these plugins for integration with Mahara with the Moodle Community. I noticed that there were a couple of validation warnings which should be easy to fix up in the version.php. Specifically,

    Maturity information ($plugin->maturity) not found in version.php
    Release name ($plugin->release) not found in version.php

    Also in the version.php, I like to encourage folks to explicitly declare the GPL license. More information can be found in

    Also, I try to encourage (thought it is not an absolute requirement) for folks to use the Moodle naming convention for the repositories. The ideal name for the repository would be moodle-assignfeedback_mahara. This makes life simpler for Moodle site admins who maintain their sites using Git.

    I am going to approve this but would ask that you tidy up the version.php next time you get a chance. It would also be good if we could see a screenshot.

    I did not actually test the functionality of this plugin as I do not have a test instance of Mahara up and running at the moment but I trust Netspot and Pukunui have done good work on this plugin.

    I have created a set called Mahara assignment - - to group the Mahara assignment submission, assignment feedback and local plugins together.

    Peace - Anthony
  • Picture of Roland Sherwood
    Wed, Sep 25, 2013, 4:28 AM
    Many thanks for sharing these plugins with the community (and, more importantly, for producing them; I'm sure I'not alone in saying it's been a long wait for a Moodle 2.3+ version to come along!).

    Unfortunately, we're seeing the following error whenever a student tries to submit a page (btw, all 3 plugins install fine, and all other Mahoodle functionality is working as expected e.g SSO, exporting of content, etc.), so any advice you might be able to offer would be very much appreciated:

    The following RPC failures: 7:User with ID 257 attempted to call unauthorised method mod/mahara/rpclib.php/get_views_for_user on host http://mahara.**********

    More information about this error

    Debug info:
    Error code: err_mnetclient
    Stack trace:
    line 476 of /lib/setuplib.php: moodle_exception thrown
    line 360 of /mod/assign/submission/mahara/locallib.php: call to print_error()
    line 219 of /local/mahara/optionalib.php: call to {closure}()
    line ? of unknownfile: call to Model_Either->fold()
    line 282 of /local/mahara/optionalib.php: call to call_user_func_array()
    line 366 of /mod/assign/submission/mahara/locallib.php: call to Either_Projection->__call()
    line 366 of /mod/assign/submission/mahara/locallib.php: call to Right_Projection->fold()
    line 4298 of /mod/assign/locallib.php: call to assign_submission_mahara->get_form_elements_for_user()
    line 4380 of /mod/assign/locallib.php: call to assign->add_plugin_submission_elements()
    line 49 of /mod/assign/submission_form.php: call to assign->add_submission_form_elements()
    line 191 of /lib/formslib.php: call to mod_assign_submission_form->definition()
    line 2650 of /mod/assign/locallib.php: call to moodleform->moodleform()
    line 405 of /mod/assign/locallib.php: call to assign->view_edit_submission_page()
    line 53 of /mod/assign/view.php: call to assign->view()

    This is under Moodle 2.4.5, linked to a fresh Mahara 1.7.2 install.

    Again, I'd be very grateful for any help you could offer.
  • Picture of Roland Sherwood
    Wed, Sep 25, 2013, 11:13 PM
    Hi. Please ignore the above; I completely forgot the local plugin also adds a new set of MNET-related publish/subscribe settings on our Mahara peer's services page. With subscribe ticked, a list of the user's Mahara pages is now visible on the assignment submission page.

    However, we've hit another snag; for students who've created only a single page on Mahara, selecting that page and then clicking the save changes button results in a warning message which states 'Nothing was selected' (above which there's also the outline of what looks like another warning, although it contains no visible text). Please see the following example:

    Interestingly, on exiting the page and re-entering the assignment, the status of the assignment is then shown as draft, the edit and submit assignment buttons are visible - but no link to the selected page is present where you'd expect it to be:

    And after submitting nothing (in terms of a link to the selected page) is then shown to either the student or tutor:

    Where a student has created more than 1 page, clicking the save changes button then results in the following error:

    Notice: Undefined variable: release_previous in /var/www/moodle/mod/assign/submission/mahara/locallib.php on line 510 Fatal error: Function name must be a string in /var/www/moodle/local/mahara/optionalib.php on line 78

    Reentering the assignment this time does show a selected page link:

    However, if the student then tries to edit their submission (i.e. select a page different from the one chosen previously), after clicking save changes and being brought back to the submissions summary page nothing appears to have changed. The selected page shown will be the same as before. You can see this in action here:

    Any suggestions or help would be very much appreciated - otherwise I think we'll have to revert back to the 2.2 plugins.

  • Picture of Tony Box
    Thu, Sep 26, 2013, 12:47 AM
    Hi Roland,

    Thanks a bunch for the detailed bug report. Would you please add it to the bug tracker on GitHub?

    You can find the link to the bug tracker up above, within the "Useful Links" section which is below the description of the plugin.

  • Picture of Bei Chapman
    Thu, Jul 17, 2014, 3:58 AM
    Hi Tony,

    I am very new to Mahara thing. Today I installed these 3 Mahara plugins (assignment submission, feedback and local) into my moodle dev environment, which is using Moodle 2.6.2 and PHP 5.3.3. I haven't studied and touched Mahara instance on a separate site.

    However, when I go to course, and try to add an assignment, I get the following error:
    "QuickForm Error: nonexistent html element Element 'assignsubmission_mahara_enabled' does not exist in HTML_QuickForm::removeElement()"

    Basically the assignment tool is not usable now.

    Any ideas what I did wrong here?

    Thanks a lot.
  • Paul
    Fri, Dec 19, 2014, 4:08 AM
    Will this tool work with Moodle 2.7 and 2.8? Further, does it work with Mahara 1.10?
  • Picture of Tony Box
    Fri, Dec 19, 2014, 7:53 AM
    Hi Paul,

    This version of the plugin will no longer be supported and is going to be replaced by a new version that will work with moodle 2.6+. The new version is going to be maintained by the Mahara team themselves. An added bonus is that the local plugin will no longer be needed.

    If you check back sometime next week or possibly early January, the Mahara assignment submission and feedback plugins will both be updated with the newest versions.

Please login to post comments