Exemplo n.º 1
0
def main_testpaper_post_room(request):
    tp = get_or_none(TestPaper,id=int(request.POST.get('tpid',0)))
    str_room = request.POST.get('rooms',None)
    is_exported = request.POST.get('is_exported',None)

    if is_exported :
        tp.is_exported = True
        tp.save()

    if str_room :
        arr_room = str_room.split(',')
        tp.rooms.clear()
        for room in arr_room:
            sy = get_or_none(SchoolYear,id=int(room))
            if sy : tp.rooms.add(sy)
        tp.save()

    rooms = SchoolYear.objects.filter(school=tp.school,year=tp.year).order_by('room')

    context = {
        'user': request.user,
        'testpaper':tp,
        'rooms':rooms
    }
    return render(request, 'main_testpaper_room.html', context)
Exemplo n.º 2
0
def main_testpaper_post_group(request):
    user = request.user
    tp = get_or_none(TestPaper,id=int(request.POST.get('tpid',0)))
    str_group = request.POST.get('groups',None)
    is_exported = request.POST.get('is_exported',None)

    if is_exported :
        tp.is_exported = True
        tp.save()

    if str_group :
        arr_group = str_group.split(',')
        tp.groups.clear()
        for group in arr_group:
            sy = get_or_none(Group,id=int(group))
            if sy : tp.groups.add(sy)
        tp.save()

    groups = Group.objects.filter(union=tp.union,unionuser__user=user).order_by('id')

    context = {
        'user': user,
        'testpaper':tp,
        'groups':groups
    }
    return render(request, 'main_testpaper_group.html', context)
Exemplo n.º 3
0
def main_select_post_maketest(request):
    test_title = request.POST.get('title')
    school = get_or_none(School,id=int(request.POST.get('school',0)))
    year = request.POST.get('year')
    tpid = request.POST.get('tpid')
    str_questions = request.POST.get('questions')
    purpose = int(request.POST.get('purpose', 0))

    if tpid :
        tpid = get_or_none(TestPaper,id=tpid)
        tp = TestPaper.objects.create(form=tpid.form, user=request.user, title=test_title, school=school, year=year, purpose=purpose, is_exported=False)
        if tp :
            for question in reversed(tpid.get_questions()) :
                TestPaperQuestion.objects.create(testpaper=tp,question=question)
    else :
        arr_questions = str_questions.split(',')
        arr_questions = reversed(arr_questions)

        form = get_or_none(TestPaperForm, id=1)

        tp = TestPaper.objects.create(form=form, user=request.user, title=test_title, school=school, year=int(year), purpose=purpose, is_exported=False)

        if tp :
            for question in arr_questions :
                TestPaperQuestion.objects.create(testpaper=tp,question=get_or_none(Question,id=question))

    return main_testpaper(request,tp=tp)
Exemplo n.º 4
0
def get_question_feedback(request):
    user = get_or_none(User,id=request.GET.get('uid',0))
    question = get_or_none(Question,id=request.GET.get('qid',0))
    feedback = get_or_none(QuestionFeedback,user=user,question=question)
    if feedback :
        return HttpResponse(json.dumps([{'question':feedback.question.id, 'is_good':feedback.is_good}], default=date_handler), content_type="application/json")
    return HttpResponse(json.dumps([{}], default=date_handler), content_type="application/json")
Exemplo n.º 5
0
def get_testpaper_question_list(request):
    testpaper = get_or_none(TestPaper,id=request.GET.get('tpid',0))
    user = get_or_none(User,id=request.GET.get('uid',0))
    limit = request.GET.get('limit','')

    arr = []

    if limit == '':
        tpqs = TestPaperQuestion.objects.filter(testpaper_id=testpaper).order_by('-id')
    else :
        limit = limit.split(':')
        if limit : limit = [int(item) for item in limit]
        else : limit = [0,0]
        tpqs = TestPaperQuestion.objects.filter(testpaper_id=testpaper).order_by('-id')[limit[0]:limit[1]]

    if testpaper.get_submit(user) : is_solved = 1
    else : is_solved = 0

    for tpq in tpqs :
        if tpq.question :
            arr.append({
                "id":tpq.question.id,"type":tpq.question.type,"unit":tpq.question.unit.id,"unit_title":tpq.question.unit.title,
                "src":tpq.question.src.url,"explain":tpq.question.explain.url,"keyword":tpq.question.keyword,
                "video":tpq.question.video,"answer":tpq.question.answer,"is_active":tpq.question.is_active,
                "items":tpq.question.items,"answer_mobile":tpq.question.answer_mobile,"is_solved":is_solved,
                "purpose":testpaper.purpose,"date_created":"%s"%set_date(tpq.question.date_created),
            })

    return HttpResponse(json.dumps(arr), content_type="application/json")
