def import_endpoint(): user = load_api_user() course_id = request.json.get('course_id') if course_id is None: abort(400, "You need to specify the course_id") assignments = request.json.get('assignments', []) for assignment in assignments: assignment = Assignment.by_url(assignment['url']) if not user.is_instructor(assignment.course_id): return abort(400, "Not an instructor in this assignments' course.") groups = request.json.get('groups', []) for group in groups: group = Assignment.by_url(group['url']) if not user.is_instructor(group.course_id): return abort(400, "Not an instructor in this assignments' course.") # TODO: Verify that memberships are all attached to a group owned by this user import_bundle(request.json, owner_id=user.id, course_id=course_id) return jsonify(success=True)
def bulk_upload(): course_id = request.values.get('course_id', None) if course_id is None: return jsonify(success=False, message="No course id") if not g.user.is_instructor(int(course_id)): return jsonify(success=False, message="Not an instructor in this course") if request.method == 'POST': if 'file' not in request.files: flash('No file part') return redirect(request.url) file = request.files['file'] if file.filename == '': flash('No selected file') return redirect(request.url) if file: bundle = json.loads(file.read().decode('utf-8')) import_bundle(bundle, owner_id=g.user.id, course_id=course_id) flash("File uploaded successfully") return redirect(request.url) flash("No file contents") return redirect(request.url) else: return '''