def save_record(request): if request.POST: try: teacher_name = request.POST['teacher_name'] grade_no = request.POST['grade_no'] dt = request.POST['date'] dt = datetime.datetime.strptime(dt, '%m-%d-%Y') tm = request.POST['time'] tm = datetime.datetime.strptime(tm, "%I:%M%p") timestamp = str(dt.date()) + " " + str(tm.time()) comments = request.POST['comments'] user = request.user record = Record() record.user = user record.teacher_name = teacher_name record.grade = grade_no record.timestamp = timestamp record.district = user.first_name record.comments = comments record.save() messages.success(request, 'Data saved successfully!') return HttpResponseRedirect("/cal/save_record/") except Exception as err: messages.error(request, 'Error saving data ({0})'.format(str(err))) return HttpResponseRedirect("/cal/save_record/") else: query = Record.objects.filter(user=request.user).values() data = [] for i in query: obj = {} obj['teacher_name'] = i['teacher_name'] obj['grade'] = i['grade'] obj['timestamp'] = str(i['timestamp']).split('+')[0] data.append(obj) return render(request, "calendar.html", {'message': ' ', 'data': data})
def take_attendance(id): if request.method == "POST": if not "image" in request.files: return "no image found", 400 file = request.files["image"] if not file: return "no image found", 400 image = face_recognition.load_image_file(file) encodings = face_recognition.face_encodings(image) if (len(encodings) != 1): return str( len(encodings)) + " faces found. But required only 1 face", 400 attendance = Attendance.query.get(id) if not attendance: return "invalid attendance id", 400 # logic candidates = Candidate.query.filter_by(user=attendance.user).all() known_encodings = [] for c in candidates: known_encodings.append(c.encoding) result = face_recognition.compare_faces(known_encodings, encodings[0]) for i in range(len(result)): if result[i]: if Record.query.filter_by( candidate=candidates[i], attendance=attendance).first() is not None: return "success", 200 record = Record() now = datetime.now() record.candidate = candidates[i] record.attendance = attendance record.user = attendance.user record.created_at = now record.candidate.last_attendance = now db.session.add_all([record, record.candidate]) db.session.commit() return "success", 200 return "unauthorized", 401 return render_template("take_attendance.html", id=id)