Exemplo n.º 6
0
def main_testpaper_post_form(request):
    tp = get_or_none(TestPaper,id=int(request.POST.get('tpid',0)))
    form = get_or_none(TestPaperForm,id=int(request.POST.get('fid',0)))

    tp.form = form
    tp.save()

    return main_testpaper(request,tp=tp)
Exemplo n.º 7
0
def get_invenroty(request):
    user = get_or_none(User,id=request.GET.get('uid',0))
    question = get_or_none(Question,id=request.GET.get('qid',0))

    inventory = get_or_none(QuestionInventory, user=user,question=question)

    if inventory : return HttpResponse(json.dumps([{'question':inventory.question.id}], default=date_handler), content_type="application/json")
    else : return HttpResponse(json.dumps([{}], default=date_handler), content_type="application/json")
Exemplo n.º 8
0
def main_groupuser_post_groupuser_cancel(request):
    user = get_or_none(User,id=int(request.POST.get('uid',0)))
    union = get_or_none(Union, id=request.POST.get('union_id',0))
    unionuser = get_or_none(UnionUser, union=union, user=user)
    this_group = get_or_none(Group,id=int(request.GET.get("id",0)))
    if unionuser :
        gu = get_or_none(GroupUser,unionuser=unionuser,group=this_group)
        if gu :
            gu.delete()
    return main_groupuser(request)
Exemplo n.º 9
0
def main_dashboard_post_union_register(request):
    user = request.user
    union_id = int(request.POST.get("union_id",0))

    union = get_or_none(Union,id=union_id)

    if get_or_none(UnionUser, union=union, user=user) == None:
        UnionUser.objects.get_or_create(union=union, user=user, is_active=False)
        return HttpResponse("%d"%union.id)
    return HttpResponse("0")
Exemplo n.º 10
0
def main_groupuser_post_groupuser_move(request):
    user = get_or_none(User,id=int(request.POST.get('uid',0)))
    union = get_or_none(Union, id=request.POST.get('union_id',0))
    unionuser = get_or_none(UnionUser, union=union, user=user)
    this_group = get_or_none(Group,id=int(request.GET.get("id",0)))
    if this_group.unionuser != unionuser :
        gu, created = GroupUser.objects.get_or_create(unionuser=unionuser,group=this_group)
        if gu :
            unionuser.is_active = True
            unionuser.save()
    return main_groupuser(request)
Exemplo n.º 11
0
def get_inventory_list(request):
    user = get_or_none(User,id=request.GET.get('uid',0))
    units = QuestionInventory.objects.filter(user=user).values('question__unit__unit__unit__unit').annotate(count=Count('question__unit__unit__unit__unit'))

    arr = []

    for unit in units:
        unit2 = get_or_none(QuestionUnit2,id=unit["question__unit__unit__unit__unit"], is_active=True)
        if unit2 :
            arr.append({"id":unit2.id,"title":unit2.title,'count':unit['count']})

    return HttpResponse(json.dumps(arr), content_type="application/json")
Exemplo n.º 12
0
def set_qna_answer(request):
    user = get_or_none(User,id=int(request.POST.get("user_id",0)))
    question = get_or_none(QnAQuestion,id=int(request.POST.get("question_id",0)))
    contents = request.POST.get("contents","")
    images = request.FILES.getlist("image")

    qnaanswer = QnAAnswer.objects.create(user=user, question=question, contents=contents, is_selected=False)
    if qnaanswer :
        for image in images:
            qai = QnAAnswerImage.objects.create(qnaanswer=qnaanswer,src="/")
            qai.src.save(image.name, ContentFile(image.read()))
        return HttpResponse("OK", status=200)
    return HttpResponse("Error", status=400)
