예제 #1
0
 def create_image(self):
     if web.ctx.method == "POST":
         link_url = web.input().get('link', '').strip()
         album_id = int(web.input().get('album_id'))
         file = web.input().get("file")
         try:
             f = HttpUploadedFile(file)
             self.record_image(f=file,
                               uuid=f.uuid(),
                               link=link_url,
                               call_type='create',
                               album_id=album_id)
             self.private_data["create_success"] = True
             self.private_data["create_message"] = u"链接创建成功"
             return web.seeother(self.make_url('images_list'))
         except Exception as e:
             log.error('create album failed%s' % traceback.format_exc())
             self.private_data["create_success"] = False
             self.private_data["create_message"] = u"创建失败"
             albums = Albums.select().where(Albums.status == 0). \
                 order_by(Albums.id.asc()).execute()
             self.private_data["albums_list"] = albums
             return self.display("admin/create_image")
     if web.ctx.method == "GET":
         albums = Albums.select().where(Albums.status == 0). \
             order_by(Albums.id.asc()).execute()
         self.private_data["albums_list"] = albums
         return self.display("admin/create_image")
예제 #2
0
파일: referer.py 프로젝트: XinMa1/work
    def add(self):
        chatroomsList = Chatrooms().select()

        userName = self.isLogin()
        if userName != 'admin':
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/chatrooms/list'))
        user = Users.get(Users.name == userName)
        albumsList = Albums().select().where(Albums.owner == user.id)
        imagesList = Images().select().where(Images.owner == user.id)

        if not albumsList.count():
            return self.error(msg = '请创建至少一个专辑!', url=self.makeUrl('/admin/chatrooms/list'))
        if not imagesList.count():
            return self.error(msg = '请创建至少一个图片!', url=self.makeUrl('/admin/chatrooms/list'))

        album_images_map = {}
        excluded_albums = []
        for album in albumsList:
            album_images = imagesList.where(Images.album == album.id)
            if album_images.count():
                album_images_map[album.id] = album_images
            else:
                excluded_albums.append(album.id)

        self.privData['ALBUMS_LIST'] = \
            [album for album in albumsList if album.id not in excluded_albums]
        self.privData['IMG_ALBUMS_LIST'] = album_images_map

        # 默认专辑为当前用户的第一个专辑
        self.privData['CURRENT_ALBUM'] = self.privData['ALBUMS_LIST'][0]
        # 默认图片为默认专辑的第一张图片
        self.privData['CURRENT_IMG'] = album_images_map[self.privData['CURRENT_ALBUM'].id][0]
        self.privData['SUBMIT_NAME'] = "thumbnail"

        return self.display('chatroomAdd')
예제 #3
0
파일: music.py 프로젝트: arLevi/fanart
    def album(self, album_mbid_id):
        # Set the API for /music
        self.http.set_base('/music/albums')

        response = self.http.get(album_mbid_id)
        response = json.loads(response.text)

        albums = Albums()
        albums.load(response)

        return albums
예제 #4
0
파일: referer.py 프로젝트: XinMa1/work
    def add(self):
        current_user = Users.get(Users.name == self.isLogin())
        albumsList = Albums().select()
        if not self.isAdmin():
            albumsList = albumsList.where(Albums.owner == current_user)

        if not albumsList.count():
            return self.error(msg = '请创建至少一个专辑!', url=self.makeUrl('/admin/albums/list'))

        self.privData['CURRENT_USER'] = current_user
        self.privData['ALBUMS_LIST'] = albumsList

        return self.display('imageAdd')
예제 #5
0
파일: referer.py 프로젝트: XinMa1/work
    def modify(self):
        inputParams= self.getInput()
        album_id = int(inputParams['id'])
        thumbnail_id = int(inputParams['thumbnail']) if inputParams.has_key('thumbnail') else 0
 
        if album_id == 1:
            return self.error(msg='不能编辑系统专辑', url=self.makeUrl('/admin/albums/list'))

        album = Albums.get(Albums.id == album_id)
        current_user = Users.get(Users.name == self.isLogin())
        if current_user.id != album.owner.id and not self.isAdmin():
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/albums/list'))

        if thumbnail_id:
            thumbnail_data = Images.get(Images.id == thumbnail_id).thumbnail
        else:
            import base64
            from imaging import imaging
            thumbnail_data = base64.b64encode(buffer(imaging.default_thumbnail()))

        try:
            album.name  = inputParams['name']
            album.description = inputParams['desc']
            album.thumbnail = thumbnail_data
            album.save()
        except Exception, e:
            return self.error(msg = '专辑修改失败: %s' % e, url=self.makeUrl('/admin/albums/list'))
