feat: csv export (#50)
This commit is contained in:
		
							parent
							
								
									d564aff885
								
							
						
					
					
						commit
						3ab340f688
					
				|  | @ -35,6 +35,11 @@ class Tea: | ||||||
| tea = Tea()  # lazy loader | tea = Tea()  # lazy loader | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @app.command("export-students", help="export students from canvas to csv file") | ||||||
|  | def export_students_to_csv(output_file: Path) -> None: | ||||||
|  |     tea.pot.canvas.export_students_to_csv(output_file) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| @app.command( | @app.command( | ||||||
|     "invite-to-teams", help="invite all canvas students to gitea teams by team name" |     "invite-to-teams", help="invite all canvas students to gitea teams by team name" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | @ -1,6 +1,8 @@ | ||||||
|  | import csv | ||||||
| import os | import os | ||||||
| import re | import re | ||||||
| from glob import glob | from glob import glob | ||||||
|  | from pathlib import Path | ||||||
| from typing import cast | from typing import cast | ||||||
| 
 | 
 | ||||||
| from canvasapi import Canvas as PyCanvas | from canvasapi import Canvas as PyCanvas | ||||||
|  | @ -58,6 +60,13 @@ class Canvas: | ||||||
|         self.grade_filename = grade_filename |         self.grade_filename = grade_filename | ||||||
|         logger.debug("Canvas initialized") |         logger.debug("Canvas initialized") | ||||||
| 
 | 
 | ||||||
|  |     def export_students_to_csv(self, filename: Path) -> None: | ||||||
|  |         with open(filename, mode="w", newline="") as file: | ||||||
|  |             writer = csv.writer(file) | ||||||
|  |             for student in self.students: | ||||||
|  |                 writer.writerow([student.name, student.sis_id, student.login_id]) | ||||||
|  |         logger.info(f"Students exported to {filename}") | ||||||
|  | 
 | ||||||
|     def prepare_assignment_dir( |     def prepare_assignment_dir( | ||||||
|         self, dir_or_zip_file: str, create_grade_file: bool = True |         self, dir_or_zip_file: str, create_grade_file: bool = True | ||||||
|     ) -> None: |     ) -> None: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 mQzLjP
						mQzLjP