I'm wracking my brain trying to figure out the best way to provide a file that only an enrollee and instructor can see. I'm posting here because Repositories seemed to be the answer, but read on. Here's the scenario:
A "course" was created called Instructor's Toolbox. It's purpose is to allow a place that only course instructors can access. Instructors are enrolled as "students" and supervisors/manager are enrolled as "instructors". There are no real students.
Inside are topics, one of which is "Critiques". Each instructor undergoes semi-annual evaluations, and those evaluations must be sent to the instructor within a time frame. There is nothing for them to submit -- the only requirement is for the evaluator (a Moodle administrator) to attach a file that the instructor and the supervisor can see.
I've tried various things:
The Feedback module looks great for actually creating the evaluation questions online, but I don't see a way to then attach the result to a specific "student".
A Database would work as well for simply uploading a file, but again, I don't see a way to limit a "view" of specific records to specific students.
An Assignment with advanced uploading of files looks good too, but when I tried it, only the first attached response file showed up when the "student" logged in and looked at his "grades". This also gives a Submit button to the student, which is not needed and would like cause confusion. It also means creating multiple assignments, since the limit in the number of attached files would eventually be reached for any given assignment.
Repositories seemed to be the answer, until I found out that only the student (and not a supervisor/manager) can see private files, and private files seems to be the only way to limit access to a specific student. We aren't allowed to use cloud repositories, so something like Google Docs or Dropbox are out of the question.
The only other option I have looked at but haven't tried is the Dialogue plugin. Apparently it can be set so students can't initiate a dialogue (which they don't need to in our case), and it can be set to be ongoing. That's a nice feature when you have to upload a file a mininum of twice a year (sometime mores if a re-evaluation must be done, or if they are being evaluated for Instructor of the Month/Quarter/Year).
Does anyone have any other ideas? All I need to do is upload files that only a student and a supervisor (instructor) can see.
Continuing the Database module line of thought, the contributed dataform module has a special "groups" mode called 'separate participants'. In this mode participants can access only their own entries (and teachers or supervisors can access all entries) without actual course groups. The dataform also allows a course manager to add entries on behalf of participants and to lock entries under certain conditions. So with respect to your scenario, an entry with the review file would be added on behalf of the participant and locked so that the participant doesn't edit the entry to remove the file if he/she doesn't like the review. Supervisor and enrollee can discuss the review by adding comments to the entry. Also, the dataform can be set to intervals, which may be used in your scenario to prevent participants from adding entries to this repo on their own. The dataform is still beta but the main functionality should be stable enough. hth
This sounds absolutely perfect! I'll give it a try.
Once again, you come through for me. Many thanks!
I don't know which Moodle version you have so it may be worthwhile to note that the most recent available release (1.0.4) requires Moodle 2.1. But the dataform can work with Moodle 2.0 provided the $module->requires in version.php is set to 2010112400. This is fixed in the next dataform release (1.0.5) which will be made available as soon as I sort out a few subtleis in the packaging system.
In that next version I will also improve the adding entries on behalf ui. Currently it requires a somewhat complex procedure which involves import from csv (although the import system is much more flexible than in the database module). But it will be made as easy as selecting the user from a dropdown when editing the entry.
Mine showed "Separate groups" with no dropdown box until I changed the group settings in the course not for force groups. Then I could select "separate participants".
I assume this means that the person who created the entry is the only one who can see it. So I also assume that right now, the only way I can upload something on behalf of a student is to use the cumbersome import method you mentioned. Until the next release you could simply ask enrollees to add their own entries. This isn't an option... they don't have access to their own evaluations for uploading -- that would rather defeat the purpose (which is for someone else to evaluate them and provide the feedback form).
Do you have instructions for importing on behalf of someone? The machine I'm using for testing doesn't have internet access, and when I click the IMPORT tab, it tries to go to a URL.
I think I've disabled the import in 1.0.4. It is completely refactored in 1.0.5. But I'll try to push into git later tonight an interim version, 1.0.4i, with author editing. Here is how it's going to look:
First, the default template of a block or tabular view adds a 'Add a new entry' link. if you replace in the template the ##addnewentry## tag with ##addnewentries## you would be able to add multiple new entries in one go. The following illustration assumes the latter tag and that the dataform is set to separate participants.
This opens two new entries for editing. In the author's name column the template uses a ##Author:edit## tag which allows a manager to select the author of the entry:
Upon saving, the manager can see all entries:
But the user, Jane Duh in this case, can see only her own:
And of course, the entries may be locked for the users in various ways. Here I set the editing time limit of an entry to 1 minute after which a user who is not a manager cannot edit or delete it. (The lock is internal, not just hiding the entry action buttons, so it cannot be worked around by direct urls).