diff --git a/CLI/s-git.py b/CLI/s-git.py index 43d5268..46d69bc 100644 --- a/CLI/s-git.py +++ b/CLI/s-git.py @@ -110,19 +110,27 @@ class Student: self.new = nclasses self.snew=str(data['added_to']) self.repo = data['repo'] - if(self.repo == ""): - user= self.git - pwd= input("Enter Github password: ") - #curl -i -u USER:PASSWORD -d '{"name":"REPO"}' https://api.github.com/user/repos - url= "curl -i -u " + user + ":" + pwd + " -d '" + '{"name":"' + self.username + '"}' + "' " + "https://api.github.com/user/repos" - os.system(url) + + if(os.path.isdir(self.username) == False): + if(self.repo == ""): + user= self.git + pwd= input("Enter Github password: ") + #curl -i -u USER:PASSWORD -d '{"name":"REPO"}' https://api.github.com/user/repos + url= "curl -i -u " + user + ":" + pwd + " -d '" + '{"name":"' + self.username + '"}' + "' " + "https://api.github.com/user/repos" + print(url) + os.system(url) + cdir = os.getcwd() + os.mkdir(self.username) + os.chdir(self.username) command('git clone https://github.com/' + self.git + '/' + self.username + '.git') + os.chdir(self.username) + command('git checkout master') command('touch README.md') - command('git add .') - command('git commit -m Hello') + command('git add README.md') + command('git commit -m "Hello"') command('git push -u origin master') + os.chdir(cdir) self.repo = 'https://github.com/' + self.git + '/' + self.username + '.git' - print(url) data={ 'first_name':self.first_name, 'last_name':self.last_name, @@ -142,38 +150,16 @@ class Student: #update API and Github, all assignments / classes def update(self): - #lists all classes - ignore=['.DS_Store'] - classes = os.listdir(self.username) - for i in ignore: - try: - classes.remove(i) - except: - pass - - for i in range(len(classes)): - c = classes[i] - path = self.username + "/" + c - #lists all assignments and default files - #push to git - isclass = False - for d in os.listdir(path): - if(d == '.git'): - isclass=True - break - if(isclass): - loc = os.getcwd() - os.chdir(path) - command('git fetch origin') - command('git checkout ' + self.username) - command('git add .') - command('git commit -m ' + self.username + '-update') - command('git push -u origin ' + self.username) - command('git merge master') - os.chdir(loc) - print("Updated: " + c) - else: - print(d + " is not a class") + for c in self.classes: + data = getDB("http://127.0.0.1:8000/classes/" + str(c['id'])) + os.chdir(self.username + "/" + data['name']) + command("git checkout -b " + data['name']) + command("git add " + data['name']) + command("git commit -m " + data['name']) + command("git push -u origin " + data['name']) + command("git pull origin " + data['name']) + for c in self.new: + self.addClass(str(c['id'])) #class name format: _ @@ -187,29 +173,49 @@ class Student: print("Not added by teacher yet.") return None + data = getDB('http://127.0.0.1:8000/classes/'+ str(cid)) pwd= input("Enter Github password: ") - url= "curl -i -u " + user + ":" + pwd + " -X PUT -d '' " + "'https://api.github.com/repos/" + self.git + "/" + data['name'] + "/collaborators/" + data['teacher'] + "'" - - data = getDB('http://127.0.0.1:8000/classes/'+cid) + tgit = getDB("http://127.0.0.1:8000/teachers/" + data['teacher'] + "/")['git'] + url= "curl -i -u " + self.git + ":" + pwd + " -X PUT -d '' " + "'https://api.github.com/repos/" + self.git + "/" + self.username + "/collaborators/" + tgit + "'" + print(url) + os.system(url) + data['unconfirmed'] = data['unconfirmed'].replace("," + self.username, "") data['unconfirmed'] = data['unconfirmed'].replace(self.username, "") data['confirmed'] = data['confirmed'] + "," + self.username if(data['confirmed'][0] == ','): data['confirmed'] = data['confirmed'][1:] print(data['confirmed']) - print(putDB(data, 'http://127.0.0.1:8000/classes/'+cid + "/")) + print(putDB(data, 'http://127.0.0.1:8000/classes/'+ str(cid) + "/")) #add teacher as collaborator #curl -i -u "USER:PASSWORDD" -X PUT -d '' 'https://api.github.com/repos/USER/REPO/collaborators/COLLABORATOR' user = self.git - print(url) - os.system(url) + self.classes.append(data) if(len(self.sclass)==0): self.sclass = data['id'] else: self.sclass = self.sclass + "," + str(data['id']) + cdir = os.getcwd() + path1 = self.username + "/" + self.username + path2 = self.username + if(os.path.isdir(path1)): + os.chdir(path1) + else: + os.chdir(self.username) + command("git clone " + self.repo) + os.chdir(self.username) + + command("git checkout -b " + data['name']) + command("touch welcome.txt") + command("git add welcome.txt") + command("git commit -m initial") + command("git push origin " + data['name']) + #git clone --single-branch --branch + os.chdir(cdir) + shutil.move(path1, self.username + "/" + data['name']) #upddate self.new s="" nar = '' @@ -283,6 +289,6 @@ class Student: } #print(putDB(data, "http://127.0.0.1:8000/students/" + self.username + "/")) -data = getStudent("2022inafi") +data = getStudent("2022rkhondak") s = Student(data) -s.addClass('57') \ No newline at end of file +s.update() \ No newline at end of file diff --git a/CLI/t-git.py b/CLI/t-git.py index cf27ba1..bddcb4c 100644 --- a/CLI/t-git.py +++ b/CLI/t-git.py @@ -194,56 +194,6 @@ class Teacher: return True return False - #adds class to git, not API - #Assuming valid class name - def addClasstoGit(self, path): - cname = path.split("/") - cname = cname[len(cname)-1] - #push to remote repo - url='https://github.com/' + self.git + "/" + cname - if(requests.get(url).status_code != 200): - input("Make new Git Repo with name: " + cname + " (Press any key to continue)\n") - try: - pyperclip.copy(cname) - print(cname + " copied to clipboard.") - except: - pass - time.sleep(2) - webbrowser.open('https://github.com/new') - input("Repo created? (Press any key to continue)\n") - - print(url) - while(requests.get(url).status_code != 200): - r = input("Repo not created yet. (Press any key to continue after repo created, or 'N' to exit)\n") - if(r=="N" or r=="No"): - return None - cdir = os.getcwd() - os.chdir(path) - command('git init') - command('git add .') - command('git commit -m Hello_Class') - command('git remote add origin ' + url + '.git') - command('git push -u origin master') - else: - cdir = os.getcwd() - os.chdir(path) - print("Repo already exists. Cloning instead.") - command('git clone') - command('git fetch origin') - command('git pull') - command('git add .') - command('git commit -m Hello_Class') - command('git push -u origin master') - os.chdir(cdir) - print(cdir) - data={ - 'name':cname, - 'repo':url, - 'path':path, - 'teacher':self.username, - } - return data - #make class from existing directory, add to git and api def addClass(self, path): if (self.checkClass(path)): @@ -369,6 +319,13 @@ class Teacher: print(c['name']) if classes == c['name']: cid = str(c['id']) + data1 = getDB("http://127.0.0.1:8000/classes/" + cid) + if(student in data1['unconfirmed']): + print (student + " already requested.") + return + if(student in data1['confirmed']): + print (student + " alredy enrolled.") + break if(cid==None): print(classes +" does not exist.") return @@ -409,7 +366,7 @@ class Teacher: "teacher": self.username, "assignments": "", "default_file": "", - "confirmed": "", + "confirmed": data1["confirmed"], "unconfirmed": data1['unconfirmed'] } print(putDB(d, data1['url'])) @@ -418,23 +375,33 @@ class Teacher: def addStudent(self, student, classes): cdir = os.getcwd() cpath = self.username + "/" + classes - path = "Students/" + classes + path = self.username + "/Students/" + classes if(os.path.isdir(path) == False): - os.mkdir(path) + os.makedirs(path) os.chdir(path) student = getDB("http://127.0.0.1:8000/students/" + student) command("git clone " + student['repo']) os.chdir(cdir) copy_tree(cpath, path + "/" + student['ion_user']) - os.chdir("Students/" + classes + "/" + student['ion_user']) + os.chdir(self.username + "/Students/" + classes + "/" + student['ion_user']) command('git add .') + command('git checkout -b ' + classes) command('git commit -m Hello') command('git push -u origin ' + classes) def comment(self): print("heheheh") + + def addAssignment(): + print() + + def updateAssignnment(): + print() -data = getTeacher("eharris1") +data = getTeacher("mlauerbach") t = Teacher(data) -t.addStudent('2022rkhondak','English11_eharris1') +t.makeClass("Math5_mlauerbach", ["Week1_HW", "Test1"]) +input() +t.reqStudent() +t.addStudent("2022rkhondak", "Math5_mlauerbach") diff --git a/Students/English11_eharris1/2022rkhondak b/Students/English11_eharris1/2022rkhondak deleted file mode 160000 index e863f41..0000000 --- a/Students/English11_eharris1/2022rkhondak +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e863f414aed9de267ac442752c5585ead0536246 diff --git a/mlauerbach/Math5_mlauerbach/README.md b/mlauerbach/Math5_mlauerbach/README.md new file mode 100644 index 0000000..e69de29 diff --git a/mlauerbach/Math5_mlauerbach/Test1/instructions.txt b/mlauerbach/Math5_mlauerbach/Test1/instructions.txt new file mode 100644 index 0000000..e69de29 diff --git a/mlauerbach/Math5_mlauerbach/Week1_HW/instructions.txt b/mlauerbach/Math5_mlauerbach/Week1_HW/instructions.txt new file mode 100644 index 0000000..e69de29