def changeStatus(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') UID = request.GET.get('UID') TID = request.GET.get('TID') status = request.POST.get('status') feed = request.POST.get('feed') if status and feed: ticket = database.child('tickets').child(UID).child(TID).get() database.child('tickets').child(UID).child(TID).update({ 'dNt': ticket.val()['dNt'], 'dis': ticket.val()['dis'], 'status': status, 'title': ticket.val()['title'], 'feedback': feed, }) return redirect('/tickets/seeTicket?UID=' + UID + "&TID=" + TID) else: return redirect('/tickets/seeTicket?UID=' + UID + "&TID=" + TID)
def editSub(request): idd = request.GET.get('id') if request.method == "POST": name = request.POST.get('name') dis = request.POST.get('dis') if name == "" or dis == "": data = { 'name': name, 'dis': dis, } print("abc") data['error'] = "please fill the given details" return render(request, './academics/editSub.html', {'data': data}) database.child('subjects').child(idd).child('details').update({ 'name': name, 'dis': dis, }) return redirect('/academics/viewSubjects') topics = database.child('subjects').child(idd).child('details').get() l = { 'name': topics.val()['name'], 'dis': topics.val()['dis'], 'id': idd, } return render(request, './academics/editSub.html', {'data': l})
def editDaily(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') date = request.GET.get('id') data = database.child('exams').child('dailyTime').child(date).get().val() data['date'] = date[:2] + "-" + date[2:4] + "-" + date[4:] if request.method == "POST": time = request.POST.get('time') sp = request.POST.get('sp') if time and sp: NLE = database.child('exams').child('dailyTime').child(date) NLE.update({'time': time, 'sp': int(sp)}) success = "Daily Exam Edited successfully" data['success'] = success return redirect('/exams/viewDaily') else: data = { 'date': date[:2] + "-" + date[2:4] + "-" + date[4:], 'time': time, 'sp': sp } error = "please fill the details" data['error'] = error return render(request, './exams/editDaily.html', data) return render(request, './exams/editDaily.html', data)
def teacherearning(request): c = checkpermission(request, request.path) if(c == -1): return redirect('/') elif(c == 0): return redirect('/home') idd = request.session['user'] data = database.child('teachers').child(idd).get() l = [] tp = database.child('share').child( 'teachers').child('tp').shallow().get().val() if tp is None: tp = 20 database.child('share').child('teachers').update({'tp': 20}) total = 0 if 'income' in data.val(): exams = data.val()['income']['exams']['daily'] for i in exams: dat = i dat = dat[0:2]+'/'+dat[2:4]+'/'+dat[4:] l.append( { 'date': dat, 'earning': exams[i]['totalSale'], 'money': exams[i]['totalSale']/20 } ) total += exams[i]['totalSale'] return render(request, './teacher/earning.html', {'data': l, 'total': total})
def addAnsKey(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') nle = request.GET.get('nle') mid = request.GET.get('mid') count = database.child('exams').child('NLE').child(nle).child( 'mainly').child(mid).child('questions').child( 'free').shallow().get().val() if request.method == 'POST': ans = [] for i in range(1, count): a = request.POST.get('optC' + str(i)) if a: ans.append(a) else: return render(request, './exams/addAnsKey.html', { 'count': range(1, count), 'error': "Please select all ans." }) for index, item in enumerate(ans): database.child('exams').child('NLE').child(nle).child( 'mainly').child(mid).child('questions').child(index + 1).update({ 'optC': item }) return redirect('/exams/viewNleQues?qid=' + nle[4:] + '-' + nle[2:4] + '-' + nle[:2]) return render(request, './exams/addAnsKey.html', {'count': range(1, count)})
def newPassword(request): try: step = request.session['step'] number = request.session['number'] if step == 2: if request.method == 'POST': code = request.POST.get('code') c = database.child('ids').child(number).child('forgetPass').get().val()['code'] if str(c) == code: request.session['step'] = 3 return render(request,'./students/newPassword.html') else: return render(request,'./students/verify.html',{'error':"Please fill correct code"}) else: return render(request,'./students/verify.html') if step == 3: if request.method == 'POST': password = request.POST.get('pass') conpassword = request.POST.get('conpass') if (password ==conpassword and len(password)>=6): database.child('ids').child(number).update({'pass':getpass(password)[2:-1]}) del request.session['step'] del request.session['number'] return render(request,'./students/forgotPassword.html',{'success':"Password change successfully."}) else: return render(request,'./students/newPassword.html',{'error':'Password and confirm password must be equal nd minimun length must be greater than or equal to 6'}) else: return render(request,'./students/newPassword.html') except: return redirect('/students/forgetPassword')
def linksub(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') mid = request.GET.get('id') mname = database.child('prepration').child( mid[:6]).child('mainly').child(mid).child('details').get().val() mname = mname['name'] msub = database.child('prepration').child(mid[:6]).child('mainly').child( mid).child('subjects').shallow().get().val() sub = database.child('subjects').get().val() subdata = [] if not msub: msub = [] if sub: for i in sub: if i != 'free': subdata.append({ 'id': i, 'name': sub[i]['details']['name'], 'dis': sub[i]['details']['dis'], 'ul': 'Unlink' if i in msub else 'Link' }) return render(request, './academics/linksub.html', { 'data': subdata, 'name': mname, 'mid': mid })
def forgotPassword(request): try: del request.session['step'] del request.session['number'] except: pass if request.method == 'POST': number = request.POST.get('number') data = list(database.child('ids').shallow().get().val()) if number in data : import random from datetime import datetime ran = random.randint(100000,999999) database.child('ids').child(number).child('forgetPass').update({ 'code':ran, 'time':int(datetime.now().timestamp()*1000) }) import requests msgdata = database.child('sms').get().val() requests.get("http://sms.whybulksms.com/api/sendhttp.php?authkey="+msgdata['key']+"&mobiles="+number+"&message="+msgdata['msg']['forgetPass']+str(ran)+"&sender="+msgdata['sndrID']+"&route=4") request.session['step']=2 request.session['number']=number return redirect('/students/newPassword') else: return render(request,'./students/forgotPassword.html',{'error':"Please fill correct number"}) return render(request,'./students/forgotPassword.html')
def editPrepFor(request): idd = request.GET.get('id') if request.method == "POST": print(idd) name = request.POST.get('name') dis = request.POST.get('dis') if name == "" or dis == "": data = { 'name': name, 'dis': dis, } print("abc") data['error'] = "please fill the given details" return render(request, './academics/editPrepFor.html', {'data': data}) database.child('prepration').child(idd).child('details').update({ 'name': name, 'dis': dis, }) return redirect('/academics/viewPrepFor') prepfor = database.child('prepration').child(idd).child('details').get() l = { 'name': prepfor.val()['name'], 'dis': prepfor.val()['dis'], 'id': idd, } return render(request, './academics/editPrepFor.html', {'data': l})
def viewStudents(request): students = database.child('users').get() ids = database.child('ids').get().val() l = [] from datetime import datetime for i in students: l.append({ 'id': i.key(), 'name': i.val()['details']['name'], 'parent': i.val()['details']['parent'], 'phone': i.val()['details']['phone'], 'verify': ids[i.val()['details']['phone']]['verify'], 'createdOn': datetime.fromtimestamp( int(ids[i.val()['details']['phone']]['createdOn']) / 1000), 'wallet': i.val()['wallet']['balance'] if 'wallet' in i.val() and 'balance' in i.val()['wallet'] else '-' }) return render(request, './users/viewStu.html', {'data': l})
def editprofile(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') idd = request.session['user'] marketerdata = database.child('marketers').child(idd).child( 'details').get() from datetime import date data = database.child('mIds').child( marketerdata.val()["phone"]).child('createdOn').get().val() / 100 date = date.fromtimestamp(data) l = { 'id': idd, 'name': marketerdata.val()["name"], 'age': marketerdata.val()["age"], 'city': marketerdata.val()["city"], 'email': marketerdata.val()["email"], 'experience': marketerdata.val()["experience"], 'gen': marketerdata.val()["gen"], 'phone': marketerdata.val()["phone"], 'state': marketerdata.val()["state"], 'createdOn': date } if (request.method == "POST"): currentpassword = request.POST.get("currentpassword") newpassword = request.POST.get("newpassword") confirmpassword = request.POST.get("confirmpassword") print('rahul') print(request.FILES) if (request.FILES): print('rahul') storage.child('/marketers/' + idd).put(request.FILES["images"]) request.session['image'] = getimage(idd) if (currentpassword == "" and newpassword == "" and confirmpassword == ""): return redirect('/home') else: if (newpassword != confirmpassword or len(newpassword) < 6): return render(request, './marketer/editProfile.html', { 'data': l, 'error': "Check Your Password" }) else: current = database.child('mIds').child( marketerdata.val()["phone"]).child('pass').get().val() if (getpass(currentpassword)[2:-1] != current): return render(request, './marketer/editProfile.html', { 'data': l, 'error': "Check Your Current Password" }) else: database.child('mIds').child( marketerdata.val()["phone"]).update( {'pass': getpass(newpassword)[2:-1]}) return redirect('/home') else: return render(request, './marketer/editProfile.html', {'data': l})
def seeQues(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') qid = request.GET.get('qid') data = database.child('questions').child(qid).child('details').get().val() pre = request.session['us'] idd = request.session['user'] print(data) if (data and (pre == '15' or pre == '13' or idd == data['by'] or ('typer' in data and idd == data['typer']))): tname = database.child('teachers').child( data['by']).child('details').child('name').get().val() tyname = '' if 'typer' in data: tyname = database.child('typers').child( data['typer']).child('details').child('name').get().val() topic = '' sname = '' sid = '' if 'topic' in data: d = database.child('subjects').child(data['topic'][:5]).get().val() sid = data['topic'][:5] sname = d['details']['name'] topic = d['topics'][data['topic']]['details']['name'] if (data['approved']) == False: msg = data['message'] msg = msg.split('{{-+-}}') return render( request, './question/seeQues.html', { 'question': msg[0], 'opt1': msg[1], 'opt2': msg[2], 'opt3': msg[3], 'opt4': msg[4], 'optC': msg[5], 'data': data, 'tname': tname, 'tyname': tyname, 'qid': qid, 'topic': topic, 'sid': sid, 'sname': sname }) return render( request, './question/seeQues.html', { 'data': data, 'tname': tname, 'tyname': tyname, 'qid': qid, 'topic': topic, 'sid': sid, 'sname': sname }) return redirect('/')
def middleware(request): response = get_response(request) if request.path == "/" or request.path == '/logout': pass else: try: import requests import ast ip, is_routable = get_client_ip(request) from datetime import datetime time_now = int(datetime.now().timestamp() * 1000) # ip = "157.36.168.57" # lastIP = '2409:4051:5:a1d5:5502:f099:9f8f:6996' lastIP = request.session['ipp'] cip = ip.replace(".", "-") clastip = lastIP.replace(".", "-") if (ip != lastIP): ip1Data = database.child('ipChange').child( request.session['table']).child( request.session['number']).child(cip).get().val() if not ip1Data: r = requests.get("http://ip-api.com/json/" + ip) ip1Data = ast.literal_eval(r.text) city = ip1Data['city'] else: city = ip1Data['city'] ip1Data['time'] = time_now ip2Data = database.child('ipChange').child( request.session['table']).child( request.session['number']).child( clastip).get().val() if not ip2Data: r = requests.get("http://ip-api.com/json/" + lastIP) ip2Data = ast.literal_eval(r.text) cityy = ip2Data['city'] cityy = ip2Data['city'] ip2Data['time'] = time_now # city = request.session['cityyy'] database.child('ipChange').child( request.session['table']).child( request.session['number']).update({ clastip: ip2Data, cip: ip1Data }) if (cityy != city): return redirect('/logout') else: del request.session['ipp'] request.session['ipp'] = ip except: pass return response
def addImage(request): if request.method == 'POST': if (request.FILES): free = database.child('imgFree').child( 'free').shallow().get().val() if not free: free = 10000000000 storage.child('/questions/' + str(free)).put( request.FILES["images"]) url = storage.child('/questions/' + str(free)).get_url(1) database.child('imgFree').update({'free': free + 1}) return render(request, 'addQues.html', {'url': url}) return render(request, 'addQues.html')
def send(request): h = database.child('users').get().val() for i in h: if 'batch' in h[i]: if h[i]['batch'] == 'Weekend': h[i]['batch'] = 'Weekdays' else: print(i) database.child('/').update({'users': h}) print(h)
def viewNleQues2(request): # c=checkpermission(request,request.path) # if(c==-1): # return redirect('/') # elif(c==0): # return redirect('/home') d = request.GET.get('qid') nle = d[8:] + d[5:7] + d[:4] data = database.child('exams').child('NLE').child(nle).child( 'mainly').get() mainlydata = database.child('prepration').get().val() mainly = (data.val().keys()) if mainly: l = [] for j in mainly: f = [] for m in data.val()[j]['questions']: if m != "free": print(data.val()[j]['questions'][m]) if 'optC' in (data.val()[j]['questions'][m]): f.append({ 'id': m, 'ques': data.val()[j]['questions'][m]['question'], 'opt1': data.val()[j]['questions'][m]['opt1'], 'opt2': data.val()[j]['questions'][m]['opt2'], 'opt3': data.val()[j]['questions'][m]['opt3'], 'opt4': data.val()[j]['questions'][m]['opt4'], 'ans': chr( ord('`') + int(data.val()[j]['questions'][m]['optC'][3])) }) else: f.append({'id': m, 'ans': 'false'}) l.append({ 'name': mainlydata[j[:6]]['mainly'][j]['details']['name'], 'id': j, 'question': f }) return render(request, './exams/viewNLEQuestions2.html', { 'mainly': l, 'nle': nle })
def resendOTP(request): idd = request.GET.get('id') data = database.child('ids').child(idd).get().val() if data['verify']: import requests import urllib.parse msgdata = database.child('sms').get().val() verify = urllib.parse.quote(msgdata['msg']['verification']) link = "http://sms.whybulksms.com/api/sendhttp.php?authkey=" + msgdata[ 'key'] + "&mobiles=" + idd + "&message=" + verify + str( data['verify']) + "&sender=" + msgdata['sndrID'] + "&route=4" requests.get(link) return redirect('/user/viewStu')
def viewQuestion(request): c = checkpermission(request, request.path) if(c == -1): return redirect('/') elif(c == 0): return redirect('/home') idd = request.session['user'] t = database.child('teachers').child(idd).child('questions').get() data = [] ques = database.child('questions').get().val() if t.val() is not None: for i in t: data.append({'qid': i.key(), 'topicid': i.val()['topic'],'status':ques[i.key()]['details']['approved']}) return render(request, './teacher/questions.html', {'data': data})
def viewExamStudent(request): c = checkpermission(request, request.path) print(c) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') d = database.child('/').get() NLEdate = list(d.val()['exams']['NLE'].keys()) for i in range(len(NLEdate)): NLEdate[ i] = NLEdate[i][4:] + '-' + NLEdate[i][2:4] + '-' + NLEdate[i][:2] NLEdate.sort() dailyTimedate = list(d.val()['exams']['dailyTime'].keys()) for i in range(len(dailyTimedate)): dailyTimedate[i] = dailyTimedate[i][4:]+'-' + \ dailyTimedate[i][2:4]+'-'+dailyTimedate[i][:2] dailyTimedate.sort() if request.method == "POST": exam = request.POST.get('exam') date = request.POST.get('date') return redirect('/exams/viewExamStu?exam=' + exam + '&date=' + date) return render(request, './exams/viewExamStudent.html', { 'NLE': NLEdate, 'daily': dailyTimedate })
def sublink(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') mid = request.GET.get('mid') sid = request.GET.get('sid') l = request.GET.get('l') if (l == 'Link'): database.child('prepration').child(mid[:6]).child('mainly').child( mid).child('subjects').child(sid).update({'active': 'true'}) else: database.child('prepration').child(mid[:6]).child('mainly').child( mid).child('subjects').child(sid).remove() return redirect('/academics/linksub?id=' + mid)
def daily(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') if request.method == "POST": date = request.POST.get('date') time = request.POST.get('time') print(date) sp = request.POST.get('sp') if date and time and sp: dat = date[8:] + date[5:7] + date[:4] print(dat) NLE = database.child('exams').child('dailyTime').child(dat) NLE.update({'time': time, 'sp': int(sp)}) data = { 'name': "", 'dis': "", 'sp': "", } success = "Daily Exam added successfully" data['success'] = success return render(request, './exams/addDaily.html', data) else: data = {'name': date, 'dis': time, 'sp': sp} error = "please fill the details" data['error'] = error return render(request, './exams/addDaily.html', data) else: return render(request, './exams/addDaily.html')
def referal(request): c = checkpermission(request, request.path) if(c == -1): return redirect('/') elif(c == 0): return redirect('/home') idd = request.session['user'] data = database.child('share').child('teachers').child(idd).get() if data.val(): totalearning = data.val()['earned'] typea = data.val()['typeA'] typeb = data.val()['typeB'] typec = data.val()['typeC'] code = {'typea': typea['code'], 'typeb': typeb['code'], 'typec': typec['code']} typeatrnc = [] typebtrnc = [] typectrnc = [] if 'trnc' in typea: for i in typea['trnc']: typeatrnc.append({'trnc': i, 'earn': typea['trnc'][i]}) if 'trnc' in typeb: for i in typeb['trnc']: typebtrnc.append({'trnc': i, 'earn': typeb['trnc'][i]}) if 'trnc' in typec: for i in typec['trnc']: typectrnc.append({'trnc': i, 'earn': typec['trnc'][i]}) return render(request, './teacher/referal.html', {'code': code, 'typeatrnc': typeatrnc, 'typebtrnc': typebtrnc, 'typectrnc': typectrnc}) return (request, './teacher/referal.html')
def viewteacher(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') teacherData = database.child('teachers').get() # if teacherData: l = [] if (teacherData.val()): for i in teacherData: if (i.key() != 'qBank'): print(i.key()) l.append({ 'tId': i.key(), 'name': i.val()['details']['name'], 'number': i.val()['details']['phone'], 'email': i.val()['details']['email'], 's': i.val()['details']['state'], 'd': i.val()['details']['city'], 'age': i.val()['details']['age'], 'experience': i.val()['details']['experience'], 'gen': i.val()['details']['gen'], }) return render(request, './users/teachersList.html', { 'data': l, 'type': 'teacher' })
def seeTrns(request): c = checkpermission(request, request.path) if(c == -1): return redirect('/') elif(c == 0): return redirect('/home') idd = request.GET.get('id') tran = database.child('trnc').get() return render(request, './trnc/viewTran.html', {'data': tran.val()[idd]})
def mistakeQues(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') idd = request.session['user'] data = database.child('typers').child(idd).child( 'questionsAdded').get().val() question = database.child('questions').get().val() l = [] if data: for i in data: for j in data[i]: if question[j]['details']['approved'] == False: l.append({'id': j, 'tid': question[j]['details']['by']}) return render(request, './typer/viewMistakedQues.html', {'dataa': l})
def editHD(request): idd = request.GET.get('hid') BU = database.child('hDegree').child(idd).child('details').get() l = { 'id': idd, 'name': BU.val()['name'], 'dis': BU.val()['dis'], } if request.method == "POST": name = request.POST.get('name') dis = request.POST.get('dis') database.child('hDegree').child(idd).child('details').update({ 'dis': dis, 'name': name, }) return redirect('/academics/viewHD') else: return render(request, './academics/editHD.html', {'data': l})
def typerPayment(request): data = database.child('typers').child('14100004').child( 'questionsAdded').child('2020-07').get().val() qdata = database.child('questions').get().val() img = 0 no = 0 for i in data: if "<img" in qdata[i]['details']['question'] or "<img" in qdata[i][ 'details']['opt1'] or "<img" in qdata[i]['details'][ 'opt2'] or "<img" in qdata[i]['details'][ 'opt3'] or "<img" in qdata[i]['details']['opt4']: img += 1 print(i) else: no += 1 print(len(data)) print(img) print(no) return render(request, './typer/payment.html')
def addHd(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') if request.method == "POST": name = request.POST.get('name') dis = request.POST.get('dis') if (name != "" and dis != ""): free = database.child('hDegree').child( 'free').shallow().get().val() if free: tempid = free else: tempid = 1000 database.child('hDegree').child("hD" + str(tempid)).child( 'details').update({ 'name': name, 'dis': dis, }) database.child('hDegree').update({'free': tempid + 1}) data = { 'name': '', 'dis': '', } success = "High Degree added successfully." data['success'] = success return render(request, './academics/addHD.html', data) else: data = { 'name': name, 'dis': dis, } error = "Please fill the details." data['error'] = error return render(request, './academics/addHD.html', data) else: return render(request, './academics/addHD.html')
def viewCouponsTo(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') idd = request.GET.get('cid') dat = database.child('coupons').child(idd).get() l = [] l.append({ 'name': dat.key(), }) print(dat.key()) # if 'to' in dat: to = database.child('coupons').child(idd).child('to').get() print(to) for i in to: l.append({ 'id': i.key(), 'status': i.val(), }) return render(request, './exams/viewTo.html', {'data': l})
def seeNotifications(request): c=checkpermission(request,request.path) if(c==-1): return redirect('/') elif(c==0): return redirect('/home') nid = request.GET.get('nid') data = database.child('notifications').child(nid).get().val() from datetime import datetime data['time']= datetime.fromtimestamp(data['time']/100) return render(request,'./notification/seeNotifications.html',{'data':data, 'nID':nid})