예제 #6
0
파일: referer.py 프로젝트: XinMa1/work
    def edit(self):
        inputParams = self.getInput()
        album_id = int(inputParams['id'])
        album = Albums.get(Albums.id == album_id)

        current_user = Users.get(Users.name == self.isLogin())
        if current_user.id != album.owner.id and not self.isAdmin():
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/albums/list'))

        self.privData['ALBUM_ID'] =   album.id
        self.privData['ALBUM_NAME'] = album.name
        self.privData['ALBUM_DESC'] = album.description
        self.privData['ENABLE_SELECT_THUMBNAIL'] = False

        imagesList = Images().select()
        if not self.isAdmin():
            imagesList = imagesList.where(Images.owner == current_user)

        imagesList = imagesList.where(Images.album == album)
        if imagesList.count():
            self.privData['ENABLE_SELECT_THUMBNAIL'] = True
            self.privData['ALBUMS_LIST'] = [album]
            self.privData['IMG_ALBUMS_LIST'] = {album.id: imagesList}
            self.privData['CURRENT_IMG'] = imagesList[0]
            self.privData['CURRENT_ALBUM'] = album
            self.privData['SUBMIT_NAME'] = "thumbnail"

        return self.display('albumEdit')
예제 #7
0
파일: referer.py 프로젝트: XinMa1/work
    def save(self):
        userInput = self.getInput() 

        try:
            import base64
            from imaging import imaging
            thumbnail_data = base64.b64encode(buffer(imaging.default_thumbnail()))
                
            Albums.create(
                name = userInput['name'],
                description = userInput['desc'],
                thumbnail = thumbnail_data,
                owner = Users.get(Users.name == self.isLogin())
            )
        except Exception, e:
            return self.error(msg = '专辑保存失败: %s' % e, url=self.makeUrl('/admin/albums/list'))
예제 #8
0
파일: referer.py 프로젝트: XinMa1/work
    def edit(self):
        inputParams = self.getInput()
        groupID = inputParams['id']

        current_group = Groups().get(Groups.id == groupID)
        current_user = Users.get(Users.name == self.isLogin())

        if current_user.id != current_group.owner.id and not self.isAdmin() or not current_user.role.type < 100:
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/groups/list'))

        categoriesList = Categories().select()
        albumsList = Albums().select()
        imagesList = Images().select()
        if not self.isAdmin():
            albumsList = albumsList.where(Albums.owner == current_user)
            imagesList = imagesList.where(Images.owner == current_user)


        # 确认当前用户是否至少有一个包含图片的专辑
        if not albumsList.count():
            return self.error(msg = '请创建至少一个专辑!', url=self.makeUrl('/admin/albums/list'))
        if not imagesList.count(): 
            return self.error(msg = '请创建至少一个图片!', url=self.makeUrl('/admin/images/list'))

        # 构建{album: images}, 同时排除不包括任何图片的专辑
        album_images_map = {}
        excluded_albums = []
        for album in albumsList:
            album_images = imagesList.where(Images.album == album.id)
            if album_images.count():
                album_images_map[album.id] = album_images
            else:
                excluded_albums.append(album.id)

        self.privData['ALBUMS_LIST'] = \
            [album for album in albumsList if album.id not in excluded_albums]
        self.privData['CATEGORIES_LIST'] = categoriesList
        self.privData['IMG_ALBUMS_LIST'] = album_images_map
        
        self.privData['CURRENT_OBJECT'] = current_group 
        self.privData['CURRENT_IMG'] = current_group.thumbnail
        self.privData['CURRENT_ALBUM'] = current_group.thumbnail.album
        self.privData['SUBMIT_NAME'] = "thumbnail"

        return self.display('groupEdit')
