def register(request): try: join = request.POST.get("join", "false") == "true" training_id = request.POST.get("training_id") user_id = request.POST.get("user_id") training = PepRegTraining.objects.get(id=training_id) if user_id: student_user = User.objects.get(id=int(user_id)) else: student_user = request.user if join: if reach_limit(training): raise Exception("Maximum number of users have registered for this training.") try: student = PepRegStudent.objects.get(training_id=training_id, student=student_user) except: student = PepRegStudent() student.user_create = request.user student.date_create = datetime.now(UTC) student.student = student_user student.student_status = "Registered" student.training_id = int(training_id) student.user_modify = request.user student.date_modify = datetime.now(UTC) student.save() if training.type == "pepper_course": cea, created = CourseEnrollmentAllowed.objects.get_or_create(email=student_user.email, course_id=training.pepper_course) cea.is_active = True cea.save() CourseEnrollment.enroll(student_user, training.pepper_course) else: student = PepRegStudent.objects.get(training_id=training_id, student=student_user) remove_student(student) except Exception as e: return HttpResponse(json.dumps({'success': False, 'error': '%s' % e}), content_type="application/json") return HttpResponse(json.dumps({'success': True}), content_type="application/json")
def set_student_attended(request): try: training_id = int(request.POST.get("training_id")) student_id = int(request.POST.get("student_id")) yn = request.POST.get("yn", False) training = PepRegTraining.objects.get(id=training_id) try: student = PepRegStudent.objects.get(training_id=training_id, student_id=student_id) except: student = PepRegStudent() student.user_create = request.user student.date_create = datetime.now(UTC) student.training = training student.student = request.user student.user_modify = request.user student.date_modify = datetime.now(UTC) if yn == "true": student.student_status = "Attended" if not training.allow_validation: student.student_credit = training.credits student.save() else: if training.allow_registration: student.student_status = "Registered" student.student_credit = 0 student.save() else: student.delete() student = None if student: data = {"id": student.id, "email": student.student.email, "status": student.student_status, "is_attended": student.student_status == "Validated" or student.student_status == "Attended", "is_validated": student.student_status == "Validated", "student_credit": student.student_credit, "student_id": student.student_id, } else: data = None except Exception as e: db.transaction.rollback() return HttpResponse(json.dumps({'success': False, 'error': '%s' % e}), content_type="application/json") return HttpResponse(json.dumps({'success': True, 'data': data}), content_type="application/json")