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