Exemple #1
0
def propose(request):
    """propose画面"""
    _, num = check(request)
    if num == 2:
        return render(request, 'propose.html')
    else:
        return redirect('home')
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
def test(request, id):
    """task画面"""
    student, num = check(request)
    if num != 2:
        return redirect('home')
    if (id == 1):
        test1(student)
    return redirect('home')
Exemple #5
0
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') 
Exemple #6
0
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)
Exemple #7
0
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)
Exemple #8
0
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)
Exemple #9
0
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)
Exemple #10
0
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/")
Exemple #11
0
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)
Exemple #12
0
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/")
Exemple #13
0
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)
Exemple #14
0
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/")
Exemple #15
0
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/")
Exemple #16
0
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)
Exemple #17
0
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)
Exemple #18
0
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')
Exemple #19
0
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/")
Exemple #20
0
def home(request):
    _,num = check(request)
    if num == 1:
        return redirect('teacher:teclass')
    else:
        return redirect('home')
Exemple #21
0
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/")