Quantcast
Channel: General developer forum
Viewing all articles
Browse latest Browse all 37670

(more) advice on creating activities with an arbitrary number of submissions

$
0
0
by Brad Smith.  

BACKGROUND:(the impatient can skip this)
I started a previous thread about an unusual kind of activity I need to create. The short version is that each instance of the activity describes a task (in my case a particular kind of ticket people need to learn how to handle in our ticketing system), and then accepts an arbitrary number of submissions for each user (in my case IDs of tickets the user has worked, which are then reviewed and graded). The activity's grade is derived by aggregating the grades all the user's submissions, and checking for a minimum number of submissions (in my case, the user must have at least a certain number of tickets with a grade of "approved" before they get a "pass" for that activity in the gradebook).

It was suggested that I use the Database module for this, which makes sense but I'm finding it has some problems:

  1. Submissions to the database aren't graded, they're "rated" with the ratings API. This is a problem for me because one of the grades/ratings that can be given to a ticket is "Needs more work", which means the user must do more work based on the grader's comments, at which point it will be re-graded. Since there are multiple people on the grading team, what if grader A rates a ticket "Needs more work", and then grader B rates it "Pass". The actual rating attached to the ticket will be the aggregate of the two ratings, not just the most recent one. 
  2. Entries in the database and the database its self use the same grading scale. I need the tickets to be on a "Start over"/"Needs more work"/"Pass" scale and the activity as a whole to be on an "Incomplete"/"Pass" scale.
  3. I need to support sending email notifications when an entry is graded, the way you can with the Assignment module.  

There are others, but those are the biggest for now.

 

QUESTION:
I've been poking around at how I might go about getting what I want, and I see three options:

  1. Create a derivative of the Database module with the following changes:
    • Only the most recent rating/grade applies to an entry
    • Databases and entries can use different grading scales
  2. Create a new Assignment type with the following changes:
    • Support multiple submissions per user
    • Calculate assignment grade by aggregating submission grades
  3. Create a new module from scratch (maybe easier than trying to beat one of the others into being something else?)

I've been hip deep in Moodle's code for the last couple of days trying to figure out which of these would be the least painful. If anyone has suggestions or advice, I would REALLY appreciate hearing them! Just knowing if it's possible to override how grades are calculated on a per-module basis other than selecting from one of the pre-defined aggregation methods would be great, since if there's a way to do that I haven't yet found it. sad


Viewing all articles
Browse latest Browse all 37670

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>