예제 #9
0
파일: referer.py 프로젝트: XinMa1/work
    def edit(self):
        inputParams = self.getInput()
        userName = self.isLogin()

        chatroomID = int(inputParams['id'])
        # 权限检查
        chatroom = Chatrooms.get(Chatrooms.id == chatroomID)
        current_user = Users.get(Users.name == self.isLogin())
        if current_user.id != chatroom.owner.id and not self.isAdmin() or not current_user.role.type < 100:
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/chatrooms/list'))

        self.privData['CHATROOM'] = chatroom

        user = Users.get(Users.name == userName)
        albumsList = Albums().select().where(Albums.owner == user.id)
        imagesList = Images().select().where(Images.owner == user.id)

        # 确认当前用户是否至少有一个包含图片的专辑
        if not albumsList.count():
            return self.error(msg = '请创建至少一个专辑!', url=self.makeUrl('/admin/albums/list'))
        if not imagesList.count():
            return self.error(msg = '请创建至少一个图片!', url=self.makeUrl('/admin/images/list'))


        # 构建{album: images}, 同时排除不包括任何图片的专辑
        album_images_map = {}
        excluded_albums = []
        for album in albumsList:
            album_images = imagesList.where(Images.album == album.id)
            if album_images.count():
                album_images_map[album.id] = album_images
            else:
                excluded_albums.append(album.id)

        self.privData['ALBUMS_LIST'] = \
            [album for album in albumsList if album.id not in excluded_albums]
        self.privData['IMG_ALBUMS_LIST'] = album_images_map

        self.privData['CURRENT_CHATROOM'] = chatroom
        self.privData['CURRENT_ALBUM'] = chatroom.thumbnail.album
        self.privData['CURRENT_IMG'] = chatroom.thumbnail
        self.privData['SUBMIT_NAME'] = "thumbnail"

        return self.display('chatroomEdit')
예제 #10
0
파일: referer.py 프로젝트: XinMa1/work
    def edit(self):
        inputParams = self.getInput()
        userName = self.isLogin()
        if userName != "admin":
            return self.error(msg="权限不足!", url=self.makeUrl("/admin/articles/list"))

        articleID = int(inputParams["id"])
        article = Articles.get(Articles.id == articleID)

        self.privData["ARTICLE"] = article

        user = Users.get(Users.name == userName)
        albumsList = Albums().select().where(Albums.owner == user.id)
        imagesList = Images().select().where(Images.owner == user.id)
        categoriesList = Categories().select()

        # 确认当前用户是否至少有一个包含图片的专辑
        if not albumsList.count():
            return self.error(msg="请创建至少一个专辑!", url=self.makeUrl("/admin/albums/list"))
        if not imagesList.count():
            return self.error(msg="请创建至少一个图片!", url=self.makeUrl("/admin/images/list"))

        # 分类列表
        self.privData["CATEGORIES_LIST"] = categoriesList

        # 构建{album: images}, 同时排除不包括任何图片的专辑
        album_images_map = {}
        excluded_albums = []
        for album in albumsList:
            album_images = imagesList.where(Images.album == album.id)
            if album_images.count():
                album_images_map[album.id] = album_images
            else:
                excluded_albums.append(album.id)

        self.privData["ALBUMS_LIST"] = [album for album in albumsList if album.id not in excluded_albums]
        self.privData["IMG_ALBUMS_LIST"] = album_images_map

        self.privData["CURRENT_ARTICLE"] = article
        self.privData["CURRENT_ALBUM"] = article.thumbnail.album
        self.privData["CURRENT_IMG"] = article.thumbnail
        self.privData["SUBMIT_NAME"] = "thumbnail"

        return self.display("articleEdit")
