Enable completion tracking via csv for Totara bulk course upload - moodle

I need to upload a little over 2000 courses to Totara V2.6.
Doing this with a .csv file isn't normally a problem but I need to set "Enable completion tracking" and "Mark as In Progress on first view" to yes/checked for the courses.
Here is an example of what I have tried in my .csv file:
fullname,shortname,category,enablecompletion,completionprogressonview
COURSE NAME,COURSE NAME,1,1,1
The courses are created and uploaded but the two desired settings have no effect. I have looked here for more information on uploading courses usng a .csv, but there is no mention of the completion tracking settings.
Is it possible to set "Enable completion tracking" and "Mark as In Progress on first view" in the .csv file, and if not is there another way I can apply these settings to all the courses without having to do it one at a time?
Thanks in advance.

I'm afraid you can't do Enable completion tracking through a csv file for users as per the documentation: https://docs.moodle.org/30/en/Upload_users
You can enable completion tracking in a separated .csv file only for courses: https://docs.moodle.org/30/en/Upload_courses#Course_information_fields
You must enable activity completion for all the activities within a course and set the course completion criteria, I don't think this can be done through a .csv, I think this must be done manually.
Once you have all users uploaded and enrolled into a course, you can change all users progress on the activities directly on the database, or create a script that does the job for you.

Related

Copying contents between sections in the same course on moodle

I need to copy contents of a section to another section (or clone the existing section) in the same course on moodle. I've seen some documentation on how to copy contents from one course to another but I didn't find any resources on how to copy within the course. In the image attached, there is a section "Batch 2-2021". I want to make a new section "Batch 2-2022" and copy everything from "Batch 2-2021" into it. Is it possible? Any help would be appreciated.
There is a duplicate button for an activity
Go to a course
Turn editing on
Click the edit dropdown menu for an activity, select duplicate
Click and hold the move icon of the duplicate, then drag and drop on the new section
https://docs.moodle.org/400/en/Reusing_activities
In core Moodle, you can only duplicate activities or courses, not sections. However, this functionality is available in the Mass Actions block: https://moodle.org/plugins/block_massaction
Install the block on your site and add it to the course. There are options to select all of the activities in a section and duplicate them into another section, along with many other options to apply the standard actions to multiple activities at once.
If you cannot use the Mass Actions block for some reason (on hosted Moodle site, for instance), the fastest way in core Moodle to copy a section would probably be to use a course backup. When you create the backup, you can select only the a particular section of activities. You can restore the backup into the same course, merging the data, which will create duplicates of the activities. Unfortunately, they can only be duplicated into the same section, so you'll have to manually move them to the new section. Depending on how many activities you're copying, this may not be fast than just individually duplicating and moving the activities, so the Mass Actions block is still the best option.

Custom Forms do not sync in Outlook with O365

I have been using custom forms for a number of years. There appears to be a new issue with O365 and TASK custom forms.
If I open a new task from a custom form, type in a characters, wait 30 seconds and then save it, I get the following error "the item cannot be saved because it was modified by another user or in another window"
So now it tried with the following:
Test 1:
I tried the same form in a .PST file and all works OK.
Test 2:
Took a standard Task Form - I did not make any changes
Saved the form with the new name “Test1”
Opened the form as a new Task, typed into the Notes/Body field.
Saved
Outlook had the same error. - "the item cannot be saved because it was modified by another user or in another window"
This test has been replicated in 3 different computers. Same issue.
Any ideas? Thanks.
This is not at all related to custom forms - you save an appointment or a task, the OST store uploads it to the Exchange store, its processes the item and stamps its own properties. OST store picks up the server changes some time later and downloads them. If you now try to save an item, you get a conflict.

Akeneo 2.1 : Import / export best practices to set it all up

