Example #1
0
def handle_slug(slug, title):
    """Create slug and page properties.
    If slug is not given generate from title.
    If slug has a '/' prefix make post a root page.
    If slug has a leading '!' also list page on the sidebar.
    """
    slug = slug.strip()
    if slug == '' or slug == '/' or slug == '!' or slug == '!/':
        slug += blog.slugify(title)

    if len(slug)>0 and slug[0] == '!':
        is_entry_page = True
        slug = slug[1:]
    else:
        is_entry_page = False

    if len(slug)>0 and slug[0] == '/':
        is_page = True
        slug = slug[1:]
    else:
        is_page = False

    slug_defaulted = False
    matches = re.findall(r'([-\w]+)', slug)
    if not (bool(slug) and matches and slug == matches[0]):  # not valid slug?
        # fall back to using title
        slug = blog.slugify(title)
        slug_defaulted = True

    return slug, slug_defaulted, is_entry_page, is_page
Example #2
0
    def post(self):
        new_post = blog.Post()
        new_post.title = self.request.get('title')
        new_post.body = self.request.get('body')

        slug = self.request.get('slug').strip()
        if slug == '':
            slug = blog.slugify(new_post.title)
        new_post.slug = slug

        excerpt = self.request.get('excerpt').strip()
        if excerpt == '':
            excerpt = None
        new_post.excerpt = excerpt

        new_post.tags = self.request.get('tags').split(',')

        if self.request.get('submit') == 'Submit':
            if new_post.put():
                # for now I use this sleep here to wait the post be created. I can't find a way to 
                # solve it. invesigate better later.
                time.sleep(2)
                self.redirect(new_post.get_absolute_url())
        else:
            new_post.populate_html_fields()
            template_values = {
                'post': new_post,
                }
            page = view.Page()
            page.render(self, 'admin/post_form.html', template_values)
Example #3
0
    def post(self):
        new_post = blog.Post()
        new_post.title = self.request.get('title')
        new_post.body = self.request.get('body')

        slug = self.request.get('slug').strip()
        if slug == '':
            slug = blog.slugify(new_post.title)
        new_post.slug = slug

        excerpt = self.request.get('excerpt').strip()
        if excerpt == '':
            excerpt = None
        new_post.excerpt = excerpt

        new_post.tags = self.request.get('tags').split(',')

        if self.request.get('submit') == 'Submit':
            if new_post.put():
                # for now I use this sleep here to wait the post be created. I can't find a way to
                # solve it. invesigate better later.
                time.sleep(2)
                self.redirect(new_post.get_absolute_url())
        else:
            new_post.populate_html_fields()
            template_values = {
                'post': new_post,
            }
            page = view.Page()
            page.render(self, 'admin/post_form.html', template_values)
Example #4
0
 def save(self, post=None, commit=True):
     data = self.cleaned_data
     if not post: post = blog.Post()
     post.title = data['title']
     post.slug = data['slug'] if not data['slug'] == '' else blog.slugify(data['title'])
     post.tags = data['tags'].split()
     post.excerpt = data['excerpt'] if not data['excerpt'] == '' else None
     post.body = data['body']
     post.publish = data['publish']
     post.populate_html_fields()
     if commit: post.put()
     return post        
Example #5
0
    def post(self, year, month, day, slug):
        year = int(year)
        month = int(month)
        day = int(day)

        # Build the time span to check for the given slug
        start_date = datetime.datetime(year, month, day)
        time_delta = datetime.timedelta(days=1)
        end_date = start_date + time_delta

        # Create a query to check for slug uniqueness in the specified time span
        query = blog.Post.all()
        query.filter('pub_date >= ', start_date)
        query.filter('pub_date < ', end_date)
        query.filter('slug = ', slug)

        post = query.get()

        if post == None:
            page = view.Page()
            page.render_error(self, 404)
        else:
            action_url = post.get_edit_url()
            post.title = self.request.get('title')
            post.body = self.request.get('body')

            slug = self.request.get('slug').strip()
            if slug == '':
                slug = blog.slugify(post.title)
            post.slug = slug

            excerpt = self.request.get('excerpt').strip()
            if excerpt == '':
                excerpt = None
            post.excerpt = excerpt

            post.tags = self.request.get('tags').split(',')

            if self.request.get('submit') == 'Submit':
                post.put()
                # for now I use this sleep here to wait the post be created. I can't find a way to 
                # solve it. invesigate better later.
                time.sleep(2)
                self.redirect(post.get_absolute_url())
            else:
                post.populate_html_fields()
                template_values = {
                    'action': action_url,
                    'post': post,
                }
                page = view.Page()
                page.render(self, 'admin/post_form.html', template_values)
Example #6
0
    def post(self, year, month, day, slug):
        year = int(year)
        month = int(month)
        day = int(day)

        # Build the time span to check for the given slug
        start_date = datetime.datetime(year, month, day)
        time_delta = datetime.timedelta(days=1)
        end_date = start_date + time_delta

        # Create a query to check for slug uniqueness in the specified time span
        query = blog.Post.all()
        query.filter('pub_date >= ', start_date)
        query.filter('pub_date < ', end_date)
        query.filter('slug = ', slug)

        post = query.get()

        if post == None:
            page = view.Page()
            page.render_error(self, 404)
        else:
            action_url = post.get_edit_url()
            post.title = self.request.get('title')
            post.body = self.request.get('body')

            slug = self.request.get('slug').strip()
            if slug == '':
                slug = blog.slugify(post.title)
            post.slug = slug

            excerpt = self.request.get('excerpt').strip()
            if excerpt == '':
                excerpt = None
            post.excerpt = excerpt

            post.tags = self.request.get('tags').split(',')

            if self.request.get('submit') == 'Submit':
                post.put()
                # for now I use this sleep here to wait the post be created. I can't find a way to
                # solve it. invesigate better later.
                time.sleep(2)
                self.redirect(post.get_absolute_url())
            else:
                post.populate_html_fields()
                template_values = {
                    'action': action_url,
                    'post': post,
                }
                page = view.Page()
                page.render(self, 'admin/post_form.html', template_values)
Example #7
0
 def clean_slug(self):
     data = self.cleaned_data['slug']
     data = data if not data == '' else blog.slugify(self.cleaned_data['title'])
     return data