예제 #11
0
파일: init.py 프로젝트: colinshin/webpyBlog
    def __init__(self):
        db.connect()

        tables = [
            Albums,
            ArticleComments,
            Articles,
            Categories,
            Images,
            Users,
            Version,
        ]

        if not Version.table_exists():
            db.create_tables(tables)

        self.version, _ = Version.get_or_create(description="0.1")
        self.default_thumbnail = "data:image/jpg;base64,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"
        # self.default_thumbnail = base64.b64encode(
        #     buffer(Imaging.default_thumbnail()))

        self.sys_categories, _ = Categories.get_or_create(
            name='系统分类',
            description='初始父类!',
            thumbnail=self.default_thumbnail,
        )
        self.article_categories = Categories.create(
            name='文章',
            description='文章',
            thumbnail=self.default_thumbnail,
            parent=self.sys_categories)

        self.admin, _ = Users.get_or_create(
            name='admin',
            cellphone='19999999999',
            email='*****@*****.**',
            address='陕西西安',
            birthday='2020.9',
            password='******',
            gender=0,
            description='系统管理员!',
            avatar=self.default_thumbnail)

        self.sys_album, _ = Albums.get_or_create(
            name='系统专辑',
            description='系统专辑!',
            thumbnail=self.default_thumbnail,
            owner=self.admin)

        self.sys_image, _ = Images.get_or_create(
            description='系统图片!',
            thumbnail=self.default_thumbnail,
            owner=self.admin,
            album=self.sys_album,
            uuid='default')
예제 #12
0
파일: referer.py 프로젝트: XinMa1/work
    def edit(self):
        inputParams = self.getInput()

        userObj = Users.get(Users.id == int(inputParams['id']))
        current_user = Users.get(Users.name == self.isLogin())   

        if userObj.id != current_user.id and not self.isAdmin():
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/users/list'))

        # 不允许创建系统管理员
        rolesList = Roles().select().where(Roles.id>1)
        self.privData['ROLES_LIST'] = rolesList

        self.privData['USER_INFO'] = userObj

        albumsList = Albums().select()
        imagesList = Images().select()

        # 确认当前用户是否至少有一个包含图片的专辑
        if not albumsList.count():
            return self.error(msg = '请创建至少一个专辑!', url=self.makeUrl('/admin/albums/list'))
        if not imagesList.count():
            return self.error(msg = '请创建至少一个图片!', url=self.makeUrl('/admin/images/list'))

        # 构建{album: images}, 同时排除不包括任何图片的专辑
        album_images_map = {}
        excluded_albums = []
        for album in albumsList:
            album_images = imagesList.where(Images.album == album.id)
            if album_images.count():
                album_images_map[album.id] = album_images
            else:
                excluded_albums.append(album.id)

        self.privData['ALBUMS_LIST'] = \
            [album for album in albumsList if album.id not in excluded_albums]
        self.privData['IMG_ALBUMS_LIST'] = album_images_map
        self.privData['CURRENT_ALBUM'] = self.privData['ALBUMS_LIST'][0]
        self.privData['CURRENT_IMG'] = album_images_map[self.privData['CURRENT_ALBUM'].id][0]
        self.privData['SUBMIT_NAME'] = "thumbnail"

        return self.display('userEdit')
예제 #13
0
파일: referer.py 프로젝트: XinMa1/work
    def add(self):
        categoriesList = Categories().select()

        # 获得当前用户的专辑列表和图片列表
        albumsList = Albums().select() 
        imagesList = Images().select()
        current_user = Users.get(Users.name == self.isLogin())
        if not self.isAdmin():
            albumsList = albumsList.where(Albums.owner == current_user)
            imagesList = imagesList.where(Images.owner == current_user)
       
        if not current_user.role.type < 100:
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/albums/list'))

        # 确认当前用户是否至少有一个包含图片的专辑
        if not albumsList.count():
            return self.error(msg = '请创建至少一个专辑!', url=self.makeUrl('/admin/albums/list'))
        if not imagesList.count(): 
            return self.error(msg = '请创建至少一个图片!', url=self.makeUrl('/admin/images/list'))

        # 构建{album: images}, 同时排除不包括任何图片的专辑
        album_images_map = {}
        excluded_albums = []
        for album in albumsList:
            album_images = imagesList.where(Images.album == album.id)
            if album_images.count():
                album_images_map[album.id] = album_images
            else:
                excluded_albums.append(album.id)

        self.privData['ALBUMS_LIST'] = \
            [album for album in albumsList if album.id not in excluded_albums]
        self.privData['CATEGORIES_LIST'] = categoriesList
        self.privData['IMG_ALBUMS_LIST'] = album_images_map
        
        # 默认专辑为当前用户的第一个专辑
        self.privData['CURRENT_ALBUM'] = self.privData['ALBUMS_LIST'][0]
        # 默认图片为默认专辑的第一张图片
        self.privData['CURRENT_IMG'] = album_images_map[self.privData['CURRENT_ALBUM'].id][0]
        self.privData['SUBMIT_NAME'] = "thumbnail"

        return self.display('groupAdd')
