Activities: Dataform

Maintained by Picture of Itamar Tzadok Itamar Tzadok
The Dataform module allows the course manager to design and construct an entry form from various input elements (text and rich text fields, urls, files, pictures, etc.) in a flexible layout. Users can then add information records to a collection, which can be viewed in various ways and searched for particular items.
805 sites
50 fans

The dataform module is a major enhancement of the standard Database activity module and is meant to offer all the functionality offered by the Database module and much more in a more flexible way.

The module allows the course manager to design and construct an entry form from various input elements (text and rich text fields, urls, files, pictures, etc.) in a flexible layout. Users can then add information records to a collection, which can be viewed in various ways and searched for particular items.

The dataform features include (among other things):

  • A multiple views system - allows the instructor to design several different views of the entries in a datform activity. Each view can show a designated subset of the entries in a designated layout.
  • Enhanced template tags - A new template tags system allows for exposing many more bits of information and makes it easy to add designated patterns in new field and view types.
  • Enhanced entry actions - Bulk edit, duplicate, delete, approve etc. Inline editing. Form editing options such as required fields (via Moodle forms).
  • New packaging system - based on Moodle backup/restore and allows for packaing a dataform instance and restoring into an existing instance.
  • Enhanced filtering system - allows the instructor to define different filters each of which can determine sort (including nested sort) and search options (various search criteria). Filters can be fixed to particular views or applied on the file from the activity main page (if included in the view template).

New view/field types include (among others):

  • Tabular view - a view type which allows for displaying the entries in a table. The design of the entries table has been simplified to drawing the desired table with optional header row and an entry row in the moodle editor.
  • Nanogong field - a field type for adding audio content to an entry via the nanogong applet.
  • Calculated field - a field type which can display a result of a simple calculation on one or two number fields in the entry.


This plugin is part of set Dataform.


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


Picture of Itamar Tzadok
Itamar Tzadok (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of Itamar Tzadok
    Thu, 1 Feb 2018, 10:02 PM
    I'm releasing 3.3.2 in a couple of hours.
  • Picture of remon saweris
    Mon, 5 Feb 2018, 7:18 PM
    After uprade to the new release 3.3.2 i got this error: Error reading from database
    Debug info: Unknown column 'e.type' in 'field list'
    SELECT, e.dataid, e.state, e.timecreated, e.timemodified, e.userid, e.groupid, e.type , AS uid ,u.picture,u.firstname,u.lastname,u.firstnamephonetic,u.lastnamephonetic,u.middlename,u.alternatename,u.imagealt,,u.idnumber,u.username FROM modl_dataform_entries e JOIN modl_user u ON = e.userid WHERE e.dataid = ? ORDER BY ASC LIMIT 0, 30
    [array (
    0 => '4',
    Error code: dmlreadexception
    ×Stack trace:
    • line 486 of \lib\dml\moodle_database.php: dml_read_exception thrown
    • line 1198 of \lib\dml\mysqli_native_moodle_database.php: call to moodle_database->query_end()
    • line 231 of \mod\dataform\classes\entry_manager.php: call to mysqli_native_moodle_database->get_records_sql()
    • line 142 of \mod\dataform\classes\entry_manager.php: call to mod_dataform_entry_manager->fetch_entries()
    • line 332 of \mod\dataform\classes\pluginbase\dataformview.php: call to mod_dataform_entry_manager->set_content()
    • line 315 of \mod\dataform\classes\pluginbase\dataformview.php: call to mod_dataform\pluginbase\dataformview->set_entries_content()
    • line 466 of \mod\dataform\classes\dataform.php: call to mod_dataform\pluginbase\dataformview->display()
    • line 71 of \mod\dataform\view.php: call to mod_dataform_dataform->display()
    what can i do? please
  • Picture of Will Pandle
    Thu, 1 Mar 2018, 5:00 AM
    Hi guys can I import a CSV like the database activity with this plugin? instead of entering one by one i just import a csv ?
  • Picture of Itamar Tzadok
    Sat, 3 Mar 2018, 1:56 AM
    Hi Will. You can create a csv view which would allow you to import entries in a csv format either by a web form or by file upload.
  • Picture of Jay Qadan
    Wed, 7 Mar 2018, 3:58 PM
    Hello, Can this Dataform be used for Calculated Fields. Meaning, I have students who are enrolled together but I need to give them tasks according to the numeric answers they provide, so I will store their answers in fields, but I want to show them a content that is numbers calculated based on each individual answer, so each get a different content in the next lessons or activity.
  • My Hero
    Thu, 29 Mar 2018, 10:55 AM
    Anyone test this on 3.4?
  • Picture of Daniel Hefley
    Tue, 12 Jun 2018, 5:22 AM
    Hi Itamar,

    I was hoping you could help me out. I'm working on a project and it's critically important that I get the 'Role' option to work in notifications. I have installed your latest version 3.3.2 on Moodle v.3.3.6+ and I am trying get the 'role' option in the notification rules to work. After assigning a user to the Role Notification Block, I cannot seem to get it to work. It works fine for 'Admin', 'Support Contact', and 'Author', but not 'Role'. Any suggestions you may have would be greatly appreciated. Thank you in advance.
  • Picture of Rachel Martin
    Fri, 13 Jul 2018, 9:20 PM
    Ok, I believe I have the fix for the following error:
    Warning: Parameter 1 to dataformfield_text_renderer::display_edit() expected to be a reference, value given in /data/www/ on line 68

    To resolve this, please change line 68 in entriesform.php from:
    all_user_func_array($func, array_merge(array($mform), $params));
    call_user_func_array($func, array_merge(array(&$mform), $params));
  • Picture of Rheman Pessek
    Tue, 7 Aug 2018, 10:38 PM
    Hi everyone.

    Great Plugin. I haven't seen the version for moodle 3.1.

    So I want to know if this plugin works under moodle 3.1 LTS.

    Best regard.
  • Picture of Sebastien Jaffredo
    Mon, 27 Aug 2018, 5:17 PM
    Hi Itamar

    Your plugin is extremely useful to us, but we're planning to upgrade to 3.5 in the coming months. Will there be a compatible version ?


  • Picture of scott hallman
    Tue, 25 Sep 2018, 9:31 AM
    Hi Itamar
    we are currently using the database activity for student medical logbooks. Currently there are 4 sections that are all visible. But they only fill out one depending on what they have just seen. Is it possible to to use one answer to trigger the showing of the next part of the logbook. So they choose. O&G labour and then up pops a O&G labour section. Students comments are they are sick of scrolling through all sections when they only need to fill out one. Cheers Scott
  • Picture of Itamar Tzadok
    Tue, 25 Sep 2018, 9:18 PM
    @scott are you using the database activity or dataform activity? Send me a direct email. It'll be easier to discuss.
  • Picture of Gordon Henning
    Mon, 8 Oct 2018, 10:11 PM
    Hi Itamar

    Will you be developing mobile app compatibility for this plugin?

  • Picture of scott hallman
    Tue, 9 Oct 2018, 10:10 AM
    very simple question but can't seem to track down the answer here . Want to display the checkboxes horizontally and not vertically. how is this done?
  • Picture of Francis Vendrell
    Tue, 27 Nov 2018, 10:49 PM
    Is dataform comptatible with PHP 7.2 ?
1 2 3 4 5 6 7 8
Please login to post comments