def student_emails(path_to_output, user_id, group_id): """ Output into a file stuff needed for PowerSchool to read in via AutoCom """ from psmdlsyncer.settings import config, config_get_section_attribute from psmdlsyncer.sql import MoodleDBSession path_to_powerschool = config_get_section_attribute('DIRECTORIES', 'path_to_powerschool_dump') db = MoodleDBSession() with open(path_to_output, 'w') as _file: for student in db.users_enrolled_in_this_cohort('studentsALL'): if student.idnumber and student.username and student.email: if student.idnumber != '99999': _file.write('{},{},{}\n'.format(student.idnumber, student.username, student.email)) import os os.chown(path_to_output, int(user_id), int(group_id))
from psmdlsyncer.settings import config, config_get_section_attribute from psmdlsyncer.sql import MoodleDBSession #import csv path_to_powerschool = config_get_section_attribute('DIRECTORIES', 'path_to_powerschool_dump') path_to_file = '/home/lcssisadmin/students_email_autocom.csv' db = MoodleDBSession() with open(path_to_file, 'w') as _file: for student in db.users_enrolled_in_this_cohort('studentsALL'): _file.write('{},{},{}\n'.format(student.idnumber, student.username, student.email)) import os os.chown(path_to_file, 1000, 1000)
from psmdlsyncer.sql import MoodleDBSession from psmdlsyncer.models.datastores.autosend import AutoSendTree from psmdlsyncer.php import ModUserEnrollments dry_run = True if __name__ == "__main__": dnet = MoodleDBSession() mod = ModUserEnrollments() not_students = [] cohorts = ["parentsALL", "teachersALL"] for cohort in cohorts: users = dnet.users_enrolled_in_this_cohort(cohort) not_students.extend([u.idnumber for u in users]) dnet = MoodleDBSession() enrollments = dnet.bell_schedule() count = 0 for enrollment in enrollments: if enrollment.rolename == "student" and enrollment.userID in not_students: count = count + 1 role = "parent" if enrollment.userID.endswith("P") else "teacher" dry_run and print(enrollment) # print("userId: {}; role {}".format(enrollment.userID, role)) not dry_run and mod.unenrol_user_from_course(enrollment.userID, enrollment.courseID) not dry_run and mod.enrol_user_into_course( enrollment.userID, enrollment.courseID, enrollment.groupName, enrollment.groupIdNumber, role )