예제 #14
0
파일: referer.py 프로젝트: XinMa1/work
    def search(self):
        inputParams = self.getInput()
        keywords = inputParams['keywords'].strip().lower() if inputParams.has_key('keywords') else ''
        page = int(inputParams['page']) if inputParams.has_key('page') else 1

        albumsList = Albums().select().where(Albums.name.contains(keywords))
        current_user = Users.get(Users.name == self.isLogin())
        if not self.isAdmin():
            albumsList = albumsList.where(Albums.owner == current_user)

        pageString = self.getPageStr(
                        self.makeUrl('/admin/albums/list'), 
                        page, 
                        config.COUNT_PER_PAGE, 
                        albumsList.count()
                     )
        self.privData['ALBUMS_LIST'] = albumsList.paginate(page, config.COUNT_PER_PAGE)
        self.privData['PAGE_STRING'] = pageString

        return self.display('albumsList')
예제 #15
0
파일: referer.py 프로젝트: XinMa1/work
    def list(self):
        inputParams = self.getInput()
        page = int(inputParams['page']) if inputParams.has_key('page') else 1
         
        albumsList = Albums().select()
        current_user = Users.get(Users.name == self.isLogin())
        if not self.isAdmin():
            albumsList = albumsList.where(Albums.owner == current_user)

        albumsList = albumsList.order_by(Albums.id.desc())
        pageString = self.getPageStr(
                        self.makeUrl('/admin/albums/list'), 
                        page, 
                        config.COUNT_PER_PAGE, 
                        albumsList.count()
                     )

        self.privData['ALBUMS_LIST'] = albumsList.paginate(page, config.COUNT_PER_PAGE)
        self.privData['PAGE_STRING'] = pageString

        return self.display('albumsList')
예제 #16
0
파일: referer.py 프로젝트: XinMa1/work
    def edit(self):
        inputParams = self.getInput()

        id = int(inputParams['id'])
        img = Images().get(Images.id == id)

        current_user = Users.get(Users.name == self.isLogin())
        if current_user.id != img.owner.id and not self.isAdmin():
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/images/list'))

        albumsList = Albums().select()
        if not self.isAdmin():
            albumsList = albumsList.where(Albums.owner == current_user)

        if not albumsList.count():
            return self.error(msg = '请创建至少一个专辑!', url=self.makeUrl('/admin/albums/list'))

        self.privData['IMAGE_INFO'] = img
        self.privData['ALBUMS_LIST'] = albumsList

        return self.display('imageEdit')
예제 #17
0
 def create_album(self):
     inputs = self.get_input()
     if web.ctx.method == "POST":
         name = inputs.get('name', '').strip()
         is_show = inputs.get('is_show', 0)
         album = Albums.get_or_none(Albums.name == name)
         if album:
             self.private_data["create_success"] = False
             self.private_data["create_message"] = u"相册已存在"
             return self.display("admin/create_album")
         try:
             if int(is_show) == 1:
                 albums = Albums.select().where(
                     Albums.status == 0, Albums.is_show == 1).execute()
                 for album in albums:
                     album.is_show = 0
                     album.save()
             album = Albums(name=name, is_show=is_show)
             album.save()
             self.private_data["create_success"] = True
             self.private_data["create_message"] = u"相册创建成功"
             return web.seeother(self.make_url('albums_list'))
         except Exception as e:
             log.error('create album failed%s' % traceback.format_exc())
             self.private_data["create_success"] = False
             self.private_data["create_message"] = u"创建相册失败"
             return self.display("admin/create_album")
     if web.ctx.method == "GET":
         return self.display("admin/create_album")
예제 #18
0
파일: referer.py 프로젝트: XinMa1/work
 def question_details(self):
     inputs = self.getInput()
     try:
         #import pdb;pdb.set_trace()
         question = Questions.get(Questions.id == inputs['id'])
         self.privData['QUESTION_DETAIL'] =question
         albumList = Albums.select().where(Albums.question ==inputs['id'])
         self.privData['ALUBUM'] =albumList
         answersList=Answers.select().where(Answers.question ==inputs['id'])
         self.privData['ANSWERS_LIST'] =answersList
         return self.display('question-details')
     except Exception, e:
         return self.error(msg='获取问题详情失败!')
