예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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
예제 #4
0
    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
예제 #5
0
    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)