Nieuw Cohort
Aanpassingen op Server
- Pas de file config/subdomain.php aan:
<?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;
}
?>
- pas de file
config/params.php
aan:
# for searching students in home page
$databases = ['canvas-c24', 'canvas-c23', 'canvas-c22', 'canvas-c21', 'canvas-c20'];
- Maak de nieuwe database aan.
- Pas de SQL views aan.
/etc/apache2/sites-enabled/....conf
server alias toevoegen
vergeet de dev-omving niet,C:\xampp\apache\conf\extra\httpd-vhosts.conf
en eventueel de hosts file inC:\Windows\System32\drivers\etc
- Maak gebruikers/docenten in database aan (export/import uit vorig cohort)
- Voeg cursussen toe via de GUI (menu beheer - cursus)
- Draai een update (op de sever
python3 update.py -c 12345
). - Voeg modules toe via de GUI (menu beheer - module).
- Draai weer een update.
- Pas de rotate functie aan (als je op het log links boven klikt).
ResultaatController.php, function actionRotate()
- Pas de vakanties aan in de import.py ten behoeve van de predictions.
- Gebruik de
public function actionGenerate($code = 0)
in deStudetController
om de unieke codes te genereren voor de studenten.Note 1: Kijk even hoe dit aan te roepen (ivm security wordt dat verder hier niet uitgelegd).
Note 2: indien een student via de CMON wordt ingevoerd (dus niet rechtstreeks in de database wordt geïmporteerd) dan wordt deze code automatisch gegenereerd.
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.
- Pas op regel 21 het cursus id aan zodat dit overeenkomt met de cursus waaruit de studenten moeten worden gehaald.
- Draai het script.
- Copy/paste de output in phpmyadmin.
- Run de import op de module waar de studenten namen in staan, vb:
python3 import.py -c 18660
- 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.
- Maak een export van alle studenten uit de canvas monitor (menu - beheer - studenten (export).
- Voeg een kolom toe dir de volledige URL weergeeft.
="https://c20.cmon.ovh/public?code="&G28
- Voeg een kolom toe die (later) via een Python script een mail via MS Outlook verstuurd.
="Emailer('Beste "&D2&",<br><br>Jouw personal Canvas Monitor link is:<br>"&I2&"<br><br>Succes!','Personal Link for Canvas Monitor','"&C2&"@talnet.nl')"
- Zet outlook "offline".
- Maak een emailer.py python file:
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
- Plaats de 'e-mailregels' uit Excel in het script en draai het script.
- Controleer de e-mail in Oulook. Indien juist, zet Outlook "online" en de e-mail wordt verstuurd.
Crontab (op server)
# create backup of Databases
00 23 * * * /home/max/mysql/backupDB.sh > /home/max/log/backupDB.log 2>&1
# copy all pictures once a week - these should also be present in the restic backup
05 23 * * 0 /home/max/mysql/backupPicts.sh > /home/max/log/backupPicts.log 2>&1
# backup to eu2.contabostorage.com (s3) and clean once a week
30 23 * * * /home/max/restic/restic-backup.sh > /home/max/log/restic-backup.log 2>&1
# clean up
55 23 * * 0 /home/max/restic/restic-clean.sh > /home/max/log/restic-clean.log 2>&1
# update web statistics -> crontab root
21 04 * * * /home/max/goaccess/update.sh > /home/max/log/update-goaccess.log 2>&1
# back-up to Hi Drive
23 10 * * * /home/max/sync/sync.sh > /home/max/log/sync-hidrive.log 2>&1
# Canvas Monitor
# 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
# 20 04 * * * cd /home/max/canvas/import/c20 ; /usr/bin/python3 /home/max/canvas/import/bin/set-prio.py > /home/max/canvas/import/c20/set-prio.log 2>&1
# Canvas import jobs first 2 lines are full update and last 2 lines are fast updates (works based on existing assignment ids) - not used anymore
# 54 11,14 * * 1-5 /home/max/canvas/import/import.cron c22 1 > /home/max/canvas/import/import.cron.c22.log
# 59 11,14 * * 1-5 /home/max/canvas/import/import.cron c21 1 > /home/max/canvas/import/import.cron.c21.log
# 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 (import delete/insert)
# 55 17 * * 1-5 /home/max/canvas/import/import.cron c23 2 > /home/max/canvas/import/import.cron.c23.log
# 54 17 * * 1-5 /home/max/canvas/import/import.cron c22 2 > /home/max/canvas/import/import.cron.c22.log
# 53 17 * * 1-5 /home/max/canvas/import/import.cron c21 2 > /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
--