예제 #19
0
파일: referer.py 프로젝트: XinMa1/work
    def add(self):
        articlesList = Articles().select()

        userName = self.isLogin()
        if userName != "admin":
            return self.error(msg="权限不足!", url=self.makeUrl("/admin/articles/list"))
        user = Users.get(Users.name == userName)
        albumsList = Albums().select().where(Albums.owner == user.id)
        imagesList = Images().select().where(Images.owner == user.id)
        categoriesList = Categories().select()

        if not albumsList.count():
            return self.error(msg="请创建至少一个专辑!", url=self.makeUrl("/admin/articles/list"))
        if not imagesList.count():
            return self.error(msg="请创建至少一个图片!", url=self.makeUrl("/admin/articles/list"))

        album_images_map = {}
        excluded_albums = []
        for album in albumsList:
            album_images = imagesList.where(Images.album == album.id)
            if album_images.count():
                album_images_map[album.id] = album_images
            else:
                excluded_albums.append(album.id)

        # 分类列表
        self.privData["CATEGORIES_LIST"] = categoriesList

        self.privData["ALBUMS_LIST"] = [album for album in albumsList if album.id not in excluded_albums]
        self.privData["IMG_ALBUMS_LIST"] = album_images_map

        # 默认专辑为当前用户的第一个专辑
        self.privData["CURRENT_ALBUM"] = self.privData["ALBUMS_LIST"][0]
        # 默认图片为默认专辑的第一张图片
        self.privData["CURRENT_IMG"] = album_images_map[self.privData["CURRENT_ALBUM"].id][0]
        self.privData["SUBMIT_NAME"] = "thumbnail"

        return self.display("articleAdd")
예제 #20
0
파일: referer.py 프로젝트: XinMa1/work
    def search(self):
        inputParams = self.getInput()
        keywords = inputParams['keywords'].strip().lower() if inputParams.has_key('keywords') else ''
        page = int(inputParams['page']) if inputParams.has_key('page') else 1

        imgsList = Images.select().where(Images.description.contains(keywords))
        albumsList = Albums().select()
        current_user = Users.get(Users.name == self.isLogin())
        if not self.isAdmin():
            imgsList = imgsList.where(Images.owner == current_user)
            albumsList = albumsList.where(Albums.owner == current_user)
      
        pageString = self.getPageStr(
                        self.makeUrl('/admin/images/list'), 
                        page, 
                        config.COUNT_PER_PAGE, 
                        imgsList.count()
                     )
        self.privData['IMAGES_LIST'] = imgsList.order_by(Images.id.desc()).paginate(page, config.COUNT_PER_PAGE)
        self.privData['PAGE_STRING'] = pageString
        self.privData['ALBUMS_LIST'] = albumsList

        return self.display('imagesList')
예제 #21
0
 def albums_list(self):
     inputs = self.get_input()
     if web.ctx.method == "GET":
         page = int(inputs.get('page', 1))
         page_size = int(inputs.get('page_size', 20))
         self.private_data['current_page'] = page
         self.private_data['total_page'] = 0
         albums_query = Albums.select().where(Albums.status == 0). \
             order_by(Albums.id.asc())
         total_count = albums_query.count()
         total_page = (total_count + page_size - 1) / page_size
         self.private_data['total_page'] = total_page
         self.private_data['albums_list'] = \
             albums_query.paginate(page, page_size).execute()
         return self.display("admin/albums_list")
