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 geimporteerd) dan wordt deze code automatisch gegereerd.
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 "&C2&",<br>Jouw personal Canvas Monitor link is: "&H2&"','2de (en juiste) Personal Link for Canvas Monitor','"&D2&"')"
- 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 'emailer-regels' uit Excel in het scipt en draai het script.
- Controleer de email in Oulook. Indien juist, zet Outlook "online" en de email wordt verstuurd.
--