flex and semester start
This commit is contained in:
parent
4c057240c6
commit
83678373d6
33
courses.py
33
courses.py
|
|
@ -375,13 +375,42 @@ def course_term_summary_local(term="180",term_label="FA23"):
|
||||||
#print(info)
|
#print(info)
|
||||||
oo.write('\n</ul>\n')
|
oo.write('\n</ul>\n')
|
||||||
|
|
||||||
|
from localcache2 import student_count, teacher_list, course_from_id, course_sched_entry_from_id
|
||||||
|
|
||||||
# Relevant stuff trying to see if its even being used or not
|
# Relevant stuff trying to see if its even being used or not
|
||||||
def course_term_summary(term="180",term_label="FA23"):
|
def course_term_summary(term="184",term_label="FA24"):
|
||||||
print("Summary of %s" % term_label)
|
print("Summary of %s" % term_label)
|
||||||
courses = getCoursesInTerm(term,0,0)
|
get_fresh = 0
|
||||||
|
courses = getCoursesInTerm(term, get_fresh, 0)
|
||||||
|
|
||||||
print("output to cache/term_summary.txt")
|
print("output to cache/term_summary.txt")
|
||||||
outp = codecs.open('cache/term_summary.txt','w','utf-8')
|
outp = codecs.open('cache/term_summary.txt','w','utf-8')
|
||||||
|
outp.write('id,name,view,type,state,sched_start,ilearn_start,sched_students,ilearn_students,num_teachers,teacher1,teacher2,teacher2\n')
|
||||||
|
|
||||||
|
for c in courses:
|
||||||
|
c_db = course_from_id(c['id'])
|
||||||
|
try:
|
||||||
|
ilearn_start = c_db['start_at']
|
||||||
|
s_db = course_sched_entry_from_id(c['id'])
|
||||||
|
except:
|
||||||
|
print(f"problem with this course: {c_db}")
|
||||||
|
continue
|
||||||
|
sched_start = ''
|
||||||
|
sched_students = ''
|
||||||
|
type = ''
|
||||||
|
if (s_db):
|
||||||
|
sched_start = s_db['start']
|
||||||
|
sched_students =s_db['act']
|
||||||
|
type = s_db['type']
|
||||||
|
#print(s_db)
|
||||||
|
num_students = student_count(c['id'])
|
||||||
|
tchr = teacher_list(c['id'])
|
||||||
|
tt = ','.join([x[1] for x in tchr])
|
||||||
|
|
||||||
|
line = f"{c['id']},{c['course_code']},{c['default_view']},{type},{c['workflow_state']},{sched_start},{ilearn_start},{sched_students},{num_students},{len(tchr)},{tt}"
|
||||||
|
print(line)
|
||||||
|
outp.write(line + "\n")
|
||||||
|
return
|
||||||
|
|
||||||
tup = tuple("id course_code default_view workflow_state".split(" "))
|
tup = tuple("id course_code default_view workflow_state".split(" "))
|
||||||
smaller = [ funcy.project(x , tup) for x in courses ]
|
smaller = [ funcy.project(x , tup) for x in courses ]
|
||||||
|
|
|
||||||
|
|
@ -203,6 +203,7 @@ def search_user(searchterm=''):
|
||||||
|
|
||||||
def search_and_select_user(searchterm):
|
def search_and_select_user(searchterm):
|
||||||
candidates = search_user(searchterm)
|
candidates = search_user(searchterm)
|
||||||
|
if len(candidates) == 0: return 0
|
||||||
if len(candidates) == 1: return candidates[0]
|
if len(candidates) == 1: return candidates[0]
|
||||||
|
|
||||||
for i,c in enumerate(candidates):
|
for i,c in enumerate(candidates):
|
||||||
|
|
|
||||||
|
|
@ -134,6 +134,14 @@ def user_from_goo(goo):
|
||||||
# convert row to dict using column names as keys
|
# convert row to dict using column names as keys
|
||||||
return dict(zip([desc[0] for desc in cursor.description], row))
|
return dict(zip([desc[0] for desc in cursor.description], row))
|
||||||
|
|
||||||
|
def course_sched_entry_from_id(id):
|
||||||
|
q = f"SELECT * FROM canvas.schedule s WHERE s.canvascourse={id}"
|
||||||
|
(connection,cursor) = db()
|
||||||
|
cursor.execute(q, None) # execute query with optional parameters
|
||||||
|
row = cursor.fetchone() # fetch a single row
|
||||||
|
if row:
|
||||||
|
# convert row to dict using column names as keys
|
||||||
|
return dict(zip([desc[0] for desc in cursor.description], row))
|
||||||
|
|
||||||
def course_from_id(id):
|
def course_from_id(id):
|
||||||
q = f"SELECT * FROM canvas.courses c WHERE c.id={id}"
|
q = f"SELECT * FROM canvas.courses c WHERE c.id={id}"
|
||||||
|
|
@ -277,7 +285,7 @@ ORDER BY num DESC, u.sortable_name""" % (where1,where2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def all_sem_courses_teachers(SEM="202450"):
|
def all_sem_courses_teachers(SEM="202470"):
|
||||||
q = f"""SELECT c.id, c.name, c.course_code, u.name, u.sortable_name, u.id AS user_cid, p.sis_user_id, s.type, s.crn FROM canvas.courses AS c
|
q = f"""SELECT c.id, c.name, c.course_code, u.name, u.sortable_name, u.id AS user_cid, p.sis_user_id, s.type, s.crn FROM canvas.courses AS c
|
||||||
JOIN canvas.enrollments AS e ON e.course_id=c.id
|
JOIN canvas.enrollments AS e ON e.course_id=c.id
|
||||||
JOIN canvas.users AS u ON u.id=e.user_id
|
JOIN canvas.users AS u ON u.id=e.user_id
|
||||||
|
|
@ -426,9 +434,25 @@ def courses_to_sched():
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
|
|
||||||
|
def student_count(courseid):
|
||||||
|
conn,cursor = db()
|
||||||
|
q = f"""SELECT COUNT(u.id) AS student_count FROM canvas.courses AS c
|
||||||
|
JOIN canvas.enrollments AS e ON e.course_id=c.id
|
||||||
|
JOIN canvas.users AS u ON u.id=e.user_id
|
||||||
|
WHERE c.id={courseid}
|
||||||
|
AND e.type='StudentEnrollment';"""
|
||||||
|
cursor.execute(q)
|
||||||
|
return cursor.fetchall()[0][0]
|
||||||
|
|
||||||
|
def teacher_list(courseid):
|
||||||
|
conn,cursor = db()
|
||||||
|
q = f"""SELECT u.id, u.name FROM canvas.courses AS c
|
||||||
|
JOIN canvas.enrollments AS e ON e.course_id=c.id
|
||||||
|
JOIN canvas.users AS u ON u.id=e.user_id
|
||||||
|
WHERE c.id={courseid}
|
||||||
|
AND e.type='TeacherEnrollment';"""
|
||||||
|
cursor.execute(q)
|
||||||
|
return cursor.fetchall()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,29 @@ where (s.type='online' or s.type='hybrid' or s.type='online line')
|
||||||
and not cc.path like '%noemail%'
|
and not cc.path like '%noemail%'
|
||||||
and not cc.path='sstaff@gavilan.edu';
|
and not cc.path='sstaff@gavilan.edu';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- semester prep
|
||||||
|
--
|
||||||
|
--
|
||||||
|
|
||||||
|
-- student count of course
|
||||||
|
SELECT COUNT(u.id) AS student_count FROM canvas.courses AS c
|
||||||
|
JOIN canvas.enrollments AS e ON e.course_id=c.id
|
||||||
|
JOIN canvas.users AS u ON u.id=e.user_id
|
||||||
|
WHERE c.id=19570
|
||||||
|
AND e.type='StudentEnrollment';
|
||||||
|
|
||||||
|
|
||||||
|
-- teacher names
|
||||||
|
SELECT u.id, u.name FROM canvas.courses AS c
|
||||||
|
JOIN canvas.enrollments AS e ON e.course_id=c.id
|
||||||
|
JOIN canvas.users AS u ON u.id=e.user_id
|
||||||
|
WHERE c.id=19570
|
||||||
|
AND e.type='TeacherEnrollment';
|
||||||
|
|
||||||
--
|
--
|
||||||
--
|
--
|
||||||
-- users in sp24 and number of each type of course taking
|
-- users in sp24 and number of each type of course taking
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue