<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Joeythibault</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Joeythibault"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/Special:Contributions/Joeythibault"/>
	<updated>2026-09-13T14:18:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Plagiarism_plugins&amp;diff=64267</id>
		<title>Plagiarism plugins</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Plagiarism_plugins&amp;diff=64267"/>
		<updated>2024-05-28T15:07:58Z</updated>

		<summary type="html">&lt;p&gt;Joeythibault: added new plugin based on the API&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The Plagiarism API is a core set of functions that all Moodle code can use to send user submitted content to Plagiarism Prevention systems&lt;br /&gt;
&lt;br /&gt;
A typical user story:&lt;br /&gt;
# When Plagiarism tools are enabled (in site administration/advanced features and also check site administration/plugins/plagiarism/manage plagiarism plugins), every module that allows it will have a group of settings added to allow management of sending the user content to a plagiarism service.&lt;br /&gt;
# A user enters some content/submits a file inside a module that a teacher/Admin has configured the tool to be used.&lt;br /&gt;
# An Event is triggered which contains details about the user, module and submission they have made&lt;br /&gt;
# Event handlers in the Plagiarism plugin are triggered and process anything required.&lt;br /&gt;
# Hooks for displaying information returned from the Plagiarism tools to both the user and teacher (controlled by the plugin)&lt;br /&gt;
===Supported Modules ===&lt;br /&gt;
The following modules are the only ones who have currently implemented support for the plagiarism api&lt;br /&gt;
* Assignment 2.2 -&lt;br /&gt;
** Single Upload Assignment&lt;br /&gt;
** Advanced Assignment&lt;br /&gt;
** Online Text Assignment&lt;br /&gt;
* Assignment&lt;br /&gt;
* Forum&lt;br /&gt;
* Workshop&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
* Urkund https://github.com/danmarsden/moodle-plagiarism_urkund&lt;br /&gt;
* Turnitin https://github.com/turnitin/moodle-plagiarism_turnitin&lt;br /&gt;
* Originality.AI https://moodle.org/plugins/plagiarism_origai &lt;br /&gt;
* PlagScan https://api.plagscan.com/plagscan_2015071501.zip&lt;br /&gt;
&lt;br /&gt;
==Template==&lt;br /&gt;
Use this git branch as a base for your new plugin: https://github.com/danmarsden/moodle-plagiarism_new&lt;br /&gt;
(replace all instances of &amp;quot;new&amp;quot; with the folder name of your new plugin)&lt;br /&gt;
==Naming conventions==&lt;br /&gt;
Following Naming conventions should be kept in mind while writing a plagiarism plugin:-&lt;br /&gt;
&lt;br /&gt;
*Folder name should be same as pluginname&lt;br /&gt;
*Name of the extended class should be plagiarism_plugin_pluginname&lt;br /&gt;
*Each plugin must define the string &amp;quot;pluginname&amp;quot; in the language files.&lt;br /&gt;
&lt;br /&gt;
== Interfacing to APIs  ==&lt;br /&gt;
&lt;br /&gt;
======cron======&lt;br /&gt;
This function was deprecated in 3.1, Moodle 2.7 added the new [[Task_API]] which should now be used instead. in versions prior to 3.1 this function must exist within your local class but can be empty if you have migrated to using the newer [[Task_API]]&lt;br /&gt;
&lt;br /&gt;
======get_form_elements_module======&lt;br /&gt;
This function allows the addition of any Plagiarism specific settings to an mform inside a module settings page.&lt;br /&gt;
&lt;br /&gt;
======save_form_elements======&lt;br /&gt;
This function is triggered when a teacher saves the settings on a module page to allows storing of any Plagiarism specific settings.&lt;br /&gt;
&lt;br /&gt;
======get_links======&lt;br /&gt;
This function provides a hook to allow information to be displayed beside a users submission - for example the grading page for teachers to display an originality score/link to more information or to allow a student to see the same information.&lt;br /&gt;
&lt;br /&gt;
======print_disclosure======&lt;br /&gt;
This function allows the plugin to display a message to users inside the submission page to let them know that the submission will be passed to a plagiarism prevention system.&lt;br /&gt;
&lt;br /&gt;
======update_status======&lt;br /&gt;
This function is called on pages that display a full list of users eg grading pages to allow the status of any submissions to be checked. This function is called every time the report page is loaded so it should perform appropriate caching.&lt;br /&gt;
&lt;br /&gt;
===Event Triggers===&lt;br /&gt;
Modules that support the Plagiarism API should have appropriate event triggers when a user has updated text that requires processing by the Plagiarism API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[How_to_add_support_for_a_Plagiarism_Plugin_to_my_activity_module]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Joeythibault</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=GSoC_with_Moodle&amp;diff=48526</id>
		<title>GSoC with Moodle</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=GSoC_with_Moodle&amp;diff=48526"/>
		<updated>2015-09-22T11:23:29Z</updated>

		<summary type="html">&lt;p&gt;Joeythibault: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GSOC}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Moodle has been involved in Google&#039;s [http://code.google.com/soc Summer of Code] program since 2006.  This program pays students to work on open source software products for about three months (over the northern hemisphere summer), mentored by existing developers of those products.  The work usually adds a new feature or a new module.  The intention is that this new code improves the software, as well as helping new programmers to become familiar with developing in an open source community.&lt;br /&gt;
