def post(self, cid): if not g.current_user.is_teacher(g.current_course): return api_abort(403, "permission denied") old_media = Media.load_media_from_uuid(g.current_course.avatar, return_model=True) new_media = request.files.get("avatar") if new_media is None: return api_abort(400, "file missing") new_media_uuid = Media.save_media(new_media, "avatars/course", commit=False) old_media.delete() if old_media is not None else 1 g.current_course.avatar = new_media_uuid db.session.commit() return "OK"
def post(self): data = course_create_reqparser.parse_args() new_course = Course(data['name'], data['public'], g.current_user.id, data['start_at'], data['end_at'], data['introduce']) new_media = request.files.get("avatar") if new_media is None: return api_abort(400, "file missing") new_media_uuid = Media.save_media(new_media, "avatars/course", commit=False) new_course.avatar = new_media_uuid db.session.add(new_course) db.session.commit() return make_resp(new_course.to_json(detail=True))
def post(self, cid): # expected str chapter and file document, if chapter not exist, create it. data = upload_reqparser.parse_args() chapter_name = data['chapter'] name = data['name'] chapter = Chapter.query.filter_by(name=chapter_name, course_id=g.current_course.id).first() if chapter is None: chapter = Chapter(chapter_name) chapter.course = g.current_course db.session.add(chapter) course = g.current_course movie = request.files.get('movie') if movie is None: return api_abort(400, "movie is None") new_media_uuid = Media.save_media(movie, 'course/{}/movie'.format(course.id), name=name) media_uuid_list = pickle.loads(chapter.movies) media_uuid_list.append(new_media_uuid) chapter.movies = pickle.dumps(media_uuid_list) db.session.commit() return make_resp(chapter.to_json(with_movies=True))