Exemplo n.º 13
0
def main_testpaper_post_modify(request):
    tp = get_or_none(TestPaper,id=int(request.POST.get('tpid',0)))
    str_questions = request.POST.get('questions')
    arr_questions = str_questions.split(',')
    arr_questions = reversed(arr_questions)

    if tp :
        tpqs = TestPaperQuestion.objects.filter(testpaper=tp)
        for tpq in tpqs :
            tpq.delete()
        for question in arr_questions :
            TestPaperQuestion.objects.create(testpaper=tp,question=get_or_none(Question,id=question))

    return main_testpaper(request,tp=tp)
Exemplo n.º 14
0
def set_testpaper_submit(request):
    user = get_or_none(User,id=request.GET.get("uid",0))
    testpaper = get_or_none(TestPaper,id=request.GET.get("tpid",0))
    answer = request.POST.get("answer","")

    jo = json.loads(answer)

    for tq in testpaper.get_questions() :
        TestPaperSubmit.objects.get_or_create(user=user,testpaper=testpaper,question=tq,answer=jo[str(tq.id)])

    ts = list(TestPaperSubmit.objects.filter(user=user,testpaper=testpaper).values())

    if ts : return HttpResponse(json.dumps({"state":1}), content_type="application/json")
    return HttpResponse(json.dumps({"state":0}), content_type="application/json")
Exemplo n.º 15
0
def set_user_profilepic(request):
    pictures = request.FILES.getlist("picture")
    uid = int(request.GET.get("uid",0))
    user = get_or_none(User,id=uid)
    for picture in pictures:
        user.profile.src.save("%s.jpg"%picture.name, ContentFile(picture.read()))
    return get_user_info(request)
Exemplo n.º 16
0
def main_payment(request):
    union_id = int(request.POST.get("union_id", 0))

    union = get_or_none(Union, id=union_id)


    return HttpResponse('True')
Exemplo n.º 17
0
def main_dashboard(request):
    union = get_or_none(Union, id=request.POST.get('union_id',0))
    context = {
        'user': request.user,
        'union':union,
    }
    return render(request, 'main_dashboard.html', context)
Exemplo n.º 18
0
def get_qna_answers(request):
    qnaquestion = get_or_none(QnAQuestion,id=int(request.GET.get("qid",0)))

    limit = request.GET.get("limit",None)
    if limit : limit = limit.split(":")

    answers = QnAAnswer.objects.filter(question=qnaquestion).order_by('is_selected','-id')

    if limit : questions = answers[limit[0]:limit[1]]

    arr = []

    for answer in answers :
        arr.append({
            'id':answer.id
            ,'user_src':answer.user.profile.get_src()
            ,'username':answer.user.first_name
            ,'user_id':answer.user.id
            ,'src':answer.get_srcs()
            ,'contents':answer.contents
            ,'is_selected':int(answer.is_selected)
            ,'date_created':unixtime(answer.date_created)
        })

    return HttpResponse(json.dumps(arr, default=date_handler), content_type="application/json")
Exemplo n.º 19
0
def get_user_info(request):
    uid = int(request.GET.get("uid",0))
    user = get_or_none(User,id=uid)
    if user.id :
        school_id, school_name, school_year, school_room = 0, '', '', ''
        if user.profile.school :
            school_id = user.profile.school.id
            school_name = user.profile.school.title
        if user.profile.schoolyear :
            school_id = user.profile.schoolyear.school.id
            school_name = user.profile.schoolyear.school.title
            school_year = user.profile.schoolyear.year
            school_room = user.profile.schoolyear.room
        arr = [{
            'id':user.id,
            'username':user.username,
            'email':user.email,
            'first_name':user.first_name,
            'school_id':school_id,
            'school_name':school_name,
            'school_year':school_year,
            'school_room':school_room,
            'src':user.profile.src.url,
            'phone':user.profile.phone,
            'gender':user.profile.get_gender()
        }]
        return HttpResponse(json.dumps(arr, default=date_handler), content_type="application/json")
    else:
        return HttpResponse(json.dumps([{}], default=date_handler), content_type="application/json")
    return HttpResponse(json.dumps([{}], default=date_handler), content_type="application/json")
