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 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 tickets(request): c = checkpermission(request, request.path) if(c == -1): return redirect('/') elif(c == 0): return redirect('/home') return render(request,'./teacher/tickets.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 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 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 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 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 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 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 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 createAccount(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') if request.method == "POST": msg = request.POST.get("msg") if request.FILES and msg: file = request.FILES['file'] wb = openpyxl.load_workbook(file) msg = urllib.parse.quote(msg) import requests for cell in wb['Sheet1']: if str(cell[1].value): requests.get( "http://sms.whybulksms.com/api/sendhttp.php?authkey=13616AjiaVJD225eb53cc5P15&mobiles=" + str(cell[1].value) + "&message=" + msg + "&sender=PROCNC&route=4") else: return render(request, './excel/createAccount.html', {'error': "Please check the details."}) # data = database.child('/').get().val() # #free # if 'ids' not in data: # data['ids']={} # data['ids']['free']=100000 # msgdata = database.child('sms').get().val() # free = data['ids']['free'] # from datetime import datetime # import urllib # time_now = int(datetime.now().timestamp()*1000) # for cell in wb["Sheet1"]: # data['users']['20'+str(free)]={} # data['users']['20'+str(free)]['details']={ # 'name':cell[0].value, # 'parent':'XXXXXXXXXX', # 'phone':cell[1].value, # } # data['ids'][cell[1].value]={ # 'code':"", # 'createdOn':time_now, # 'id':'20'+str(free), # 'im':"s", # 'once':"", # 'pass':str(getpass(cell[3].value)[2:-1]), # 'verify':cell[4].value, # } # free+=1 # requests.get("http://sms.whybulksms.com/api/sendhttp.php?authkey="+msgdata['key']+"&mobiles="+str(cell[1].value)+"&message="+urllib.parse.quote(msgdata['msg']['verification']+str(cell[4].value))+"&sender="+msgdata['sndrID']+"&route=4") # data['ids']['free']=free # database.child('/').update(data) return render(request, './excel/createAccount.html')
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 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 seeTicket(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') from datetime import datetime if UID and TID: ticket = database.child('tickets').child(UID).child(TID).get() l = [] ticketid = { 'TID': TID, 'UID': UID, 'dNt': ticket.val()['dNt'], 'title': ticket.val()['title'], 'dis': ticket.val()['dis'], 'status': ticket.val()['status'] } if 'replies' in ticket.val(): replies = database.child('tickets').child(UID).child(TID).child( 'replies').get() for i in replies: l.append({ 'userid': str(i.val()['by']), 'time': datetime.fromtimestamp(int(i.key()) / 1000), 'reply': i.val()['reply'] }) if request.method == "POST": idd = request.session['user'] msg = request.POST.get('message') time_now = int(datetime.now().timestamp() * 1000) database.child('tickets').child(UID).child(TID).child( 'replies').child(time_now).update({ 'by': idd, 'reply': msg, }) if ticket.val()['status'] != "replied": database.child('tickets').child(UID).child(TID).update({ 'dNt': ticket.val()['dNt'], 'dis': ticket.val()['dis'], 'status': 'replied', 'title': ticket.val()['title'] }) return redirect('/tickets/seeTicket?UID=' + UID + "&TID=" + TID) return render(request, './tickets/seeTicket.html', { 'mine': l, 'ticketId': ticketid })
def addMainly(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') prepdata = database.child('prepration').get() preprationdata = [] if prepdata.val(): print(prepdata) for i in prepdata: if i.key() != 'free': preprationdata.append({ 'id': i.key(), 'name': prepdata.val()[i.key()]['details']['name'] }) if request.method == "POST": name = request.POST.get('name') dis = request.POST.get('dis') prep = request.POST.get('prepration') if (name != "" and dis != "" and prep is not None): free = database.child('prepration').child(prep).child( 'mainly').child('free').shallow().get().val() if free: tempid = free else: tempid = 100 database.child('prepration').child(prep).child('mainly').child( prep + str(tempid)).child('details').update({ 'name': name, 'dis': dis, }) database.child('prepration').child(prep).child('mainly').update( {'free': tempid + 1}) data = { 'name': '', 'dis': '', } success = "Mainly added successfully." data['success'] = success data['data'] = preprationdata return render(request, './academics/addMainly.html', data) else: data = {'name': name, 'dis': dis, 'data': preprationdata} error = "Please fill the details." data['error'] = error return render(request, './academics/addMainly.html', data) else: return render(request, './academics/addMainly.html', {'data': preprationdata})
def addTopic(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') subdata = database.child('subjects').get() subjectdata = [] if subdata.val(): for i in subdata: if i.key() != 'free': subjectdata.append({ 'id': i.key(), 'name': subdata.val()[i.key()]['details']['name'] }) if request.method == "POST": name = request.POST.get('name') dis = request.POST.get('dis') sub = request.POST.get('subject') if (name != "" and dis != "" and sub is not None): free = database.child('subjects').child(sub).child('topics').child( 'free').shallow().get().val() if free: tempid = free else: tempid = 1000 database.child('subjects').child(sub).child('topics').child( sub + str(tempid)).child('details').update({ 'name': name, 'dis': dis, }) database.child('subjects').child(sub).child('topics').update( {'free': tempid + 1}) data = { 'name': '', 'dis': '', } success = "Topic added successfully." data['success'] = success data['data'] = subjectdata return render(request, './academics/addTopic.html', data) else: data = {'name': name, 'dis': dis, 'data': subjectdata} error = "Please fill the details." data['error'] = error return render(request, './academics/addTopic.html', data) else: return render(request, './academics/addTopic.html', {'data': subjectdata})
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})
def viewNLEs(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') d = database.child('exams').child('NLE').get() l = [] if d.val(): for i in d: dat = i.key() date = dat[4:] + "-" + dat[2:4] + "-" + dat[:2] time = i.val()['time'] l.append({'date': date, 'time': time, 'sp': i.val()['sp']}) return render(request, './exams/viewNLEs.html', {'data': l})
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 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 viewSubjects(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') data = database.child('subjects').get() l = [] if data.val(): for i in data: if (i.key() != 'free'): l.append({ 'id': i.key(), 'name': i.val()['details']['name'], 'dis': i.val()['details']['dis'] }) return render(request, './academics/viewSubjects.html', {'data': l})
def viewCoupons(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') coupans = database.child('coupons').get() l = [] if coupans.val(): for i in coupans: l.append({ 'name': i.key(), 'exp': i.val()['expDate'], 'min': i.val()['minAmt'], 'sp': i.val()['sp'] }) return render(request, './exams/viewCoupons.html', {'data': l})
def addBanner(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') try: url1 = storage.child('banners').child("1").get_url(1) url2 = storage.child('banners').child("2").get_url(1) url3 = storage.child('banners').child("3").get_url(1) url4 = storage.child('banners').child("4").get_url(1) url5 = storage.child('banners').child("5").get_url(1) except: url = "https://firebasestorage.googleapis.com/v0/b/the-proficiency.appspot.com/o/logo%2FProfile%20Pic.png?alt=media&token=f5efb3c0-394e-4c28-9442-d061e1204e9b" url1 = url url2 = url url3 = url url4 = url url5 = url if request.method == "POST": if (len(request.FILES) == 5): storage.child('banners').child("1").put(request.FILES["img1"]) storage.child('banners').child("2").put(request.FILES["img2"]) storage.child('banners').child("3").put(request.FILES["img3"]) storage.child('banners').child("4").put(request.FILES["img4"]) storage.child('banners').child("5").put(request.FILES["img5"]) else: error = "Please select all the files." return render( request, './banners/addBanner.html', { 'img1': url1, 'img2': url2, 'img3': url3, 'img4': url4, 'img5': url5, 'error': error }) return render(request, './banners/addBanner.html', { 'img1': url1, 'img2': url2, 'img3': url3, 'img4': url4, 'img5': url5 })
def viewTrans(request): c = checkpermission(request, request.path) if(c == -1): return redirect('/') elif(c == 0): return redirect('/home') trans = database.child('trnc').get() l = [] if trans.val(): for i in trans: l.append( { 'id': i.key(), 'name':i.val()['CUST_ID'].split("@")[1], 'TXN_AMOUNT': i.val()['TXN_AMOUNT'], } ) return render(request, './trnc/viewTrns.html', {'data': l})
def viewNotifications(request): c=checkpermission(request,request.path) if(c==-1): return redirect('/') elif(c==0): return redirect('/home') d = database.child('notifications').get().val() l=[] if d: from datetime import datetime for i in d: if i !='free': l.append({ 'nid':i, 'time':datetime.fromtimestamp(d[i]['time']/1000), 'title':d[i]['title'], 'to':d[i]['to'] }) return render(request,'./notification/viewNotifications.html',{'data':l})
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 viewQues(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') iduser = request.session['user'] typerdata = database.child('typers').child(iduser).child( 'questionsAdded').get() l = [] if typerdata: for i in typerdata: ty = typerdata.val() m = i.key() for j in ty[i.key()]: l.append({ 'id': j, 'by': ty[m][j]["by"], }) return render(request, './typer/viewQuestyper.html', {'question': l})
def viewQuestion(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') question = database.child('questions').get() questiondata = [] if question.val(): for i in question: if (i.key() != 'free'): questiondata.append({ 'id': i.key(), 'approved': i.val()['details']['approved'], 'by': i.val()['details']['by'] }) return render(request, './question/viewquestion.html', {'question': questiondata}) else: return render(request, './question/viewquestion.html')
def viewTickets(request): c = checkpermission(request, request.path) if (c == -1): return redirect('/') elif (c == 0): return redirect('/home') ticket = database.child('tickets').get() l = [] if ticket.val(): for i in ticket: for j in i.val(): print(j) if j != "free": l.append({ 'UID': i.key(), 'TID': j, 'dnt': i.val()[j]['dNt'], 'status': i.val()[j]['status'], 'title': i.val()[j]['title'] }) return render(request, './tickets/viewTickets.html', {'data': l})