cleaning up

This commit is contained in:
Coding with Peter 2023-03-24 11:00:41 -07:00
parent 37e8007035
commit 71031e12d5
2 changed files with 24 additions and 30 deletions

View File

@ -1,6 +1,3 @@
# This Python file uses the following encoding: utf-8
#from __future__ import print_function
from time import strptime
from bs4 import BeautifulSoup as bs
from util import UnicodeDictReader
@ -82,13 +79,6 @@ local_data_folder = 'cache/canvas_data/'
mylog = codecs.open(local_data_folder + 'temp_log.txt','w')
gp = {}
gp['ACCT'] = 'info'
gp['AE'] = 'skill'
@ -425,7 +415,6 @@ def getSemesterSchedule(short='sp21'): # I used to be current_sch
#print schedule.columns
return schedule
def get_enrlmts_for_user(user,enrollments):
#active enrollments
u_en = enrollments[ lambda x: (x['user_id'] == user) & (x['workflow']=='active') ]
@ -600,9 +589,6 @@ def row_has_data(r): # helper
return True
return False
#dbg = open('cache/temp_scheddebug_' + 'sp20' + '.txt','w')
def row_text(r): # helper
#global dbg
@ -1079,6 +1065,7 @@ def recent_schedules():
# Take the generically named rosters uploads files and move them to a semester folder and give them a date.
def move_to_folder(sem,year,folder):
semester = year+sem
semester_path = 'cache/rosters/%s' % semester
if not os.path.isdir('cache/rosters/'+semester):
os.makedirs('cache/rosters/'+semester)
now = datetime.datetime.now().strftime('%Y-%m-%dT%H-%M')

View File

@ -1,5 +1,5 @@
import json, codecs, requests, re, pdb, csv, textdistance
import json, codecs, requests, re, pdb, csv, textdistance, collections
import sys, csv, string, funcy, math, shutil, imghdr, os
import pytz, time
import pandas as pd
@ -14,7 +14,7 @@ from localcache import teachers_courses_semester
from util import dept_from_name, most_common_item
from os.path import exists, getmtime
#from localcache import users_file, com_channel_dim
from canvas_secrets import url
from dateutil import parser
from datetime import datetime as dt
@ -350,13 +350,15 @@ def teacher_basic_info(sched, from_ilearn, names):
return c
# TODO Old and broken
# what percentage of their sections were online / hybrid /lecture ?
# Consumes: output/semesters/fa19_sched.json and etc for 1 year
# Outputs: cache/teacher_by_semester.csv,
def teacherModalityHistory(sched=[],names=[]):
if not len(sched):
sched = oneYearSchedule()
names = match_username()
#names = match_username()
# How many classes a teacher taught lect/online/hybrid/hours
sec_type = sched.groupby(['teacher','sem'])['type'].apply(' '.join)
@ -458,7 +460,7 @@ def teacherSharedCourses(a=[]):
return c
# TODO: this is broken
# Consumes: output/semesters/fa19_sched.json and etc for 1 year
# Outputs: cache/num_courses_per_dept.csv (not teacher_course_oer_deptcount)
# How many courses in each department were taught in the last year?
@ -467,14 +469,14 @@ def departmentCountCourses(a=[]):
tt = a.drop(['code','partofday','sem','site','type'],axis=1) #,'dept','codeletter'
records_by_sname = defaultdict(my_empty_dict, match_usernames())
"""records_by_sname = defaultdict(my_empty_dict, match_usernames())
tt.drop_duplicates(keep='first',inplace=True)
tt['name'] = tt.apply(lambda x: records_by_sname[x['teacher']]['name'],axis=1)
tt['email'] = tt.apply(lambda x: records_by_sname[x['teacher']]['email'],axis=1)
tt = tt.drop(['teacher'],axis=1)
tt.sort_values(by=['dept','name','codenum'],inplace=True)
count = tt['dept'].value_counts()
count.to_csv('cache/num_courses_per_dept.csv', header=True)
count.to_csv('cache/num_courses_per_dept.csv', header=True)"""
def clean_nonprint(s):
@ -902,9 +904,11 @@ def getTeachersInfoMain():
#getAllTeachersInTerm()
# TODO - broken
def enroll_staff_shell():
staff = users_with_gavilan_email()
pass
"""staff = users_with_gavilan_email()
for i,s in staff.iterrows():
print(s['canvasid'],s['name'])
u = url + '/api/v1/courses/8528/enrollments'
@ -916,6 +920,8 @@ def enroll_staff_shell():
res = requests.post(u, headers = header, data=param)
print(res.text)
"""
#"Jun 28 2018 at 7:40AM" -> "%b %d %Y at %I:%M%p"
#"September 18, 2017, 22:19:55" -> "%B %d, %Y, %H:%M:%S"
@ -1033,8 +1039,9 @@ def get_recent_views(id=1):
codecs.open('gui/public/activitysummary.json','w','utf-8').write( json.dumps(summary,indent=2) )
# TODO broken?
# Have they taught online or hybrid classes?
"""
def categorize_user(u):
global role_table, term_courses
their_courses = get_enrlmts_for_user(u, role_table)
@ -1062,7 +1069,7 @@ def categorize_user(u):
if i==0: online_only = 0
#print "Type: " + type + " All online: " + str(online_only) + " Number courses this term: " + str(len(is_online))
return (u[0],type, online_only, len(is_online))
"""
##########
@ -1336,7 +1343,7 @@ def uploadPhoto():
time.sleep(1)
# Make api call to set avatar image to the token of the uploaded imaged (file_id)
params = { 'as_user_id':'{0}'.format(id)}
avatar_options = requests.get("https://%s/api/v1/users/%s/avatars"%(domain,'{0}'.format(id)),headers=header,params=params)
avatar_options = requests.get(url + "/api/v1/users/%s/avatars"% '{0}'.format(id),headers=header,params=params)
#print "\nAvatar options: "
#print avatar_options.json()
for ao in avatar_options.json():
@ -1345,7 +1352,7 @@ def uploadPhoto():
#print("avatar option found...")
#print((ao.get('display_name'),ao.get('token'), ao.get('url')))
params['user[avatar][token]'] = ao.get('token')
set_avatar_user = requests.put("https://%s/api/v1/users/%s"%(domain,'{0}'.format(id)),headers=header,params=params)
set_avatar_user = requests.put(url + "/api/v1/users/%s"% '{0}'.format(id),headers=header,params=params)
if set_avatar_user.status_code == 200:
print(('success uploading user avatar for {0}'.format(id)))
account_count += 1
@ -1367,8 +1374,8 @@ def uploadPhoto():
def test_email():
send_z_email("Peter Howell", "Peter", "phowell@gavilan.edu", ['CSIS85','CSIS42'])
#def test_email():
# send_z_email("Peter Howell", "Peter", "phowell@gavilan.edu", ['CSIS85','CSIS42'])
def create_ztc_list():
@ -2118,8 +2125,8 @@ def find_no_goo():
try:
user_port.append( fetch(url+'/api/v1/eportfolios/%s' % str(p_user['id']) ) )
if DO_DELETE_PORTFOLIOS:
output5.write("<br />deleted: <a href='https://ilearn.gavilan.edu/eportfolios/%s'>%s\n" % (str(p_user['id']),str(p_user['id'])) )
output5.flush()
#output5.write("<br />deleted: <a href='https://ilearn.gavilan.edu/eportfolios/%s'>%s\n" % (str(p_user['id']),str(p_user['id'])) )
#output5.flush()
del_request = requests.delete(url + "/api/v1/eportfolios/%s" % str(p_user['id']) ,headers=header)
print(del_request.text)
except Exception as e: