예제 #1
0
    def display(self, templateFile, params={}):
        path = os.path.join(
            os.path.dirname(__file__) + '/../templates/', templateFile)

        user = users.get_current_user()
        if user:
            isAdmin = user.email() == "*****@*****.**"
        else:
            isAdmin = False

        # Add some default parameters
        params['status'] = self.status
        params['APP_URL'] = 'http://joel.poloney.com/galleria'
        params['user'] = user
        params['isAdmin'] = isAdmin

        # Get 5 most recent albums
        params['recentAlbums'] = Album.gql("ORDER BY created DESC LIMIT 5")

        # Get All categories
        params['categories'] = Category.all()

        # Get information for stats section
        params['numAlbums'] = Album.all().count()
        params['numPhotos'] = Photo.all().count()

        self.response.out.write(template.render(path, params))
예제 #2
0
 def display(self,templateFile,params={}):
     path=os.path.join(os.path.dirname(__file__) + '/../templates/', templateFile)
     
     user=users.get_current_user()
     if user:
         isAdmin=user.email() == "*****@*****.**"
     else:
         isAdmin=False
     
     # Add some default parameters    
     params['status']=self.status
     params['APP_URL']='http://joel.poloney.com/galleria'
     params['user']=user
     params['isAdmin']=isAdmin
     
     # Get 5 most recent albums
     params['recentAlbums']=Album.gql("ORDER BY created DESC LIMIT 5")
     
     # Get All categories
     params['categories']=Category.all()
     
     # Get information for stats section
     params['numAlbums']=Album.all().count()
     params['numPhotos']=Photo.all().count()
     
     self.response.out.write(template.render(path, params))
예제 #3
0
 def get(self):
     categories = Category.gql("ORDER BY created DESC")
     
     params={
         'categories':categories
     }
     self.display('index.html', params)
예제 #4
0
 def get(self, resource):
     catId = int(urllib.unquote(resource))
     category = Category.get_by_id(catId)
     
     params={
         'category':category,
         'title':category.name
     }
     self.display('category.html', params)
예제 #5
0
def add_entry():
    if not session.get('login_in'):
        abort(401)
    title = request.form['title']
    content = request.form['text']
    category = Category(title,content)
    db.session.add(category)
    db.session.commit()
    flash('New entry was successfully posted')
    return redirect(url_for('show_entries'))
예제 #6
0
def addarticle():
    try:
        data = str(request.values)
        # print data
        parent_title = request.form.get('parent_title')
        level = request.form.get('level')
        title = request.form.get('title',"null")
        body = request.form.get('body')
        author = request.form.get('author')
        createtime = request.form.get('createtime')

        article = Article(title,body,author,createtime,level,parent_title)
        category = Category(name =title,level =level)
        db.session.add(article)
        db.session.add(category)
        db.session.commit()
        flash('New article was successfully posted')
        return redirect(url_for('test'))
    except IOError:
        print IOError
예제 #7
0
    def __updateSolvedCategories(self, id):
        if 'categories' in cherrypy.request.json:
            if not isinstance(cherrypy.request.json['categories'], list):
                raise ValidationException('`categories´ must be an instance of list.')

            number_of_valid_categories = len(cherrypy.request.json['categories'])

            for category in cherrypy.request.json['categories']:
                if Category().find(category):
                    number_of_valid_categories -= 1
                else:
                    raise ValidationException("A category with the given `categories´ list (ID: " + str(
                        category) + ") does not exist.")

            if number_of_valid_categories == 0:
                all_bug_categories = BugCategories().all({'bug_id': int(id)})

                for existing_bug_categories in all_bug_categories:
                    BugCategories().delete(existing_bug_categories['id'])

                for category in cherrypy.request.json['categories']:
                    BugCategories().create({'bug_id': int(id), 'category_id': int(category)})

        return True
예제 #8
0
    def get(self):
        categories = Category.gql("ORDER BY created DESC")

        params = {'categories': categories}
        self.display('index.html', params)
예제 #9
0
 def new(self, view: View):
     return view.render("posts/new", {"categories": Category.get().all()})
 def _setupRESTfulModels(self):
     return Category()
예제 #11
0
def redirect_new_paper():
    authors = Author().getAllAuthors()
    categories = Category().getAllCategories()
    subcategories = Subcategory().getAllSubcategories()

    return render_template("new-paper.html", authors=authors, categories=categories, subcategories=subcategories)
예제 #12
0
 def edit(self, view: View, request: Request):
     post = Post.find(request.params.get('id'))
     return view.render("posts/edit", {
         "categories": Category.get().all(),
         "post": post
     })
예제 #13
0
 def setUp(self):
     """Initializes test for user Class"""
     self.category = Category()
     self.category.category = {}
예제 #14
0
class TestForClassCategory(unittest.TestCase):
    """Test for category class"""
    def setUp(self):
        """Initializes test for user Class"""
        self.category = Category()
        self.category.category = {}

    def test_for_add_category_with_invalid_characters(self):
        """Tests for successfull creation of a category"""
        image = os.path.dirname(os.path.realpath(__file__)) + "/test.jpg"
        img = Image.open(image)
        response = self.category.create_category(' ', ' ', ' ', img)
        self.assertEqual(
            {
                "message": {
                    'type': '',
                    'msg': "Input cannot be empty"
                },
                'status': 'error'
            }, response)

    def test_for_adding_existing_category(self):
        image = os.path.dirname(os.path.realpath(__file__)) + "/test.jpg"
        img = Image.open(image)
        self.category.create_category('name', 'desc', 'user_id', img)
        response = self.category.create_category('name', 'desc', 'user_id',
                                                 img)
        self.assertEqual(
            {
                "message": {
                    'type': 'name_error',
                    'msg': "Category already exists"
                },
                'status': 'error'
            }, response)

    def test_update_category_without_image(self):
        image = os.path.dirname(os.path.realpath(__file__)) + "/test.jpg"
        img = Image.open(image)
        self.category.create_category('name', 'desc', 'user_id', img)
        response = self.category.update_category(1, 'new name', 'new desc',
                                                 'user_id', '')
        self.assertEqual('Category updated successfully', response['message'])

    def test_update_category_with_image(self):
        image = os.path.dirname(os.path.realpath(__file__)) + "/test.jpg"
        img = Image.open(image)
        self.category.create_category('name', 'desc', 'user_id', img)
        response = self.category.update_category(1, 'new name', 'new desc',
                                                 'user_id', img)
        self.assertEqual('Category updated successfully', response['message'])

    def test_update_existing_category(self):
        image = os.path.dirname(os.path.realpath(__file__)) + "/test.jpg"
        img = Image.open(image)
        self.category.create_category('name', 'desc', 'user_id', img)
        self.category.create_category('name 1', 'desc 1', 'user_id 1', img)
        response = self.category.update_category(2, 'name', 'desc', 'user_id',
                                                 img)
        self.assertEqual(
            {
                'msg': 'Category already exists',
                'type': 'name_error'
            }, response['message'])

    def test_update_category_with_invalid_input(self):
        image = os.path.dirname(os.path.realpath(__file__)) + "/test.jpg"
        img = Image.open(image)
        self.category.create_category('name', 'desc', 'user_id', img)
        response = self.category.update_category(1, ' ', ' ', ' ', img)
        self.assertEqual({
            'msg': 'Input cannot be empty',
            'type': ''
        }, response['message'])

    def test_delete_category(self):
        image = os.path.dirname(os.path.realpath(__file__)) + "/test.jpg"
        img = Image.open(image)
        self.category.create_category('name', 'desc', 'user_id', img)
        self.category.update_category(1, 'new name', 'new desc', 'user_id',
                                      img)
        response = self.category.delete_category(1)
        self.assertEqual(
            {
                "message": "Category deleted successfully",
                "status": "success"
            }, response)

    def test_delete_non_existing_category(self):
        response = self.category.delete_category(1)
        self.assertEqual(
            {
                "message": "Sorry, Category does not exist",
                "status": "error"
            }, response)

    def test_get_all_categories(self):
        image = os.path.dirname(os.path.realpath(__file__)) + "/test.jpg"
        img = Image.open(image)
        self.category.create_category('name', 'desc', 'user_id', img)
        self.category.create_category('new name', 'new desc', 'user_id', img)
        response = self.category.all_categories('user_id')
        self.assertEqual(self.category.category, response)

    def test_get_single_category(self):
        image = os.path.dirname(os.path.realpath(__file__)) + "/test.jpg"
        img = Image.open(image)
        self.category.create_category('name', 'desc', 'user_id', img)
        response = self.category.single_category(1)
        self.assertEqual("success", response['status'])

    def test_get_single_non_existing_category(self):
        response = self.category.single_category(1)
        self.assertEqual(
            {
                "message": "Category not available",
                "status": "error"
            }, response)

    def test_corrent_assign_id(self):
        res = self.category.assign_id()
        self.assertEqual(1, res)

    def test_check_if_category_exists(self):
        image = os.path.dirname(os.path.realpath(__file__)) + "/test.jpg"
        img = Image.open(image)
        self.category.create_category('name', 'desc', 'user_id', img)
        self.assertTrue(self.category.check_if_exists(1))

    def test_for_empty_fields(self):
        """Test for empty fields"""
        result = self.category.create_category('', '', '', '')
        self.assertEqual(
            {
                "status": "error",
                "message": {
                    'type': '',
                    'msg': "Fill all the fields"
                }
            }, result)

    def test_for_empty_name_field(self):
        """Test for empty name field"""
        result = self.category.create_category('', 'after dinner', 1,
                                               'file.png')
        self.assertEqual(
            {
                "status": "error",
                "message": {
                    'type': '',
                    'msg': "Fill all the fields"
                }
            }, result)

    def test_for_empty_description_field(self):
        """Test for empty description field"""
        result = self.category.create_category('dessert', '', 1, 'file.png')
        self.assertEqual(
            {
                "status": "error",
                "message": {
                    'type': '',
                    'msg': "Fill all the fields"
                }
            }, result)

    def test_for_non_existing_category(self):
        """Test for non-existing category"""
        self.category.single_category(1)
        result = self.category.single_category(2)
        self.assertEqual(
            {
                "status": "error",
                'message': 'Category not available',
                'status': 'error'
            }, result)

    def test_for_missing_update_category(self):
        """Test for non-existing update category"""
        self.category.update_category(1, 'Appetizers', 'a desc', 1, 'file.png')
        result = self.category.update_category(2, 'App', 'available before', 1,
                                               'file.png')
        self.assertEqual(
            {
                "status": "error",
                "message": {
                    'type': 'name_error',
                    'msg': "Category does not exist"
                }
            }, result)

    def test_for_delete_missing_category(self):
        """Test for non-existing delete category"""
        self.category.delete_category(2)
        result = self.category.delete_category(0)
        self.assertEqual(
            {
                "status": "error",
                "message": "Sorry, Category does not exist"
            }, result)

    def test_for_display_single_non_existing_category(self):
        """Test for non-existing display single category"""
        self.category.single_category(0)
        result = self.category.single_category(2)
        self.assertEqual(
            {
                "status": "error",
                "message": "Category not available"
            }, result)
