def course_review_upload(request, course_slug): if request.method == "POST": course = get_course_if_user_can_view_or_404(course_slug, request) file_to_upload = request.FILES.get('pr_file', None) submission_text = request.POST.get('pr-submission', '') kq = get_object_or_404(KnowledgeQuantum, id=request.POST.get('kq_id', 0)) unit = kq.unit if (file_to_upload.size / (1024 * 1024) >= settings.PEER_REVIEW_FILE_MAX_SIZE): messages.error(request, _('Your file is greater than the max allowed size (%d MB).') % settings.PEER_REVIEW_FILE_MAX_SIZE) return HttpResponseRedirect(reverse('course_classroom', args=[course_slug]) + "#unit%d/kq%d/p" % (unit.id, kq.id)) if (len(submission_text) >= settings.PEER_REVIEW_TEXT_MAX_SIZE): messages.error(request, _('Your text is greater than the max allowed size (%d characters).') % settings.PEER_REVIEW_TEXT_MAX_SIZE) return HttpResponseRedirect(reverse('course_classroom', args=[course_slug]) + "#unit%d/kq%d/p" % (unit.id, kq.id)) s3_upload(request.user.id, kq.id, file_to_upload.name, file_to_upload) file_url = s3_url(request.user.id, file_to_upload.name, kq.id) submission = { "author": request.user.id, "author_reviews": 0, "text": request.POST.get('pr-submission', ''), "file": file_url, "created": datetime.utcnow(), "reviews": 0, "course": course.id, "unit": unit.id, "kq": kq.id, } insert_p2p_if_does_not_exists_or_raise(submission) return HttpResponseRedirect(reverse('course_classroom', args=[course_slug]) + "#unit%d/kq%d/p" % (unit.id, kq.id))
def obj_create(self, bundle, request=None, **kwargs): bundle = self.full_hydrate(bundle) if "bundle" not in bundle.data and "reviews" not in bundle.data: kq = KnowledgeQuantum.objects.get(id=int(bundle.data["kq"])) if "unit" not in bundle.data: bundle.data["unit"] = kq.unit.id if "course" not in bundle.data: bundle.data["course"] = kq.unit.course.id if "created" not in bundle.data: bundle.data["created"] = datetime.utcnow() bundle.data["reviews"] = 0 bundle.data["author_reviews"] = 0 bundle.data["author"] = request.user.id from moocng.peerreview.utils import insert_p2p_if_does_not_exists_or_raise _id = insert_p2p_if_does_not_exists_or_raise(bundle.data, self._collection) bundle.obj = MongoObj(bundle.data) self.send_created_signal(request.user.id, bundle.obj) bundle.obj.uuid = str(_id) bundle.uuid = bundle.obj.uuid return bundle
def obj_create(self, bundle, request=None, **kwargs): bundle = self.full_hydrate(bundle) if "bundle" not in bundle.data and "reviews" not in bundle.data: kq = KnowledgeQuantum.objects.get(id=int(bundle.data["kq"])) if "unit" not in bundle.data: bundle.data["unit"] = kq.unit.id if "course" not in bundle.data: bundle.data["course"] = kq.unit.course.id if "created" not in bundle.data: bundle.data["created"] = datetime.utcnow() bundle.data["reviews"] = 0 bundle.data["author_reviews"] = 0 bundle.data["author"] = request.user.id from moocng.peerreview.utils import insert_p2p_if_does_not_exists_or_raise _id = insert_p2p_if_does_not_exists_or_raise(bundle.data, self._collection) bundle.obj = MongoObj(bundle.data) self.send_created_signal(request.user.id, bundle.obj) bundle.obj.uuid = str(_id) bundle.uuid = bundle.obj.uuid return bundle
def course_review_upload(request, course_slug): if request.method == "POST": course = get_course_if_user_can_view_or_404(course_slug, request) file_to_upload = request.FILES.get('pr_file', None) submission_text = request.POST.get('pr-submission', '') kq = get_object_or_404(KnowledgeQuantum, id=request.POST.get('kq_id', 0)) unit = kq.unit if (file_to_upload.size / (1024 * 1024) >= settings.PEER_REVIEW_FILE_MAX_SIZE): messages.error( request, _('Your file is greater than the max allowed size (%d MB).') % settings.PEER_REVIEW_FILE_MAX_SIZE) return HttpResponseRedirect( reverse('course_classroom', args=[course_slug]) + "#unit%d/kq%d/p" % (unit.id, kq.id)) if (len(submission_text) >= settings.PEER_REVIEW_TEXT_MAX_SIZE): messages.error( request, _('Your text is greater than the max allowed size (%d characters).' ) % settings.PEER_REVIEW_TEXT_MAX_SIZE) return HttpResponseRedirect( reverse('course_classroom', args=[course_slug]) + "#unit%d/kq%d/p" % (unit.id, kq.id)) s3_upload(request.user.id, kq.id, file_to_upload.name, file_to_upload) file_url = s3_url(request.user.id, file_to_upload.name, kq.id) submission = { "author": request.user.id, "author_reviews": 0, "text": request.POST.get('pr-submission', ''), "file": file_url, "created": datetime.utcnow(), "reviews": 0, "course": course.id, "unit": unit.id, "kq": kq.id, } insert_p2p_if_does_not_exists_or_raise(submission) return HttpResponseRedirect( reverse('course_classroom', args=[course_slug]) + "#unit%d/kq%d/p" % (unit.id, kq.id))