def get_all_relation_of_type(person, relation_direction, relation_type): result = [] traversal_definition = dict(node_class=Person, direction=relation_direction, relation_type=relation_type, model=None) relations_traversal = Traversal(person, Person.__label__, traversal_definition) result = relations_traversal.all() return result
def query_relations(cls, source, target_cls, direction=EITHER, relation_type=None, model=None): definition = dict(node_class=target_cls, direction=direction, relation_type=relation_type, model=model) relations_traversal = Traversal(source, source.__label__, definition) return relations_traversal.all()
def studentpin(request, id): if request.session.has_key('contestant'): exam = Exam.nodes.get(examid=id) idcontestant = request.session['contestant'] contestant = Contestant.nodes.get(contestantid=idcontestant) exambatch = contestant.exambatchrel[0] # print(exambatch.pincode) definition = dict(node_class=Question, direction=INCOMING, relation_type=None, model=None) getTraversals = Traversal(exam, Question.__label__, definition) allquestion = [] order = 0 for getTraversal in getTraversals: order += 1 new_ques_mod = QuestionMod(order, getTraversal) allquestion.append(new_ques_mod) numbques = len(allquestion) context = { 'exam': exam, 'allquestion': allquestion, 'numbques': numbques, 'exambatch': exambatch } return render(request, 'home/studentpin.html', context) else: return redirect('home:login')
def retrieve_menu_plan(meal): definition = dict(node_class=Meal_Type, direction=OUTGOING, relation_type=None, model=None) all_relations = Traversal(meal, meal.__label__, definition).all() return list( MenuPlan(str(x.name), str(meal.name)) for x in all_relations)
def attack(request): result = OrderedDict() try: vm_id = request.GET.get('vm_id', '') vm = VM.nodes.first_or_none(vm_id=vm_id) if vm is None: return JsonResponse([], safe=False) definition = dict(node_class=VM, direction=INCOMING, relation_type=None, model=None) incoming_traversal = Traversal(vm, VM.__label__, definition) all_incoming_vms = incoming_traversal.all() except Exception as e: logging.error(f'An error occured in /attack method: {e}') return HttpResponseServerError(['An error occured in /attack method.']) for incoming_vm in all_incoming_vms: result[incoming_vm.vm_id] = incoming_vm return JsonResponse(list(result.keys()), safe=False)
def questionexam(request, id): if request.user.is_authenticated: user = request.user getuserid = user.id exam = Exam.nodes.get(examid=id) definition = dict(node_class=Question, direction=INCOMING, relation_type=None, model=None) getTraversals = Traversal(exam, Question.__label__, definition) allquestion = [] order = 0 for getTraversal in getTraversals: order += 1 new_ques_mod = QuestionMod(order, getTraversal) allquestion.append(new_ques_mod) if request.method == 'POST': content = request.POST.get('content') chA = request.POST.get('chA') chB = request.POST.get('chB') chC = request.POST.get('chC') chD = request.POST.get('chD') chAns = request.POST.get('chAns') question = Question(content=content, A=chA, B=chB, C=chC, D=chD, answer=chAns) question.save() question.examrel.connect(exam) return redirect('home:questionexam', exam.examid) context = {'user': user, 'exam': exam, 'allquestion': allquestion} return render(request, 'home/questionexam.html', context) else: return redirect('home:login')
def inputpin(request): if request.method == 'POST': inputpin = request.POST.get('inputpin') yourname = request.POST.get('yourname') try: exambatch = ExamBatch.nodes.get(pincode=inputpin) examid = exambatch.examrel[0].examid exam = Exam.nodes.get(examid=examid) contestant = Contestant(contestantname=yourname, timebatch=5) contestant.save() contestant.exambatchrel.connect(exambatch) request.session['contestant'] = str(contestant.contestantid) definition = dict(node_class=Question, direction=INCOMING, relation_type=None, model=None) all_question = Traversal(exam, Question.__label__, definition) doc_contest = { '_id': contestant.contestantid, 'exambatchid': exambatch.exambatchid, 'result': 0, } order = 1 for question in all_question: doc_contest[str(order)] = 0 order += 1 x = mycol.insert_one(doc_contest) return redirect('home:studentpin', examid) except: return render(request, 'home/inputpin.html', {'message': 'Mã pin không chính xác'}) return render(request, 'home/inputpin.html')
def teacherpin(request, id): if request.user.is_authenticated: user = request.user getuserid = user.id exam = Exam.nodes.get(examid=id) definition = dict(node_class=Question, direction=INCOMING, relation_type=None, model=None) getTraversals = Traversal(exam, Question.__label__, definition) allquestion = [] order = 0 a = str(random.randint(111111, 999999)) exambatch = ExamBatch(pincode=a, timebatch=5) exambatch.save() exambatch.examrel.connect(exam) cache.set(exambatch.exambatchid, 0, timeout=3600) for getTraversal in getTraversals: order += 1 new_ques_mod = QuestionMod(order, getTraversal) allquestion.append(new_ques_mod) numbques = len(allquestion) context = { 'user': user, 'exam': exam, 'allquestion': allquestion, 'exambatch': exambatch, 'numbques': numbques } return render(request, 'home/teacherPin.html', context) else: return redirect('home:login')
def contestantlistdiv(request): exambatchid = request.GET.get('exambatch', None) exambatch = ExamBatch.nodes.get(exambatchid=exambatchid) # print(cache.get(exambatch.exambatchid)) # print(cache.ttl(exambatch.exambatchid)) stage = cache.get(exambatch.exambatchid) definition = dict(node_class=Contestant, direction=INCOMING, relation_type=None, model=None) getTraversals = Traversal(exambatch, Contestant.__label__, definition) s = '' for contestant in getTraversals: temp = '''<div class="col-3 col-lg-3" style="text-align: center;margin-bottom: 10px; color: #431b93;font-weight: 900"> ''' + contestant.contestantname + '''</div>''' s += temp data = {'flag': True, 's': s, 'stage': stage} return JsonResponse(data)
def statisticResult(request): exambatchid = request.GET.get('exambatch', None) stage = request.GET.get('stage', None) # print(exambatchid) exambatch = ExamBatch.nodes.get(exambatchid=exambatchid) definition = dict(node_class=Contestant, direction=INCOMING, relation_type=None, model=None) getTraversals = Traversal(exambatch, Contestant.__label__, definition) mydocre = mycol.find({'exambatchid': exambatchid}) sortres_list = mycol.find({ 'exambatchid': exambatchid }).sort("result", -1).limit(3) full_sorlist = mycol.find({ 'exambatchid': exambatchid }).sort("result", -1).limit(10) contestant_list = [] full_contestant_list = [] for contestant in full_sorlist: cont = Contestant.nodes.get(contestantid=contestant['_id']) full_contestant_list.append(cont.contestantname) full_contestant_list = full_contestant_list[3:] s = '' for contestant in full_contestant_list: temp = '''<p style="color:red;font-weight: 900;font-size: 24pt;">''' + contestant + '''</p>''' s += temp for sortres in sortres_list: cont = Contestant.nodes.get(contestantid=sortres['_id']) contestant_list.append(cont.contestantname) if len(contestant_list) == 3: top1 = contestant_list[0] top2 = contestant_list[1] top3 = contestant_list[2] elif len(contestant_list) == 2: top1 = contestant_list[0] top2 = contestant_list[1] top3 = 'No One' elif len(contestant_list) == 1: top1 = contestant_list[0] top2 = 'No One' top3 = 'No One' else: top1 = 'No One' top2 = 'No One' top3 = 'No One' # dataPoint = [] chart = mycol.find({'exambatchid': exambatchid}).sort("result", 1) order = 0 for element in chart: order += 1 cont = Contestant.nodes.get(contestantid=element['_id']) temp = { 'x': order, 'y': element['result'], 'label': str(cont.contestantname), 'color': "#E21B3C" } dataPoint.append(temp) data = { 'flag': True, 's': s, 'top1': top1, 'top2': top2, 'top3': top3, 'dataPoint': dataPoint, } return JsonResponse(data)
def statistic(request): exambatchid = request.GET.get('exambatch', None) stage = request.GET.get('stage', None) # print(exambatchid) exambatch = ExamBatch.nodes.get(exambatchid=exambatchid) definition = dict(node_class=Contestant, direction=INCOMING, relation_type=None, model=None) getTraversals = Traversal(exambatch, Contestant.__label__, definition) mydocre = mycol.find({'exambatchid': exambatchid}) print('-----------------------------------*******') countR = mycol.find({'exambatchid': exambatchid, str(stage): 1}) countW = mycol.find({'exambatchid': exambatchid, str(stage): 0}) # print(countR.count()) # print(countW.count()) # print(stage) dataPoint = [{ 'x': 1, 'y': countR.count(), 'label': "Correct", 'color': "#E21B3C" }, { 'x': 2, 'y': countW.count(), 'label': "Incorrect", 'color': "#00ABE9" }] sortres_list = mycol.find({ 'exambatchid': exambatchid }).sort("result", -1).limit(3) contestant_list = [] for sortres in sortres_list: cont = Contestant.nodes.get(contestantid=sortres['_id']) contestant_list.append(cont.contestantname) if len(contestant_list) == 3: top1 = contestant_list[0] top2 = contestant_list[1] top3 = contestant_list[2] elif len(contestant_list) == 2: top1 = contestant_list[0] top2 = contestant_list[1] top3 = 'No One' elif len(contestant_list) == 1: top1 = contestant_list[0] top2 = 'No One' top3 = 'No One' else: top1 = 'No One' top2 = 'No One' top3 = 'No One' data = { 'flag': True, 'dataPoint': dataPoint, 'top1': top1, 'top2': top2, 'top3': top3 } return JsonResponse(data)