예제 #22
0
파일: referer.py 프로젝트: XinMa1/work
    def add(self):
        if not self.isAdmin():
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/users/list'))


        albumsList = Albums().select()
        imagesList = Images().select()

        # 确认当前用户是否至少有一个包含图片的专辑
        if not albumsList.count():
            return self.error(msg = '请创建至少一个专辑!', url=self.makeUrl('/admin/albums/list'))
        if not imagesList.count():
            return self.error(msg = '请创建至少一个图片!', url=self.makeUrl('/admin/images/list'))

        # 构建{album: images}, 同时排除不包括任何图片的专辑
        album_images_map = {}
        excluded_albums = []
        for album in albumsList:
            album_images = imagesList.where(Images.album == album.id)
            if album_images.count():
                album_images_map[album.id] = album_images
            else:
                excluded_albums.append(album.id)

        # 不允许创建系统管理员
        rolesList = Roles().select().where(Roles.id>1)
        self.privData['ROLES_LIST'] = rolesList

        self.privData['ALBUMS_LIST'] = \
            [album for album in albumsList if album.id not in excluded_albums]
        self.privData['IMG_ALBUMS_LIST'] = album_images_map
        self.privData['CURRENT_ALBUM'] = self.privData['ALBUMS_LIST'][0]
        self.privData['CURRENT_IMG'] = album_images_map[self.privData['CURRENT_ALBUM'].id][0]
        self.privData['SUBMIT_NAME'] = "thumbnail"

        return self.display('userAdd')
예제 #23
0
파일: referer.py 프로젝트: XinMa1/work
    def delete(self):
        inputParams = self.getInput()
        album_id = int(inputParams['id'])

        if album_id == 1:
            return self.error(msg='不能删除系统专辑', url=self.makeUrl('/admin/albums/list'))

        album = Albums.get(Albums.id == album_id)
        current_user = Users.get(Users.name == self.isLogin())
        if current_user.id != album.owner.id and not self.isAdmin():
            return self.error(msg = '权限不足!', url=self.makeUrl('/admin/albums/list'))

        try:
            album.delete_instance()
        except Exception, e:
            return self.error(msg = '专辑删除失败: %s' % e, url=self.makeUrl('/admin/albums/list'))
예제 #24
0
 def GET(self):
     """
     首页
     :return:
     """
     inputs = self.get_input()
     page = int(inputs.get('page', 1))
     page_size = int(inputs.get('page_size', 20))
     self.private_data['article_list'] = []
     self.private_data['current_page'] = 1
     self.private_data['total_page'] = 0
     self.private_data['category_list'] = []
     try:
         album = Albums.get(Albums.is_show == 1)
         images = Images.select().where(Images.status == 0,
                                             Images.album == album.id)
         images_dict_list = []
         for image in images.dicts().iterator():
             image_dict = {
                 'link': image.get("link"),
                 'url': config.WEB_URL + 'static/uploads/' +
                        image.get("uuid") + '.jpeg'
             }
             images_dict_list.append(image_dict)
         category_list = Categories.select().where(
             Categories.status == 0). \
             order_by(Categories.id.desc())
         article_query = Articles.select().where(Articles.status == 0). \
             order_by(Articles.id.desc())
         article_list = article_query.paginate(page, page_size)
         total_count = article_query.count()
         total_page = (total_count + page_size - 1) / page_size
         self.private_data['article_list'] = article_list.execute()
         self.private_data['current_page'] = page
         self.private_data['total_page'] = total_page
         self.private_data['images_list'] = images_dict_list
         self.private_data['category_list'] = category_list.execute()
     except Exception as e:
         log.error('Failed to get home data. Error msg %s', e)
         log.error(traceback.format_exc())
     return self.display('front/index')
예제 #25
0
 def update_image(self):
     if web.ctx.method == "POST":
         image_id = web.input().get("image_id", None)
         link_url = web.input().get('link', '').strip()
         album_id = int(web.input().get('album_id'))
         file = web.input().get("file")
         try:
             flink = Images.get_or_none(Images.id == int(image_id))
             if flink:
                 f = HttpUploadedFile(file)
                 self.record_image(f=file,
                                   uuid=f.uuid(),
                                   link=link_url,
                                   call_type='update',
                                   album_id=album_id,
                                   image_id=image_id)
                 self.private_data["update_success"] = True
                 return web.seeother(self.make_url('images_list'))
         except Exception as e:
             log.error('create album failed%s' % traceback.format_exc())
             self.private_data["update_success"] = False
             self.private_data["update_message"] = u"更新相册失败"
             return web.seeother(
                 self.make_url('update_image', {'image_id': image_id}))
     if web.ctx.method == "GET":
         image_id = web.input().get("image_id", None)
         if not image_id or not image_id.isdigit():
             self.private_data["update_success"] = False
             self.private_data["update_message"] = u"参数有误"
             return web.seeother(self.make_url('images_list'))
         f_image = Images.get_or_none(Images.id == int(image_id))
         if not f_image:
             return web.seeother(self.make_url('images_list'))
         albums = Albums.select().where(Albums.status == 0). \
             order_by(Albums.id.asc()).execute()
         self.private_data["albums_list"] = albums
         self.private_data["image"] = f_image
         return self.display("admin/update_image")