Exemplo n.º 20
0
def main_testpaper_modify(request):
    arr = []
    q = request.GET.get('q','')
    tp = get_or_none(TestPaper,id=request.GET.get('tpid'))

    u1 = get_or_none(QuestionUnit1,id=request.GET.get('unit1',0))
    u2 = get_or_none(QuestionUnit2,id=request.GET.get('unit2',0))
    u3 = get_or_none(QuestionUnit3,id=request.GET.get('unit3',0))
    u4 = get_or_none(QuestionUnit4,id=request.GET.get('unit4',0))
    unit1, unit2, unit3, unit4 = None, None, None, None


    unit1 = QuestionUnit1.objects.filter(is_active=True)
    query = None

    if u1 :
        unit2 = QuestionUnit2.objects.filter(unit=u1,is_active=True)
        query = None
        if u2 :
            unit3 = QuestionUnit3.objects.filter(unit=u2,is_active=True)
            query = Q(unit__unit__unit__unit=u2)
            if u3 :
                unit4 = QuestionUnit4.objects.filter(unit=u3,is_active=True)
                query = query&Q(unit__unit__unit=u3)
                if u4 :
                    query = query&Q(unit__unit=u4)

    questions = []
    if query :
        questions = Question.objects.filter(query).values('unit').annotate(count=Count('unit'))

    for question in questions:
        tmp = Question.objects.filter(unit=question['unit'])
        if tmp :
            type_0 = tmp.filter(unit=tmp[0].unit, type=0)
            type_1 = tmp.filter(unit=tmp[0].unit, type=1)
            arr.append({'count':question['count'],'unit':tmp[0].unit,'element':tmp[0],'type_0':type_0,'type_1':type_1})

    context = {
        'user': request.user,
        'query':q,
        'unit1':unit1,'unit2':unit2,'unit3':unit3,'unit4':unit4,
        'u1':u1,'u2':u2,'u3':u3,'u4':u4,
        'questions':arr,
        'testpaper':tp
    }
    return render(request, 'main_testpaper_modify.html', context)
Exemplo n.º 21
0
def main_groupuser_post_groupuser_teacher(request):
    user = get_or_none(User,id=int(request.POST.get('uid',0)))
    union = get_or_none(Union, id=request.POST.get('union_id',0))
    unionuser = get_or_none(UnionUser, union=union, user=user)
    this_group = get_or_none(Group,id=int(request.GET.get("id",0)))
    if this_group.unionuser != unionuser :
        gu = get_or_none(GroupUser,unionuser=unionuser,group=this_group)
        if gu :
            gu_new, created = GroupUser.objects.get_or_create(unionuser=this_group.unionuser,group=this_group)
            if gu_new :
                gu_new.in_group = True
                gu_new.is_active = True
                gu_new.save()
                this_group.unionuser = unionuser
                this_group.save()
                gu.delete()
    return main_groupuser(request)
Exemplo n.º 22
0
def main_mypage_post_group_change(request):
    user = request.user
    Group = get_or_none(Group,id=int(request.POST.get('sid',0)))
    if Group :
        user.profile.group = Group
        user.profile.save()
        return HttpResponse("True")
    return HttpResponse("False")
Exemplo n.º 23
0
def main_testpaper_post_delete(request):
    tp = get_or_none(TestPaper,id=int(request.GET.get('tpid',0)))
    if tp.is_exported :
        tp.is_shown = False
        tp.save()
    else :
        tp.delete()
    return HttpResponseRedirect("/inventory/")
Exemplo n.º 24
0
def main_mypage_post_group_change(request):
    user = request.user
    school = get_or_none(School,id=int(request.POST.get('sid',0)))
    if school :
        user.profile.school = school
        user.profile.save()
        return HttpResponse("True")
    return HttpResponse("False")
Exemplo n.º 25
0
def select_qna_answer(request):
    answer = get_or_none(QnAAnswer,id=int(request.GET.get("answer_id",0)))
    if answer :
        if answer.is_selected : answer.is_selected = False
        else : answer.is_selected = True
        answer.save()
        return HttpResponse("%s"%answer.is_selected, status=200)
    return HttpResponse("Error", status=400)
Exemplo n.º 26
0
def get_groupuser_by_union(user, union):
    arr_list = []
    unionuser = get_or_none(UnionUser,union=union, user=user)
    group = Group.objects.filter(unionuser=unionuser)
    for g in group :
        arr_list.append(g)
    for gu in GroupUser.objects.filter(unionuser=unionuser):
        arr_list.append(gu.group)
    return arr_list
