def get(self, resource_id): user = UserData.get_current_user() resource = Resource.get_by_id(int(resource_id)) if not resource.is_visible_to_user(user): return self.render("resource/show-resource-no-auth.html") else: contents = [key.get() for key in resource.contents] admins = [key.get().user_nickname for key in resource.admins] is_admin = user and user.key in resource.admins comments = Comment.get_by_resource(resource) comments.sort(key=lambda x: x.created_time, reverse=False) for comment in comments: comment.created_time = comment.created_time + timedelta(hours=8) comment.user_nickname = comment.comment_user.get().user_nickname data = { "resource": resource, "keywords": ", ".join(resource.keywords), "admins": ", ".join(admins), "contents": contents, "is_admin": is_admin, "comments": comments, } return self.render("resource/show-resource.html", data)
def get(self, course_id): user = UserData.get_current_user() course = Resource.get_by_id(int(course_id)) if not course.is_visible_to_user(user): return self.render('course/show-course-no-auth.html') else: materials = [key.get() for key in course.materials] admins = [key.get().user_nickname for key in course.admins] is_admin = user and user.key in course.admins comments = Comment.get_by_course(course) comments.sort(key=lambda x: x.created_time, reverse=False) for comment in comments: comment.created_time = comment.created_time + timedelta(hours=8) comment.user_nickname = comment.comment_user.get().user_nickname data = { 'course': course, 'keywords': ', '.join(course.keywords), 'admins': ', '.join(admins), 'materials': materials, 'is_admin': is_admin, 'comments': comments } return self.render('course/show-course.html', data)
def post(self): user_id = int(self.request.get("user_id")) user = UserData.get_by_id(user_id) user = user or UserData.get_current_user() if user is None: return resource_id = self.request.get("resource_id") resource = Resource.get_by_id(int(resource_id)) content = self.request.get("content") new_comment = Comment(parent=resource.key, comment_user=user.key, comment_content=content) new_comment.put() return
def post(self): user_id = int(self.request.get('user_id')) user = UserData.get_by_id(user_id) user = user or UserData.get_current_user() if user is None: return course_id = self.request.get('course_id') course = Resource.get_by_id(int(course_id)) content = self.request.get('content') new_comment = Comment(parent=course.key, comment_user=user.key, comment_content=content ) new_comment.put() return
def post(self, resource_id): # add new admins... user = UserData.get_current_user() resource = Resource.get_by_id(int(resource_id)) if not (user.key in resource.admins): # only admin can edit the resource self.redirect("resource/show-resource/%s" % resource_id) admins_email = self.request.get("admins-email") if admins_email: # we will need to update the admin list admin_key_list = resource.admins email_list = admins_email.strip().split(",") for email in email_list: user = UserData.get_by_user_email(email) if user and not (user.key in admin_key_list): admin_key_list.append(user.key) # 我們不在這個時候寄邀請信給使用者,請他同意獲得講義的writer權限 # 因為我認為使用者很可能不會去收信,我們在使用者第一次真的要使用線上編輯功能的時候 # 再告知他們我們會寄信邀請他們,請他們去收信 -- By EN admin_key_list = set(admin_key_list) resource.admins = admin_key_list change_public_state = self.request.get("change_public_state") if change_public_state: resource.is_public = not resource.is_public resource.put() content_uploaded = self.request.get("content_uploaded") if content_uploaded: new_content_content = io.BytesIO(content_uploaded) content_file_id = self.request.get("content-related-file-id") google_drive_api.update_file(service, content_file_id, new_content_content, google_drive_api.DOCX_MIME_TYPE) logging.info("%s is uploaded" % content_file_id) self.redirect("/show-resource/%s" % resource_id)