def compare_db_with_drive(client, conn, limit, offset): enrollments = Database.get(Database.execute(conn, Database.enrollment_query_string(limit=limit, offset=offset))) database_contents = Database.get(Database.execute(conn, Database.compare_query_string())) gd_root_folders = Folder.list_sub_folders(client, "root") gd_contents = Folder.list_sub_folders(client, gd_root_folders[config.ROOT_CLASS_FOLDER]) # REMOVE SYNCED ENROLLMENTS FROM DICT # enrollments = [enrollment for enrollment in enrollments if Sync.not_synced(enrollment, database_contents)] # MOVE ENROLLMENTS THAT NEED TO BE ARCHIVED TO archive_in_drive # archive_in_drive = [enrollment for enrollment in enrollments if Sync.should_archive(enrollment, database_contents)] enrollments = Utilities.remove_from_list(archive_in_drive, enrollments) # MOVE ENROLLMENTS THAT NEED RENAMING TO rename_in_drive # rename_course_in_drive = [enrollment for enrollment in enrollments if Sync.course_needs_renaming(conn, enrollment)] rename_in_drive = [enrollment for enrollment in enrollments if Sync.student_needs_renaming(enrollment, database_contents)] enrollments = Utilities.remove_from_list(rename_in_drive, enrollments) # MOVE ENROLLMENTS THAT ARE LEFT NEED TO BE CREATED IN DRIVE # create_in_drive = enrollments rename_course_in_drive = Utilities.remove_from_list(create_in_drive, rename_course_in_drive) archive_in_drive = ObjectUtilites.enrollment_list_from_dict(archive_in_drive) rename_course_in_drive = ObjectUtilites.enrollment_list_from_dict(rename_course_in_drive) rename_in_drive = ObjectUtilites.enrollment_list_from_dict(rename_in_drive) create_in_drive = ObjectUtilites.enrollment_list_from_dict(create_in_drive) return create_in_drive, rename_course_in_drive, rename_in_drive, archive_in_drive
def set_to_archived(conn, client): enrollments = Database.get(Database.execute(conn, Database.enrollment_query_string())) database_contents = Database.get(Database.execute(conn, Database.compare_query_string())) items_to_archive = {} items_to_archive = [entry for entry in database_contents if Sync.not_exists_in_enrollments(entry, enrollments)] for entry in items_to_archive: Database.set_entry_to_archived(conn, entry)
def ShareFolder(client, conn, folder_entry): #Create the share structures and then share and modify permissions #for student and teacher. enrollment = Database.get(Database.execute(conn, Database.enrollment_query_string(where="class_id = '" + folder_entry['class_id'] + "' AND student_id = '" + folder_entry['student_id'] + "'"))) structures = retrieve_share_structures() created_structures = {} print "Creating Share Structure..." for name, structure in structures.iteritems(): created_structures[name] = create_share_structure(client, conn, enrollment, structure) share_roles = retrieve_share_roles(created_structures) print "Sharing Folders..." for folder in share_roles: # In production the teacher and student emails will come from enrollment dict if not folder['role']['teacher'] == 'none': share(client, folder['folder_id'], '*****@*****.**', folder['role']['teacher']) if not folder['role']['student'] == 'none': share(client, folder['folder_id'], '*****@*****.**', folder['role']['student']) print "Done!"