def propose(request): """propose画面""" _, num = check(request) if num == 2: return render(request, 'propose.html') else: return redirect('home')
def questions(request): teacher,num = check(request) if num != 1: return redirect('home') q = teacher.getQuestions() data = {"questions":q} return render(request,"teachers/questions.html",data)
def task(request): """task画面""" student, num = check(request) if num != 2: return redirect('home') datas = student.getMyClassHomework() data = {'datas': datas} return render(request, 'task.html', data)
def test(request, id): """task画面""" student, num = check(request) if num != 2: return redirect('home') if (id == 1): test1(student) return redirect('home')
def question(request,id): teacher,num = check(request) if num != 1: return redirect('home') if Question.objects.filter(id = id,toTe = teacher).exists(): q = Question.objects.get(id=id) if request.method == "POST": q.addCommentT(request.POST["comment"]) data = {"q":q,"Accept":q.getAccept(),"Appo":q.getAppo(),"Comment":q.getComment(),"student":q.fromSt,"teacher":q.toTe} return render(request,"teachers/questionContent.html",data) else: return redirect('home')
def home(request): """studentのhome画面""" user_student, num = check(request) data = {"html": "background-image:url(../../../static/img/math.png)"} if num != 2: return redirect('home') if request.method != 'POST': if (user_student.classes_set.all()): classes = user_student.classes_set.all() data = { "classes": classes, "all": False, "html": "background-image:url(../../../static/img/math.png)" } return render(request, 'home.html', data) return render(request, 'home.html', data) elif request.POST["type"] == "my": if (user_student.classes_set.all()): classes = user_student.classes_set.all() data = { "classes": classes, "all": False, "html": "background-image:url../../../static/img/math.png)" } return render(request, 'home.html', data) return render(request, 'home.html', data) elif request.POST["join"] != "": c = Classes.objects.filter(id=int(request.POST["join"])) if (c.filter(students=user_student).exists()): result = "すでに参加済みのクラスです" else: c[0].students.add(user_student) c[0].save() result = c[0].class_name + "に参加しました" base = Base.objects.get(id=user_student.use_base) if (base.classes_set.all()): classes = base.classes_set.all() data = { "classes": classes, "all": True, "result": result, "html": "background-image:url(../../../static/img/math.png)" } return render(request, 'home.html', data) else: base = Base.objects.get(id=user_student.use_base) if (base.classes_set.all()): classes = base.classes_set.all() data = {"classes": classes, "all": True} return render(request, 'home.html', data) return render(request, 'home.html', data)
def schedule(request): teacher,num = check(request) if num != 1: return redirect('home') if(not Schedule.objects.filter(person = teacher).exists()): sd = Schedule.objects.create(person = teacher) sd.save() data = {"hs":range(24),"ms":range(60)} return render(request,"teachers/schedule.html",data) else: sd = Schedule.objects.get(person = teacher) if(request.method == "POST"): sd.add(int(request.POST["week"]),int(request.POST["sh"]),int(request.POST["sm"]),int(request.POST["eh"]),int(request.POST["em"])) data = {"schedules":sd.getScheduleData(),"hs":range(24),"ms":range(60)} return render(request,"teachers/schedule.html",data)
def room(request, id): student, num = check(request) if num != 2: return redirect('home') text = "コメントを入力" if request.method == "POST": if (request.POST["type"] == "comment"): Question.objects.get(id=id).addCommentSt(request.POST["comment"]) else: text = request.POST["comment"] context = { 'Comment': Question.objects.get(id=id).getComment(), 'one': Question.objects.get(id=id), 'text': text, } return render(request, 'room.html', context)
def chat(request): student, num = check(request) if num != 2: return redirect('home') if request.method == 'POST': teacher = Teachers.objects.get(id=int(request.POST["select_teachers"])) task = Tasks.objects.get(id=int(request.POST["select_tasks"])) questions = Question.objects.create(title=request.POST['comment'], task=task, toTe=teacher, fromSt=student) print(questions) questions.save() q = student.getQuestions() data = {"questions": q} return render(request, 'chat.html', data)
def create_class(request): teacher,num = check(request) if num != 1: return redirect('home') elif request.method !="POST": return render(request,'teachers/CreateClass.html') else: base = Base.objects.get(id = teacher.use_base) if (base.classes_set.all()): classes=base.classes_set.all() for tarclass in classes: if(tarclass.class_name==request.POST["name"]): result ="すでに存在するクラス名です。" return render(request,'teachers/CreateClass.html',{"result":result}) thisclass=Classes.objects.create(class_name=request.POST["name"],password = request.POST["password"],base=base) thisclass.teachers.add(teacher) thisclass.save() return redirect("/teacher/class/")
def studentContents(request,classid,studentid): teacher,num = check(request) if num != 1: return redirect('home') have,thisclass=checkCL(teacher.use_base,classid) if not have : print(0) return redirect("/teacher/class/") cl,st = checkStudent(classid,studentid) if(cl == None): print(1) return redirect("/teacher/class/") data = {"Homeworks":st.getHomeworkT(teacher),"st":st} return render(request,'teachers/studentContents.html',data)
def create_task(request,classid): #教師以外はリダイレクト teacher,num = check(request) if num != 1: return redirect('home') #ユーザーが使用しているベースにクラスが属しているか確認 have,thisclass=checkCL(teacher.use_base,classid) #クラスが属していた if have : #メソッドがPOSTでなければタスク作成ページに移動 if request.method != "POST": return render(request,'teachers/TaskCreate.html') else: task=Tasks.objects.create(name=request.POST["name"],contents=request.POST["content"],tarclass=thisclass) task.auther.add(teacher) task.save() return redirect("/teacher/class/"+str(classid)+"/task/"+str(task.id)+"/") else: return redirect("/teacher/class/")
def class_page(request, class_id): """studentのclass_page画面""" #生徒以外はリダイレクト student, num = check(request) if num != 2: return redirect('home') #ユーザーが使用しているベースにクラスが属しているか確認 have, thisclass = checkCL(student.use_base, class_id) #クラスが属していた if have: #クラスに生徒がいる場合 if (thisclass.students.all() != None): if (student.studenttasks_set.all().exists()): tasks = student.studenttasks_set.all() tasks2 = [] for i in tasks: task = gettask(i) if (task.tarclass == thisclass): data = { "task": i, "name": task.name, "contents": task.contents } tasks2.append(data) context = {'tasks': tasks2} return render(request, 'class_page.html', context) return render(request, 'class_page.html') #クラスに生徒がいない場合 else: data = {"thisclass": thisclass} return render(request, 'class_page.html', data) #クラスに属していない else: return redirect("/student/home/") # クラスに出された宿題を表示する if request.method == 'POST': tasks = Tasks(name=request.POST["name"], contents=request.POST['contents'], tarclass=thisclass) tasks.save() context = {'tasks': tasks} return render(request, 'class_page.html', context)
def TasksList(request,classid): #教師以外はリダイレクト teacher,num = check(request) if num != 1: return redirect('home') #ユーザーが使用しているベースにクラスが属しているか確認 if(not Classes.objects.get(id=classid).teachers.filter(id=teacher.id).exists()): return redirect("/teacher/class/") have,thisclass=checkCL(teacher.use_base,classid) #クラスが属していた if have : #メソッドがPOSTでなければタスク作成ページに移動 if(thisclass.tasks_set.all().filter(auther = teacher).exists()): tasks=thisclass.tasks_set.all().filter(auther = teacher) data = {"tasks":tasks} return render(request,'teachers/TaskList.html',data) else: return render(request,'teachers/TaskList.html') else: return redirect("/teacher/class/")
def class_content(request,classid): #教師以外はリダイレクト teacher,num = check(request) if num != 1: return redirect('home') #ユーザーが使用しているベースにクラスが属しているか確認 have,thisclass=checkCL(teacher.use_base,classid) #クラスが属していた if have : #クラスに生徒がいる場合 if (thisclass.students.all()!= None): sts = thisclass.students.all() data={"thisclass":thisclass,"sts":sts,"tags":tagsstate(thisclass,teacher)} return render(request,'teachers/Content.html',data) #クラスに生徒がいない場合 else: data={"thisclass":thisclass} return render(request,'teachers/Content.html',data) #クラスが属していない else: return redirect("/teacher/class/")
def chat_create(request): student, num = check(request) if num != 2: return redirect('home') if request.method == 'POST': teacher = Teachers.objects.get(id=int(request.POST["select_teachers"])) task = Tasks.objects.get(id=int(request.POST["select_tasks"])) questions = Question.objects.create(title=request.POST['comment'], task=task, toTe=teacher, fromSt=student) print(questions) questions.save() questions = Question.objects.order_by('-finalup') teacher_name = Teachers.objects.all() task_name = Tasks.objects.all() context = { "teacher": teacher_name, "questions": questions, "tasks": task_name } return render(request, 'chat_create.html', context)
def tag(request): """tag画面""" cnt = 0 #生徒以外はリダイレクト student, num = check(request) if num != 2: return redirect('home') if request.method == "POST": finish1 = request.POST["userid1"] content = finish1.split(":") for i in range(int(len(content) / 3)): if content[i] == "": break task = StudentTasks.objects.get(id=int(content[i * 3])) task.finish = True if (content[i * 3 + 2] == "true"): task.result = True task.save() if (student.studenttasks_set.all().exists()): tasks = student.studenttasks_set.all() classes = student.classes_set.all() tasks2 = [] for i in tasks: task = gettask(i) if i.finish == 0: cnt += 1 data = {"task": i, "name": task.name, "contents": task.contents} tasks2.append(data) context = {'tasks': tasks2, 'cnt': cnt, "classes": classes} return render(request, 'tag.html', context) else: classes = student.classes_set.all() context = {"classes": classes} return render(request, 'tag.html', context)
def edit_class(request): Me,num = check(request) if num != 1: return redirect('home') if request.method != 'POST': if (Me.classes_set.all()): classes=Me.classes_set.all() data = {"classes":classes,"all":False} return render(request,'teachers/class.html',data) return render(request,'teachers/class.html') elif request.POST["type"] == "my" : if (Me.classes_set.all()): classes=Me.classes_set.all() data = {"classes":classes,"all":False} return render(request,'teachers/class.html',data) return render(request,'teachers/class.html') elif request.POST["join"] !="": c = Classes.objects.filter(id = int(request.POST["join"])) if(c.filter(teachers=Me).exists()): result = "すでに参加済みのクラスです" else: c[0].teachers.add(Me) c[0].save() result = c[0].class_name+"に参加しました" base = Base.objects.get(id = Me.use_base) if (base.classes_set.all()): classes=base.classes_set.all() data = {"classes":classes,"all":True,"result":result} return render(request,'teachers/class.html',data) else: base = Base.objects.get(id = Me.use_base) if (base.classes_set.all()): classes=base.classes_set.all() data = {"classes":classes,"all":True} return render(request,'teachers/class.html',data) return render(request,'teachers/class.html')
def edit_tags(request,classid): teacher,num = check(request) if num != 1: return redirect('home') have,thisclass=checkCL(teacher.use_base,classid) if have : if request.method != "POST": data = {} if(Tags.objects.filter(tarclass = thisclass).exists()): tags = Tags.objects.filter(tarclass = thisclass) data = {"tags":tags} return render(request,'teachers/tagsEdit.html',data) else: if request.method == "POST": alert = None tags = None if request.POST["type"] == "delete": tagids=request.POST.getlist("tags") for tagid in tagids : tag = Tags.objects.get(id = int(tagid)) tag.delete() if request.POST["type"] == "add": if(Tags.objects.filter(tarclass = thisclass,tag = request.POST["name"]).exists()): alert = "aleady exists" else: tag = Tags.objects.create(tag=request.POST["name"],tarclass = thisclass) tag.save() if(Tags.objects.filter(tarclass = thisclass).exists()): tags = Tags.objects.filter(tarclass = thisclass) data = {"tags":tags} data = {"tags":tags,"alert":alert} return render(request,'teachers/tagsEdit.html',data) else: return redirect("/teacher/class/")
def home(request): _,num = check(request) if num == 1: return redirect('teacher:teclass') else: return redirect('home')
def taskContent(request,classid,taskid): teacher,num = check(request) if num != 1: return redirect('home') #ユーザーが使用しているベースにクラスが属しているか確認 if(not Classes.objects.get(id=classid).teachers.filter(id=teacher.id).exists()): return redirect("/teacher/class/") have,thisclass=checkCL(teacher.use_base,classid) #クラスが属していた if have : #メソッドがPOSTでなければタスク作成ページに移動 if request.method == "POST": if request.POST["type"] == "students": if request.POST.getlist("students"): studentsid=request.POST.getlist("students") thistask = Tasks.objects.get(id = taskid) day=int(request.POST["days"]) days=[datetime.timedelta(days=1),datetime.timedelta(days=2),datetime.timedelta(days=3),datetime.timedelta(days=4),datetime.timedelta(days=5),datetime.timedelta(days=6),datetime.timedelta(weeks=1),datetime.timedelta(weeks=2),datetime.timedelta(weeks=4)] for studentid in studentsid : student = Students.objects.get(id=studentid) homework=StudentTasks.objects.create(person=student,limit=timezone.now()+days[day]) homework.task.add(thistask) homework.save() return redirect("/teacher/class/") if request.POST["type"] == "change": if(thisclass.tasks_set.all().filter(auther = teacher).exists()): tasks=thisclass.tasks_set.all().filter(auther = teacher) for task in tasks: if(task.id==taskid): task.name=request.POST["name"] task.contents=request.POST["content"] task.save() if request.POST["type"] == "addtags": tasks=thisclass.tasks_set.all().filter(auther = teacher) for task in tasks: if(task.id==taskid): if(task.tag.all().exists()): nowtags = task.tag.all() for tagid in request.POST.getlist("tags"): if(nowtags.filter(id=int(tagid)).exists()): alert = "aleady exists" print(alert) else: task.tag.add(Tags.objects.get(id = int(tagid))) task.save() else: for tagid in request.POST.getlist("tags"): task.tag.add(Tags.objects.get(id = int(tagid))) task.save() if request.POST["type"] == "delete": tasks=thisclass.tasks_set.all().filter(auther = teacher) for task in tasks: if(task.id==taskid): tagids=request.POST.getlist("tags") for tagid in tagids : tag = Tags.objects.get(id = int(tagid)) task.tag.remove(tag) task.save() if(thisclass.tasks_set.all().filter(auther = teacher).exists()): tasks=thisclass.tasks_set.all().filter(auther = teacher) for task in tasks: if(task.id==taskid): sts = thisclass.students.all() thistags = None tags = None if (task.tag.all().exists()): thistags = task.tag.all() if(Tags.objects.filter(tarclass = thisclass).exists()): tags = Tags.objects.filter(tarclass = thisclass) data = {"tags":tags} data={"task":task,"students":sts,"tags":tags,"thistags":thistags} return render(request,'teachers/TaskContent.html',data) else: return redirect("/teacher/class/") else: return redirect("/teacher/class/")