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)
|
||||
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
|
||||
def course_term_summary(term="180",term_label="FA23"):
|
||||
def course_term_summary(term="184",term_label="FA24"):
|
||||
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")
|
||||
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(" "))
|
||||
smaller = [ funcy.project(x , tup) for x in courses ]
|
||||
|
|
|
|||
|
|
@ -203,6 +203,7 @@ def search_user(searchterm=''):
|
|||
|
||||
def search_and_select_user(searchterm):
|
||||
candidates = search_user(searchterm)
|
||||
if len(candidates) == 0: return 0
|
||||
if len(candidates) == 1: return candidates[0]
|
||||
|
||||
for i,c in enumerate(candidates):
|
||||
|
|
|
|||
|
|
@ -134,6 +134,14 @@ def user_from_goo(goo):
|
|||
# convert row to dict using column names as keys
|
||||
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):
|
||||
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
|
||||
JOIN canvas.enrollments AS e ON e.course_id=c.id
|
||||
JOIN canvas.users AS u ON u.id=e.user_id
|
||||
|
|
@ -426,9 +434,25 @@ def courses_to_sched():
|
|||
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='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
|
||||
|
|
|
|||
Loading…
Reference in New Issue