I'm currently setting up an Akeneo (2.1) instance that needs to communicate with an e-commerce solution. I was wondering what the best practices are when it comes to importing and exporting data. The documentation kind of lacks in this; it tells how you can set it up, but I'm missing practical use cases here.
Here's what I'm thinking of:
I want our customer to be able to upload their images / CSV files using an FTP connection.
Akeneo should ideally only start importing when a mutation in this (FTP) destination folder is detected.
Exporting should only be done once or twice a day, and upon completing the archive should be transfered with (s)FTP to a different location
I'm currently having trouble on how to implement this flow in Akeneo. Because if I look at what comes out of the box I can come up with the following:
I can setup an FTP account that ends up in `app/uploads/product/` and allow the customer to upload to that location
Akeneo does not detect file system changes, so I can only setup a cronjob that tries to import every hour or something. The drawback of this approach is that Akeneo will copy the CSV file(s) every time to `app/archive/import`. If you have big CSV files this can cause for some increment in disk usage.
I can setup a cronjob to export twice a day, but again: Akeneo will create archives on every export, so `app/archive/export` will grow even bigger every day. Please note that my customer has 4GB+ assets (images, documents, etc.). Does Akeneo cleanup the `app/archive`-folder every now and then?
Every exported archive comes in a new folder (with an every incremented job number (`app/archive/export/csv_product_export/28/` for example)), so I'm kind of wondering how I can detect for this new folder and how I can trigger to uploading of the archive to the remote (S)FTP server after the export is complete.
I was just wondering how other people who work with Akeneo handled these challenges. I know I can write my own custom bundle and hook into a ton of events or write shell scripts that do lot of the magic for me, but I am wondering what Akeneo itself already offers regarding this subject.
Any thoughts / ideas / suggestions / experiences on this topic are welcome!
To answer your questions:
Akeneo doesn't need to have csv uploaded in the app/uploads/product/
folder. You can define the csv location in the import profile. That way you can use whatever location you want.
To import images, you need to zip them with the csv file (to see how the structure of the archive should look like, you can export some products with media on demo.akeneo.com)
Setting up a cronjob seems to be a good idea. If the disk usage is a problem, this cronjob could also clean the folder after the import.
To export twice a day, you can use the export builder to only export products that have been updated since last export (delta export). That way, you don't use too much space for nothing.
Again, the app/archive/export/csv_product_export/28/ path is only for internal use. This is a working directory used by Akeneo during the export (before zip for example) and the final file (csv or zip) is moved to the defined destination (in job configuration).
With all those informations, here is my recommendation:
Write a simple bash/php script to detect change in a folder and if there is one, move the file to another location and launch the import.
If you want to handle images, you can add to your script a way to generate the zip file with the good format
Then to export to your ecommerce, setup a cronjob to export every hours and export only new or updated products to the desired destination.
Another way would be to use the new REST API which is well documented here: https://api.akeneo.com/

Extending RequestTracker tickets with external data

I'm thinking about how to extend RT (and also with the IR extension, but I don't think this makes a difference) in regards to retrieving files from external sources (e.g. sftp) and adding them as attachments to tickets. I'm asking for suggestions of how I might go about this, as I've not used RT much and never programmed in Perl before.
I'm thinking of adding an input and button in the ticket to allow the user to provide a unique ID for the file and for them to be able to click when they want to retrieve the file from the external source, so not an automatic retrieval, unless it only does it once.
I'm thinking of creating a MakeClicky (http://requesttracker.wikia.com/wiki/MakeClicky) which creates a link to a cgi script (something like 'getfile(abc.txt)'), providing the ticket ID and the UID for the file. This script would then retrieve the file and post it as a comment/reply to the ticket. A couple of things to ask:
Are comments and replies to tickets really the only way to add an attachment? I read this somewhere but cant find the source now
How would I modify the existing ticket from a cgi script? Its on the same host, would I still need to use the REST api? Or can I just import the RT modules and add a attachment/comment/reply with the attachment without using the REST api?
The other option would be to create a scrip for on create/comment/reply that would search the contents of the ticket for an identifier for the file, retrieve the file and attach it.
I'm open to suggestions, unless one of these is a good way to do it!
TIA!

FineUploader - get metadata during upload and store it

I am using FineUploader and it works just fine for my application needs. The files end up where I need them etc.
However once the file is uploaded, I really don't know what the file actually is. For instance the file could be a resume, a cover letter, a release of information, etc. For that I will need to "attach" additional metadata that relates to that file.
Is there a way to add some sort of a select box, where the user will select a category (before the upload process begins) so that the file can be identified by that category? The filename, size and other information gathered during the upload process are already stored in the database.
Any pointers are more than appreciated.
Edit: Duplicate Submit multiple form fields for each file in FineUploader