예제 #26
0
 def update_album(self):
     inputs = self.get_input()
     if web.ctx.method == "POST":
         name = inputs.get('name', '').strip()
         album_id = inputs.get("album_id", None)
         is_show = inputs.get('is_show', 0)
         exist_album = Albums.get_or_none(Albums.name == name)
         if exist_album and exist_album.id != album_id:
             self.private_data["update_success"] = False
             self.private_data["update_message"] = u"同名相册已存在"
             return web.seeother(
                 self.make_url('update_album', {'album_id': album_id}))
         try:
             album = Albums.get_or_none(Albums.id == int(album_id))
             if int(is_show) == 1 and album.is_show == 0:
                 albums = Albums.select().where(
                     Albums.status == 0, Albums.is_show == 1).execute()
                 for album in albums:
                     album.is_show = 0
                     album.save()
             if album:
                 Albums.update(name=name, updateTime=time(),
                               is_show=is_show). \
                     where(Albums.id == int(album_id)).execute()
                 self.private_data["update_success"] = True
                 return web.seeother(self.make_url('albums_list'))
         except Exception as e:
             log.error('create album failed%s' % traceback.format_exc())
             self.private_data["update_success"] = False
             self.private_data["update_message"] = u"更新相册失败"
             return web.seeother(
                 self.make_url('update_album', {'album_id': album_id}))
     if web.ctx.method == "GET":
         album_id = inputs.get("album_id", None)
         if not album_id or not album_id.isdigit():
             self.private_data["update_success"] = False
             self.private_data["update_message"] = u"参数有误"
             return web.seeother(self.make_url('albums_list'))
         album = Albums.get_or_none(Albums.id == int(album_id))
         if not album:
             return web.seeother(self.make_url('albums_list'))
         self.private_data["album"] = album
         return self.display("admin/update_album")
예제 #27
0
파일: dbinit.py 프로젝트: XinMa1/work
    def __init__(self):
        db.connect()
        if not Version.table_exists():
           
            tablesName = [
                Version,
                Albums,
                Chatrooms,
                Categories,
                ProductComments,
                ProductFavorites, 
                ProductRankings,
                ProductPayments,
                Products,
                GroupComments,
                GroupFavorites, 
                GroupRankings,
                GroupPayments,
                Groups,
                Images,
                Roles,
                Transactions,
                Users,   
                Articles,
                Answners,
                Questions, 
            ]
        
            for i in tablesName:
                i.create_table()


        self.version=Version.get_or_create(description=open('VERSION').read())
        self.admin_role = Roles.get_or_create(type=1,  description='系统管理员')
        self.assistant_role = Roles.get_or_create(type=10, description='班级管理员')
        self.student_role = Roles.get_or_create(type=100,  description='注册学员')
        self.default_thumbnail = base64.b64encode(buffer(imaging.default_thumbnail()))
  
 
        self.sys_categories = Categories.get_or_create(
                            name = '系统预置分类',
                            description = '预置的初始父类!',
                            thumbnail = self.default_thumbnail,
                         )


        self.admin = Users.get_or_create(
                            name = 'admin',
                            cellphone = '13912345678',
                            email = '*****@*****.**',
                            password = '******',
                            gender = 0,
                            role = self.admin_role,
                            description = '预置的系统管理员!',
                            avatur = self.default_thumbnail
                     )

        self.sys_album = Albums.get_or_create(
                            name = '系统专辑',
                            description = '预置的系统专辑!',
                            thumbnail = self.default_thumbnail,
                            owner = self.admin
                         )

        self.sys_image = Images.get_or_create(
                            description = '预置的系统图片!',
                            thumbnail = self.default_thumbnail,
                            owner = self.admin,
                            album = self.sys_album,
                            uuid = 'default'
                         )