Exemplo n.º 27
0
def main_dashboard_post_group_register(request):
    user = request.user
    #union_id = int(request.POST.get("union_id", 0))

    if get_or_none(Union, user=user, is_paid=False):
        if not get_or_none(Union, user=user, is_active=False):
            unionUser = UnionUser.objects.get(user=user, is_active=True)
            union = Union.objects.get(user=user, is_active=True)
            group = Group.objects.get(union=union, is_active=True)
            unionUser.is_active = False
            union.is_active = False
            group.is_active = False
            unionUser.save()
            union.save()
            group.save()

        title = request.POST.get("title", "")

        union_obj, err = Union.objects.get_or_create(
            user=user,
            title=title,
            address=request.POST.get("adres", ""),
            phone=user.profile.phone,
            icon="/static/img/main/icon_union_tmp.png",
            is_paid=True,
            is_active=True
        )

        unionuser_obj, err = UnionUser.objects.get_or_create(
            union = union_obj,
            user = user,
            is_active = True
        )

        Group.objects.get_or_create(
            union = union_obj,
            unionuser = unionuser_obj,
            title = u"유료그룹_" + title,
            is_paid=True,
            is_active=True
        )
        return HttpResponse("True")

    return HttpResponse("False")
Exemplo n.º 28
0
def get_level_by_union(user, union):
    if union.user == user : return 1
    else:
        unionuser = get_or_none(UnionUser,union=union, user=user)
        group = Group.objects.filter(unionuser=unionuser)
        if group : return 2
        else :
            groupuser = GroupUser.objects.filter(unionuser=unionuser)
            if groupuser: return 3
    return 0
Exemplo n.º 29
0
def set_question_feedback(request):
    user = get_or_none(User,id=request.GET.get('uid',0))
    question = get_or_none(Question,id=request.GET.get('qid',0))
    is_good = request.GET.get('is_good','1')

    feedback, created = QuestionFeedback.objects.get_or_create(question=question,user=user)

    if is_good == '1' :
        is_good = True
    elif is_good == '-1' :
        feedback.delete()
        return HttpResponse(json.dumps([{}], default=date_handler), content_type="application/json")
    else :
        is_good = False

    if feedback :
        feedback.is_good = is_good
        feedback.save()
        return HttpResponse(json.dumps([{'question':feedback.question.id, 'is_good':feedback.is_good}], default=date_handler), content_type="application/json")
    return HttpResponse(json.dumps([{}], default=date_handler), content_type="application/json")
Exemplo n.º 30
0
def get_question_list(request):
    q = request.GET.get("q","")
    limit = request.GET.get('limit')

    u1 = get_or_none(QuestionUnit1,id=request.GET.get('u1'))
    u2 = get_or_none(QuestionUnit2,id=request.GET.get('u2'))
    u3 = get_or_none(QuestionUnit3,id=request.GET.get('u3'))
    u4 = get_or_none(QuestionUnit4,id=request.GET.get('u4'))
    u5 = get_or_none(QuestionUnit5,id=request.GET.get('u5'))

    q = q.split()
    if q : query = reduce(operator.and_, (Q(keyword__icontains = item) for item in q))
    else : query = Q()

    if u5 : query = query&Q(unit=u5)
    elif u4 : query = query&Q(unit__unit=u4)
    elif u3 : query = query&Q(unit__unit__unit=u3)
    elif u2 : query = query&Q(unit__unit__unit__unit=u2)
    elif u1 : query = query&Q(unit__unit__unit__unit__unit=u1)

    if limit :
        limit = limit.split(':')
        limit = [int(item) for item in limit]
        questions = Question.objects.filter(query)[limit[0]:limit[1]]
    else :
        questions = Question.objects.filter(query)

    arr = []

    for question in questions[0:1] :
        if question :
            if question.src : src = question.src.url
            else : src = ""
            if question.explain : explain = question.explain.url
            else : explain = ""
            arr.append({
                "id":question.id,"type":question.type,"unit":question.unit.id,"unit_title":question.unit.title,"src":src,"explain":explain,"keyword":question.keyword,
                "video":question.video,"answer":question.answer,"is_active":question.is_active,"date_created":"%s"%set_date(question.date_created)
            })

    return HttpResponse(json.dumps(arr), content_type="application/json")