Nieuw Cohort

Deze versie staat online op: https://www.roc.ovh/books/canvas/page/nieuw-cohort

Aanpassingen op Server

<?php

function subDomain() {
    $subDomain = "www";

    if ( isset($_SERVER['SERVER_NAME'])) {
        $subDomain = explode('.', $_SERVER['SERVER_NAME'])[0];
    }


    if ( $subDomain == '...') {
        $DB='......';
    } elseif ( $subDomain == '...') {
        $DB='......';
    } elseif ( $subDomain == '...') {
        $DB='......';
    } else {
        $DB='...';
    }

    return $DB;
}

?>
# for searching students in home page
$databases = ['canvas-c24', 'canvas-c23', 'canvas-c22', 'canvas-c21', 'canvas-c20'];

Importeren Studenten

Zorg dat alle studenten in een cursus staat door deze cursus te koppelen met de juiste Eduarte groepen.

Draai dan dit script dat in de folder python_scripts in de Canvasfolder staat.

  1. Pas op regel 21 het cursus id aan zodat dit overeenkomt met de cursus waaruit de studenten moeten worden gehaald.
  2. Draai het script.
  3. Copy/paste de output in phpmyadmin.
  4. Run de import op de module waar de studenten namen in staan, vb:
    python3 import.py -c 18660
  5. Pas handmatig (via de CMON GUI) de klassen aan.
# Get all users created in a particular year (note that these must be assigned to a course)
# then create inserts to insert these users in the database
# use this script at the beginning of the year to add students to the CM (klas still needs to be edited by hand)

from canvasapi import Canvas
import configparser
import sys

config = configparser.ConfigParser()
if ( not (config.read("../import/canvas.ini") or config.read("canvas.ini"))):
    print()
    dd('Error: canvas.ini not found')

# Canvas API URL
API_URL = config.get('main', 'host')
# Canvas API key
API_KEY = config.get('main', 'api_key')

canvas = Canvas(API_URL, API_KEY)

course_id = 18660

course = canvas.get_course(course_id)
all_users = course.get_users(enrollment_type=['student'])

print(f"Course Name: {course.name}")

# Iterate through the list of users
i=1
for user in all_users:
    student_nr = user.sis_user_id[1:]
    email = student_nr + 'talnet.nl'
    # print(f"{i} id: {user.id}, name: {user.name}, login_id: {email} student_nr: {student_nr}")
    print(f"insert into user (id, name, login_id, student_nr, klas) values ('{user.id}', '{user.name}', '{email}', '{student_nr}', '4x');")
    i=i+1

Email versturen naar studenten

Elke student heeft een unieke link naar zijn Canvas monitor.

="https://c20.cmon.ovh/public?code="&G28
="Emailer('Beste "&D2&",<br><br>Jouw personal Canvas Monitor link is:<br>"&I2&"<br><br>Succes!','Personal Link for Canvas Monitor','"&C2&"@talnet.nl')"
import win32com.client as win32

def Emailer(text, subject, recipient):
    outlook = win32.Dispatch('outlook.application')
    mail = outlook.CreateItem(0)
    mail.To = recipient
    mail.Subject = subject
    mail.HtmlBody = text
    mail.send
    
# plak hier de emailer regels uit Excel

Database Back-up

Zet de nieuwe Canvas Database in de (SQL) backup: /home/max/mysql/backupDB.sh

Crontab (op server)

# evaluate prioritization for updates
23 04 * * * cd /home/max/canvas/import/c24 ; /usr/bin/python3 /home/max/canvas/import/bin/set-prio.py > /home/max/canvas/import/c23/set-prio.log 2>&1
22 04 * * * cd /home/max/canvas/import/c23 ; /usr/bin/python3 /home/max/canvas/import/bin/set-prio.py > /home/max/canvas/import/c23/set-prio.log 2>&1
21 04 * * * cd /home/max/canvas/import/c22 ; /usr/bin/python3 /home/max/canvas/import/bin/set-prio.py > /home/max/canvas/import/c22/set-prio.log 2>&1
20 04 * * * cd /home/max/canvas/import/c21 ; /usr/bin/python3 /home/max/canvas/import/bin/set-prio.py > /home/max/canvas/import/c21/set-prio.log 2>&1

# Prio 1 updates (only update - no new assignments are processed)
56 11,14,17 * * * /home/max/canvas/import/fast-import.cron c24 > /home/max/canvas/import/import.cron.c24.log
55 11,14,17 * * * /home/max/canvas/import/fast-import.cron c23 > /home/max/canvas/import/import.cron.c23.log
54 11,14,17 * * * /home/max/canvas/import/fast-import.cron c22 > /home/max/canvas/import/import.cron.c22.log
53 11,14,17 * * * /home/max/canvas/import/fast-import.cron c21 > /home/max/canvas/import/import.cron.c21.log

# Full prio 1,2,3 (all) import (delete/insert) during night
50 04    * * * /home/max/canvas/import/import.cron c24 3 > /home/max/canvas/import/import.cron.c24.log
50 04    * * * /home/max/canvas/import/import.cron c23 3 > /home/max/canvas/import/import.cron.c23.log
40 04    * * * /home/max/canvas/import/import.cron c22 3 > /home/max/canvas/import/import.cron.c22.log
30 04    * * * /home/max/canvas/import/import.cron c21 3 > /home/max/canvas/import/import.cron.c21.log
20 04    * * * /home/max/canvas/import/import.cron c20 3 > /home/max/canvas/import/import.cron.c20.log

--


Revision #30
Created 16 January 2023 20:49:43 by Max
Updated 25 September 2024 18:52:29 by Max