&lt;br /&gt;
==Applying to be a GSoC student with Moodle==&lt;br /&gt;
&lt;br /&gt;
Students apply for projects via the GSOC site. The project applications are then passed on to Moodle are evaluated and selected by the full group of Moodle mentors. The best proposals are often from students who take the time to interact and discuss their ideas before submitting a proposal.&lt;br /&gt;
&lt;br /&gt;
If you are a student older than 18 years and wish to participate in the GSoC with Moodle as the target project:&lt;br /&gt;
&lt;br /&gt;
# Check out what&#039;s involved in the [http://code.google.com/soc/ Google Summer of Code] (which can change from year to year).&lt;br /&gt;
# Look at the list of [[Projects_for_new_developers|projects for new developers]], or think up one of your own.&lt;br /&gt;
# Find out [[Applying_to_work_with_Moodle_for_GSOC|how to apply]] to complete a GSoC project with Moodle.&lt;br /&gt;
&lt;br /&gt;
==Matching students and mentors==&lt;br /&gt;
&lt;br /&gt;
Mentors are regular Moodle developers who volunteer to help guide and support students in the program.  The final decision on who can be a mentor is made by [[:en:Martin Dougiamas|Martin Dougiamas]]. Successful mentoring is quite a commitment, so this task should not be taken on lightly.&lt;br /&gt;
&lt;br /&gt;
==Development process==&lt;br /&gt;
&lt;br /&gt;
Once students and mentors have been matched with projects within Moodle, our process runs something like this:&lt;br /&gt;
&lt;br /&gt;
; Create a project specification page&lt;br /&gt;
: A page will be created in [[Main_Page|Moodle Dev Docs]] (this wiki) for each project when they are selected. On the wiki page students should start developing a detailed specification with feedback from mentors.  The page should include database table designs, GUI mockups, class structures and other implementation details.  The document should be clear and logically organised.&lt;br /&gt;
&lt;br /&gt;
; Seek and utilise community feedback&lt;br /&gt;
: Students should introduce the project in the appropriate forums on [http://moodle.org/course/view.php?id=5 Using Moodle] to help draw attention to it and to stimulate some discussion around their development.  The more feedback we have the better, especially if it includes a wide variety of users (developers, teachers, students, etc).  Students should be responsive in those forums to build a dialogue with the community.&lt;br /&gt;
&lt;br /&gt;
; Evolve the specification&lt;br /&gt;
: Students and mentors should use the feedback to evolve the specification into something that all users are happy with. Sometimes it&#039;s worth doing more research to find the &amp;quot;best&amp;quot; way to do something without adding Yet Another Option.&lt;br /&gt;
&lt;br /&gt;
; Set up tasks in the [http://tracker.moodle.org Moodle Tracker]&lt;br /&gt;
: Once the specification has settled down, it&#039;s time to start work. The mentor should create a new issue in the [http://tracker.moodle.org Moodle Tracker] (in the CONTRIB project) and assign it to the student (after they added to the &amp;quot;contrib-developer&amp;quot; Tracker group). Students should add sub-tasks in roughly chronological order for different parts of the project. This helps students keep track of where they are, but also allows the community to &amp;quot;watch you&amp;quot; develop and to help you where they can.&lt;br /&gt;
&lt;br /&gt;
; Develop in Git and link to tracker&lt;br /&gt;
: Students can develop their code in Git repository. When projects are producing an independent plugin, a single repository can be used. For more complex integrations involving changes to Moodle core, [[User:Sam_Hemelryk/My_Moodle_Git_workflow|working with a branch of the Moodle repository]] will be necessary. Git commits will be related to tracker issues and should note the issue number at the beginning of the commit message. If you are new to Git development, have a look at this [https://docs.moodle.org/dev/Git_for_developers documentation].&lt;br /&gt;
&lt;br /&gt;
; Advertise milestones in the forums&lt;br /&gt;
: Major milestones should be posted in the forums, to maintain community interest and draw in new testers and more feedback.&lt;br /&gt;
&lt;br /&gt;
; Finish off projects&lt;br /&gt;
: Once the time is up, finished projects need to be assessed; Google need to be given access to the result of the project, as per their instructions.  Hopefully the code is also good enough to be shared in the [http://moodle.org/plugins Plugins Directory] or possibly go into the next Moodle release, although neither is guaranteed.&lt;br /&gt;
&lt;br /&gt;
== 2015 ==&lt;br /&gt;
&lt;br /&gt;
Overview: [[GSOC/2015]] | [https://www.google-melange.com/gsoc/homepage/google/gsoc2015 Google Summer of Code 2015 site] | [https://moodle.org/auth/mnet/jump.php?hostwwwroot=http://dev.moodle.org&amp;amp;wantsurl=/course/view.php?id=18 GSOC 2015 course]&lt;br /&gt;
# [https://docs.moodle.org/dev/GSOC/2015 Meta Enrollment Plugin with Multiple Courses Selection]&lt;br /&gt;
# [https://docs.moodle.org/dev/GSOC/2015 Moorsp Plagiarism API Test Plugin]&lt;br /&gt;
# [https://docs.moodle.org/dev/GSOC/2015 SCORM 1.2 player in the Moodle app]&lt;br /&gt;
&lt;br /&gt;
== 2014 ==&lt;br /&gt;
&lt;br /&gt;
Overview: [[GSOC/2014]]&lt;br /&gt;
# New question types&lt;br /&gt;
# SCORM improvements&lt;br /&gt;
&lt;br /&gt;
==2013==&lt;br /&gt;
&lt;br /&gt;
Overview: [[GSOC/2013]]&lt;br /&gt;
# [[Self-assessment activity using the question bank]]&lt;br /&gt;
# [[SCORM player rewrite]]&lt;br /&gt;
# [[Global search]]&lt;br /&gt;
# [[Course search]]&lt;br /&gt;
# [[Pronunciation evaluation question type]]&lt;br /&gt;
# [[A Moodle plugin for determining Quiz authorship]]&lt;br /&gt;
# [[Portfolio plugin for Evernote]]&lt;br /&gt;
&lt;br /&gt;
==2012==&lt;br /&gt;
&lt;br /&gt;
Overview: [[GSOC/2012]]&lt;br /&gt;
# [[Improve SCORM 2004 Support]]&lt;br /&gt;
# [[Plagiarism API improvements]]&lt;br /&gt;
# [[Email reminders for calendar events]]&lt;br /&gt;
# [[Audio/Video Capture repository plugin]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.google-melange.com/gsoc/homepage/google/gsoc2012 Google Summer of Code 2012]&lt;br /&gt;
&lt;br /&gt;
==2011==&lt;br /&gt;
&lt;br /&gt;
Overview: [[GSOC/2011]]&lt;br /&gt;
# [[SCORM reporting improvements]]&lt;br /&gt;
# [[Moodle flavours]]&lt;br /&gt;
# [[SCORM Test Harness]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.google-melange.com/gsoc/program/home/google/gsoc2011 Google Summer of Code 2011]&lt;br /&gt;
&lt;br /&gt;
==2009==&lt;br /&gt;
&lt;br /&gt;
Overview and results: [[GSOC/2009]]&lt;br /&gt;
&lt;br /&gt;
# [[Record audio repository plugin|Record audio repository plugin]]&lt;br /&gt;
# [[Timeline course format|Timeline course format]]&lt;br /&gt;
# [[Usability/Improve Moodle User Experience Consistency|Improve Moodle user experience consistency]]&lt;br /&gt;
# [[Paint tool|What you paint is what you get]]&lt;br /&gt;
# [[Google Gears integration|Google Gears integration]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.google-melange.com/gsoc/program/home/google/gsoc2009 Google Summer of Code 2009]&lt;br /&gt;
&lt;br /&gt;
==2008==&lt;br /&gt;
&lt;br /&gt;
Overview and results: [[GSOC/2008]]&lt;br /&gt;
&lt;br /&gt;
#[[Student projects/Usability issues|Usability issues]]&lt;br /&gt;
#[[Student projects/SQLite|SQLite]]&lt;br /&gt;
#[[Student projects/Animated grade statistics report|Animated grade statistics report]]&lt;br /&gt;
#[[Student projects/Language editing interface|Language editing interface]]&lt;br /&gt;
#[[Student projects/Feed aggregation library|Feed aggregation library]]&lt;br /&gt;
#[[Student projects/Customisable theme|Customisable theme]]&lt;br /&gt;
#[[Student projects/Blog improvements|Blog improvements]]&lt;br /&gt;
#[[Student projects/Further messaging improvements|Further messaging improvements]]&lt;br /&gt;
#[[Student projects/Automatic accessibility checking|Automatic accessibility checking]]&lt;br /&gt;
#[[Progress_tracking|Progress tracking]]&lt;br /&gt;
#[[Student projects/Secure RSS feeds|Secure RSS feeds]]&lt;br /&gt;
#[[Student projects/Moodle IDE|Moodle IDE]]&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/soc/2008/ Google Summer of Code 2008]&lt;br /&gt;
&lt;br /&gt;
==2007==&lt;br /&gt;
&lt;br /&gt;
Overview and results: [[GSOC/2007]]&lt;br /&gt;
&lt;br /&gt;
#[[Student projects/New question types|New question types]]&lt;br /&gt;
#[[Student projects/Enterprise-level improvements|Enterprise-level improvements]]&lt;br /&gt;
#[[Student projects/Chat revamp|Chat revamp]]&lt;br /&gt;
#[[Student projects/Messaging improvements|Messaging improvements]]&lt;br /&gt;
#[[Student projects/Automated grading of programs|Automated grading of programs]]&lt;br /&gt;
#[[Student projects/User Management Improvements|User Management Improvements]]&lt;br /&gt;
#[[Student projects/Email interface|Email interface]]&lt;br /&gt;
#[[Student projects/Social Networking features|Social Networking features]]&lt;br /&gt;
#[[Voice|Voice]]&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/soc/2007/ Google Summer of Code 2007]&lt;br /&gt;
&lt;br /&gt;
==2006==&lt;br /&gt;
&lt;br /&gt;
#[[Student projects/Presets for Database module|Presets for Database module project notes]]&lt;br /&gt;
#[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]&lt;br /&gt;
#[[Student projects/AJAX course format|AJAX course format project notes]]&lt;br /&gt;
#[[Student projects/Admin page cleanup|Admin page cleanup project notes]]&lt;br /&gt;
#[[Student projects/Global search|Global search project notes]]&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/soc/2006/ Google Summer of Code 2006]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Projects for new developers]]&lt;/div&gt;</summary>
		<author><name>Joeythibault</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Talk:Main_Page&amp;diff=47533</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Talk:Main_Page&amp;diff=47533"/>
		<updated>2015-03-24T13:05:15Z</updated>

		<summary type="html">&lt;p&gt;Joeythibault: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi,&lt;br /&gt;
Please edit the side Nav block in Moodle 2.0 docs so that the link goes to https://docs.moodle.org/dev/Developer_documentation, not this page.   Alternatively, figure out which is the main page, or put a redirect here :) Thanks --[[User:chris collman|chris collman]] 19:46, 3 October 2011 (WST)&lt;br /&gt;
&lt;br /&gt;
suggest adding the development calendar as a link on this page: https://www.google.com/calendar/embed?src=moodle.com_p4c2oe7hsb77ltaro5qtihb5d4@group.calendar.google.com%C2%A0&lt;br /&gt;
&lt;br /&gt;
== Wiki/Files ==&lt;br /&gt;
&lt;br /&gt;
Good morning, on one of my works in progress with the moodle environment must know where that is in the database of Moodle saves some reference people participating in a Wiki and also viewing the files to download. Thank you.&lt;/div&gt;</summary>
		<author><name>Joeythibault</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=States_of_a_quiz_attempt&amp;diff=46085</id>
		<title>States of a quiz attempt</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=States_of_a_quiz_attempt&amp;diff=46085"/>
		<updated>2014-08-04T13:16:20Z</updated>

		<summary type="html">&lt;p&gt;Joeythibault: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page relates to the problem of the following scenario:&lt;br /&gt;
# Student starts an attempt at a timed quiz.&lt;br /&gt;
# Student logs out and goes away.&lt;br /&gt;
# Quiz time limit expires.&lt;br /&gt;
# Student (or teacher) comes back. They now cannot continue (or review, or complete) the quiz attempt. They are stuck.&lt;br /&gt;
::That&#039;s not what actually happens. Actually on 4 student see a button to continue his attempt. He press it and goes to the attempt, which is instantly submitted, and he get returned to quiz intro. He could then start a new attempt ... if there is no time delay between attempts. If there is he is stuck.--[[User:Oleg Sychev|Oleg Sychev]] 19:55, 24 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Different people have different desires for how this is handled. The aim of this page is to collect together all the things that different people might want, so we can try to design a solution that makes everyone happy.&lt;br /&gt;
&lt;br /&gt;
Currently this page is just a random dump of things Tim remembered, please feel free to add to, or edit it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What currently happens==&lt;br /&gt;
&lt;br /&gt;
===The states a quiz attempt can be in===&lt;br /&gt;
&lt;br /&gt;
* {before the attempt is started}. Not sure if this really exists. Before the attempt has been started, it does not exist!&lt;br /&gt;
* During the quiz attempt (Quiz attempt open). This is distinguished by $attempt-&amp;gt;timefinish being 0.&lt;br /&gt;
* After the attempt is finished. This is distinguished by $attempt-&amp;gt;timefinish being non-zero.&lt;br /&gt;
&lt;br /&gt;
===Behaviour===&lt;br /&gt;
&lt;br /&gt;
* A user can have at most one quiz attempt open at any time.&lt;br /&gt;
* If the user is attempting the quiz when the time expires, and if they have JavaScript on, then the quiz is automatically submitted for them.&lt;br /&gt;
* If the student is not attempting the quiz when the time expires, then their attempt is not submitted, and neither the student nor the teacher can submit it.&lt;br /&gt;
  Actually the attempt will be graded 0, but individual questions may be regraded if page was saved. &lt;br /&gt;
  Teachers could use it to calculate attempt grade manually, but they really don&#039;t like it.--[[User:Oleg Sychev|Oleg Sychev]] 19:55, 24 November 2009 (UTC)&lt;br /&gt;
* Time can expire either because of $quiz-&amp;gt;timelimit, or $quiz-&amp;gt;timeclose.&lt;br /&gt;
* There is a capability mod/quiz:ingoretimelimit for accessibility reasons. This causes $quiz-&amp;gt;timelimit, but not $quiz-&amp;gt;timeclose, to be ignored.&lt;br /&gt;
* After the attempt is submitted, students may, or may not be able to review, depending on the quiz review settings and whether $quiz-&amp;gt;timeclose has passed.&lt;br /&gt;
* In addition to the only one open attempt rule, there may also be a delay between the end of one quiz attempt and the start of the next ($quiz-&amp;gt;delay1/2).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What we would like to happen==&lt;br /&gt;
&lt;br /&gt;
===The states we need to distinguish===&lt;br /&gt;
&lt;br /&gt;
* {before the attempt is started}&lt;br /&gt;
* Quiz attempt open, time has not expired.&lt;br /&gt;
* Quiz attempt open, time has expired.&lt;br /&gt;
* Quiz attempt submitted, some questions need manual grading.&lt;br /&gt;
* Quiz attempt submitted, all questions graded.&lt;br /&gt;
  Actually these states makes quiz time delay more complicated. &lt;br /&gt;
  The question is what state it should use as an end of previous attempt? &lt;br /&gt;
  It should be submission for quizzes without time limit.&lt;br /&gt;
  But for quizzes with time limit it should be min(time expiration,  submission) otherwise we still may get &lt;br /&gt;
  problem with time delay mentioned above.--[[User:Oleg Sychev|Oleg Sychev]] 19:55, 24 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Might we also want/need to distinguish the states &#039;results not visible yet&#039;, and &#039;results released to student&#039;, for a submitted quiz. These two are orthogonal to whether any questions need manual grading, so that actually leads to four sub-states under submitted.&lt;br /&gt;
&lt;br /&gt;
===Behaviour===&lt;br /&gt;
&lt;br /&gt;
* Teacher should have the option to submit an attempt when the student forgot.&lt;br /&gt;
* Student should have the option to submit an attempt late (but not answer any more questions) when they forgot. Probably the best way to do this is that after time has expired, if the student is still allowed to Submit all and finish, they can only go to the attempt summary page (in Moodle 2.0) and click the submit button.&lt;br /&gt;
* Some people like the current behaviour: the student must submit on time, and if they don&#039;t they don&#039;t get a grade, and it is tough luck. Therefore, if students are allowed to submit the quiz late, there should be a time limit for how much extra time they have in which to do so (which can be anything from 0 to infinity).&lt;br /&gt;
* There should be an option which, at the moment when time expires on an attempt, send an email to the student reminding them that they have not submitted it, and explaining to them how to do so, and how long in which they have to do so.&lt;br /&gt;
* Alternatively, the quiz may have an option set to automatically submit any quiz attempt the moment time has expired.&lt;br /&gt;
* May want an option where, if the student is allowed to submit late, we do process any updated answers, but a penalty is applied to their score.&lt;br /&gt;
* May want an option for a teacher to un-submit a quiz attempt, for those situations where a student has (claims to have) clicked Submit all and Finish too early, by mistake.&lt;br /&gt;
* Teachers can delete any quiz attempt (open or submitted) at any time (&#039;&#039;this has been implemented for a long time&#039;&#039;)&lt;br /&gt;
* Giving teacher the ability to decide, that particular student in particular attempt could bypass time delay (without deleting previous attempt) will resolve a great deal of the problems. (&#039;&#039;this is implemented in Moodle 2.0&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other ideas===&lt;br /&gt;
&lt;br /&gt;
* Some people may want to count un-submitted attempts if quiz has a limit on a number of attempts, other may want to exclude them.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039; This is not really possible, given the assumption the quiz has that there is at most one open attempt, which can either be submitted or deleted, and once it is submitted, it counts. I also don&#039;t really see the point of this. If you are being that flexible, why have a limit on the number of attempts at all? &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* May want an option for a teacher to extend time limit for particular attempt (if, for example, computer hangs during the attempt, or the student press submit near the finish and wait more than 60 seconds)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039; This is, as opposed to extending it for all attempts for a particular student. This would be a lot of work to implement, and only occasionally useful. For now, I think it is sufficient to have the option to change the time limit for one student. You can always extend it until they have submitted that one attempt, and then change it back. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* (I don&#039;t know whether it really possible, but it&#039;s a very good option to have) Save current attempt state with responses in a browser window if submitting request on server failed. Sometimes server go down during important attempts (exams and so no), that&#039;s quite bad for timed quizzes. At least we could send AJAX request to the server before submitting to verify it still working (should work in couple with teacher-defined time limit extension mentioned above to prevent abuse).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039; This is not possible. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* ... please add more ideas here ...&lt;br /&gt;
&lt;br /&gt;
===Changes to the code===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note that this builds on top of Moodle 2.0. If you don&#039;t know what things like the summary page are, or how the quiz reports work in the latest version, this may not make any sense.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* New capability mod/quiz:submitlateattempt - can apply to students, and/or teachers, but with slightly different meaning. (Teacher here is probably defined by mod/quiz:grade, or mod/quiz:viewreports. Or perhaps it is clearly to have separate capabilities mod/quiz:submitmylateattempt and mod/quiz:submitanylateattempt.) Or perhaps rather than a capability, a quiz setting saying how much extra time students have after their attempt becomes overdue, to go in and submit it.&lt;br /&gt;
&lt;br /&gt;
* If a student has mod/quiz:submitlateattempt, and/or if they are still within the extra time allowed, then they can get at overdue quiz attempts, but they can only go to the summary page in order to click the Submit all and finish button.&lt;br /&gt;
&lt;br /&gt;
* For teachers with mod/quiz:submitlateattempt, there will be a new button in the quiz reports (next to delete attempts and regrade attempts) to submit any overdue quiz attempts that have been selected using the check-boxes.&lt;br /&gt;
&lt;br /&gt;
* New database column quiz_attempt.state, to make the current state of each attempt clear. (Not sure if this is really necessary.)&lt;br /&gt;
&lt;br /&gt;
* Code on cron, or when the attempt is accessed, to update the attempt state if, for example, time has expired since it was last changed.&lt;br /&gt;
&lt;br /&gt;
* A quiz option, and code on cron, to automatically submit overdue quiz attempts if that is what the teacher wants.&lt;br /&gt;
&lt;br /&gt;
* A quiz option, and code on cron, to email a student when an attempt becomes overdue, telling them how long the still have to submit it, and how to do so.&lt;br /&gt;
&lt;br /&gt;
* Possibly new column quiz_attempt.finishedby, to record the userid of the user who submitted the attempt, so we know if the teacher has submitted a later attempt for the student. Could be NULL, if late attempts are submitted automatically.&lt;br /&gt;
&lt;br /&gt;
* Code in the question engine to correctly process incomplete attempts when an overdue attempt is submitted.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
===Discussion===&lt;br /&gt;
&lt;br /&gt;
* Please discuss this in [http://moodle.org/mod/forum/discuss.php?d=138660 this Quiz forum thread].&lt;br /&gt;
&lt;br /&gt;
===Relevant tracker issues===&lt;br /&gt;
&lt;br /&gt;
* MDL-3030 Late quiz attempts should be closed automatically&lt;br /&gt;
* MDL-3452 Use saved answers when marking late submissions&lt;br /&gt;
* MDL-4309 Ability for late quizzes (with penalty)&lt;br /&gt;
* MDL-20956 Student can&#039;t start new attempt if a quiz has timle limit between attempts and time limit for a quiz, and he doesn&#039;t submit previous attempt closing browser window instead&lt;br /&gt;
* ... please add other relevant tracker issues here.&lt;br /&gt;
&lt;br /&gt;
===See also===&lt;br /&gt;
&lt;br /&gt;
* [[Goals_of_an_online_assessment_system|Goals of an online assessment system]]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=118343 Closing unfinished attempts - possible solution for 1.9]&lt;br /&gt;
* [https://docs.moodle.org/23/en/User_talk:John_Rich Moodle Documents]&lt;br /&gt;
&lt;br /&gt;
[[Category:Quiz]]&lt;/div&gt;</summary>
		<author><name>Joeythibault</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Talk:Mobile_app&amp;diff=28436</id>
		<title>Talk:Mobile app</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Talk:Mobile_app&amp;diff=28436"/>
		<updated>2010-07-13T13:58:56Z</updated>

		<summary type="html">&lt;p&gt;Joeythibault: New page: I&amp;#039;d love to see the ability for students to take quizzes be included in a 1.0 mobile app.  Comparative LMS (BB) have not yet achieved this with their own Mobile apps and it would be a boon...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;d love to see the ability for students to take quizzes be included in a 1.0 mobile app.  Comparative LMS (BB) have not yet achieved this with their own Mobile apps and it would be a boon for mobile learning (or learning utilizing tablet devices).&lt;/div&gt;</summary>
		<author><name>Joeythibault</name></author>
	</entry>
</feed>