예제 #15
0
 def handleAction(self):
     self.verifyLogin()
     
     action = self.request.get('action')
     
     params = {
         'action':action
     }
     
     if action == 'addphoto':
         albums = Album.gql("ORDER BY created DESC")
         
         if albums.count() > 0:
             params['uploadUrl'] = blobstore.create_upload_url('/upload')
         
         params['albums'] = albums
     elif action == 'addalbum':
         params['categories'] = Category.all()
         
         if self.request.get('submit'):
             album = Album()
             album.name = self.request.get('name')
             album.description = self.request.get('description')
             album.catId = int(self.request.get('catId'))
             album.modified = datetime.datetime.now()
             album.put()
             
             self.setStatus('Added new album')
             params['action'] = False
     elif action == 'editphoto':
         photoId = int(self.request.get('id'))
         photo = Photo.get_by_id(photoId)
         
         params['photo'] = photo
         params['albums'] = Album.gql("ORDER BY created DESC")
         if self.request.get('submit'):
             photo.name = self.request.get('name')
             photo.description = self.request.get('description')
             photo.albumId = int(self.request.get('albumId'))
             photo.regenerateThumbnail()
             photo.put()
             
             self.redirect(photo.getPermLink())
     elif action == 'delphoto':
         photoId = int(self.request.get('id'))
         photo = Photo.get_by_id(photoId)
         photo.delete()
         
         self.setStatus('Photo has been deleted')
         params['action'] = False
     elif action == 'editalbum':
         albumId = int(self.request.get('id'))
         album = Album.get_by_id(albumId)
         
         params['album'] = album
         params['categories'] = Category.all()
         if self.request.get('submit'):
             album.name = self.request.get('name')
             album.description = self.request.get('description')
             album.catId = int(self.request.get('catId'))
             album.modified = datetime.datetime.now()
             album.put()
             
             self.redirect(album.getPermLink())
     elif action == 'delalbum':
         albumId = int(self.request.get('id'))
         album = Album.get_by_id(albumId)
         album.delete()
         
         self.setStatus('Album has been deleted')
         params['action'] = False
     elif action == 'addcategory':
         if self.request.get('submit'):
             category = Category()
             category.name = self.request.get('name')
             category.description = self.request.get('description')
             category.put()
             
             self.setStatus('Added new category')
             params['action'] = False
     elif action == 'editcategory':
         catId = int(self.request.get('id'))
         category = Category.get_by_id(catId)
         
         params['category'] = category
         if self.request.get('submit'):
             category.name = self.request.get('name')
             category.description = self.request.get('description')
             category.put()
             
             self.redirect(category.getPermLink())
     elif action == 'delcategory':
         catId = int(self.request.get('id'))
         category = Category.get_by_id(catId)
         category.delete()
         
         self.setStatus('Category has been deleted')
         params['action'] = False
     
     self.display('admin.html', params)
예제 #16
0
 def getCategory(self):
     from app.models.Category import Category
     return Category.get_by_id(self.catId)
예제 #17
0
    def get(self, resource):
        catId = int(urllib.unquote(resource))
        category = Category.get_by_id(catId)

        params = {'category': category, 'title': category.name}
        self.display('category.html', params)
예제 #18
0
 def getCategory(self):
     from app.models.Category import Category
     return Category.get_by_id(self.catId)