Esempio n. 1
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        if form.picture.data:
            picture_file = save_picture(form.picture.data)
            post = Post(title=form.title.data,
                        content=form.content.data,
                        content_md=form.content_md.data,
                        author=current_user,
                        image_file=picture_file)
        else:
            post = Post(title=form.title.data,
                        content=form.content.data,
                        content_md=form.content_md.data,
                        author=current_user)
        db.session.add(post)
        current_user.post_title_saved = ''
        current_user.post_html_saved = ''
        current_user.post_md_saved = ''
        db.session.commit()
        flash("Post created!", 'success')
        return redirect(url_for('main.home'))
    return render_template("create_post.html",
                           title="New Post",
                           form=form,
                           legend="New Post")
Esempio n. 2
0
def index():
    form = PostForm()
    if current_user.can(
            Permission.Write_article) and form.validate_on_submit():
        post = Post(body=form.body.data,
                    author=current_user._get_current_object())
        db.session.add(post)
        db.session.commit()

        return redirect(url_for('main.index'))
        #为了显示某页中的记录, 要把 all() 换成 Flask-SQLAlchemy 提供的 paginate() 方法。
        #页数是 paginate() 方法的第一个参数,也是唯一必需的参数。可选参数 per_page 用来指定每页显示的记录数量;
        #如果没有指定,则默认显示 20 个记录。
        #另一个可选参数为 error_out,当其设为 True 时(默认值),如果请求的页数超出了范围,则会返回 404 错误;
        #如果设为 False,页数超出范围时会返回一个空列表。
    show_followed = False
    page = request.args.get('page', 1, type=int)
    if current_user.is_authenticated:
        show_followed = bool(request.cookies.get('show_followed', ''))
    if show_followed:
        query = current_user.followed_posts
    else:
        query = Post.query
    pagination = query.order_by(Post.timestamp.desc()).paginate(
        page,
        per_page=current_app.config['FLASK_POSTS_PER_PAGE'],
        error_out=False)
    posts = pagination.items

    return render_template('main/index.html',
                           show_followed=show_followed,
                           form=form,
                           posts=posts,
                           pagination=pagination)
Esempio n. 3
0
def new_event():
    form = EventForm()
    if form.validate_on_submit():
        print(form.youtube.data)
        url = form.youtube.data.replace("watch?v=", "embed/")
        if form.youtube.data == "":
            url = None
        if form.picture.data:
            image_file = save_picture(form.picture.data)
        if not form.picture.data:
            image_file = ""
        event = Event(event_name=form.title.data,
                      event_time=form.time.data,
                      location=form.location.data,
                      event_date=form.event_date.data,
                      last_registration=form.last_registration.data,
                      max_participants=form.max_participants.data)
        db.session.add(event)
        db.session.flush()
        post = Post(title=form.title.data,
                    content=form.content.data,
                    youtube=url,
                    author=current_user,
                    image_file=image_file,
                    event_id=event.id)
        db.session.add(post)
        db.session.commit()
        return redirect(url_for('posts.home'))
    user_info = User_info.query.filter_by(id=current_user.id).first()
    return render_template('new_event.html', form=form, user_info=user_info)
Esempio n. 4
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        url = form.youtube.data.replace("watch?v=", "embed/")
        if form.youtube.data == "":
            url = None
        if form.picture.data:
            image_file = save_picture(form.picture.data)
        if not form.picture.data:
            image_file = ""

        post = Post(title=form.title.data,
                    content=form.content.data,
                    youtube=url,
                    author=current_user,
                    image_file=image_file)
        db.session.add(post)
        db.session.commit()

        return redirect(url_for('posts.home'))
    user_info = User_info.query.filter_by(id=current_user.id).first()
    get_warnings = AttendingEvent.query.filter(
        AttendingEvent.warning == 'warning').filter(
            AttendingEvent.user_id == current_user.id).all()
    user_warning = []
    for warning in get_warnings:
        event = Post.query.filter(Post.event_id == warning.event_id).first()
        user_warning.append(event)
    return render_template('create_post.html',
                           form=form,
                           user_info=user_info,
                           user_warning=user_warning)
Esempio n. 5
0
def index():
    form = PostForm()
    if form.validate_on_submit():
        language = guess_language(form.post.data)
        if language == 'UNKNOWN' or len(language) > 5:
            language = ''
        post = Post(body=form.post.data,
                    author=current_user,
                    language=language)
        db.session.add(post)
        db.session.commit()
        flash(_('Your post is now live!'))
        return redirect(url_for('main.index'))
    page = request.args.get('page', 1, type=int)
    posts = current_user.followed_posts().paginate(
        page, current_app.config['POSTS_PER_PAGE'], False)
    next_url = url_for('main.index', page=posts.next_num) \
        if posts.has_next else None
    prev_url = url_for('main.index', page=posts.prev_num) \
        if posts.has_prev else None
    return render_template('index.html',
                           title=_('Home'),
                           form=form,
                           posts=posts.items,
                           next_url=next_url,
                           prev_url=prev_url)
Esempio n. 6
0
def create_post():
    '''Create new post route'''

    form = CreatePostForm(category='general')
    profile_image = url_for('static',
                            filename='images/{}'.format(
                                current_user.image_file))
    if form.validate_on_submit():
        try:
            post = Post(title=form.title.data,
                        category=form.category.data,
                        content=form.content.data,
                        author=current_user)
            db.session.add(post)
            db.session.commit()
            db.session.remove()
            flash('Post created successfully', 'success')
            return redirect(url_for('forum.create_post'))
        except IntegrityError:
            logger.error('create_post IntegrityError error', exc_info=True)
            db.session.rollback()
            flash('Post not successful', 'fail')
            return redirect(url_for('forum.forum_route'))
    content = {
        'image_file': profile_image,
        'page_title': 'New',
        'form': form,
        'post': None
    }
    return render_template('forum/create_post.html', **content)
Esempio n. 7
0
def index():
    form = PostForm()
    if form.validate_on_submit():
        language = guess_language(form.post.data)
        if language == 'UNKNOWN' or len(language) > 5:
            language = ''

        post = Post(body=form.post.data,
                    author=current_user,
                    language=language)
        db.session.add(post)
        db.session.commit()
        flash(_('Your post is now live!'))
        return redirect(url_for('main.index'))

    # pagination
    page = request.args.get('page', 1, type=int)
    posts = current_user.followed_posts().paginate(
        page, current_app.config['POSTS_PER_PAGE'], False)

    next_url = url_for('main.index',
                       page=posts.next_num) if posts.has_next else None
    prev_url = url_for('main.index',
                       page=posts.prev_num) if posts.has_prev else None
    """
    render_template() invokes the Jinja2 template engine that comes bundled with
    the Flask framework, substituting {{ ... }} blocks with the corresponding
    values, given by the arguments provided in the render_template() call."""
    return render_template('index.html',
                           title=_('Home'),
                           form=form,
                           posts=posts.items,
                           next_url=next_url,
                           prev_url=prev_url)
Esempio n. 8
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post=Post(title=form.title.data, content=form.content.data, author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Your form has been submitted', 'success')
        return redirect(url_for('users.user_posts', username=current_user.username))
    return render_template('create_post.html', title='New Post', form=form, legend='New Post')
Esempio n. 9
0
    def test_check_fields(self):
        post = Post()
        post.title = 'test'
        post.text = 'text_test'

        self.assertEqual(post.title, 'test')
        self.assertNotEqual(post.title, 'test1')
        self.assertTrue(post.text, 'text_test')
        self.assertNotEqual(post.text, 'Python is cool!!!')
Esempio n. 10
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data, content=form.content.data, author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Your post has been successfully added', 'success')
        return redirect(url_for('main.home'))
    return render_template('create_post.html', title="News Post", form = form, legend='New Post')
Esempio n. 11
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data, url=form.url.data,
                    content=form.content.data, author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Váša otázka bola vytvorená a zverejnená', 'success')
        return redirect(url_for('main.home'))
    return render_template('create_post.html', title='Opýtať sa otázku', form=form, legend='Opýtajte sa otázku')
Esempio n. 12
0
def post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    content=form.content.data,
                    author=current_user)
        db.session.add(post)
        db.session.commit()
        return redirect(url_for('home'))
    return render_template("post.html", form=form)
Esempio n. 13
0
def tracking():
    form = ItemForm()
    if form.validate_on_submit():
        input_item = Post(material=form.material.data.strip(), count=form.count.data,
            value=locale.currency(prices[form.material.data.strip()] * int(form.count.data), grouping=True), author=current_user)
        db.session.add(input_item)
        db.session.commit()
        flash('You have inputted a new item to be recycled!')
        return redirect(url_for('tracking'))
    return render_template("tracking.html", title='Tracking', form=form)
Esempio n. 14
0
    def test_follow_posts(self):
        # create four users
        u1 = User(username='******', email='*****@*****.**')
        u2 = User(username='******', email='*****@*****.**')
        u3 = User(username='******', email='*****@*****.**')
        u4 = User(username='******', email='*****@*****.**')
        db.session.add_all([u1, u2, u3, u4])

        now = datetime.utcnow()
        p1 = Post(body='post from john',
                  author=u1,
                  timestamp=now + timedelta(seconds=1))
        p2 = Post(body='post from john',
                  author=u2,
                  timestamp=now + timedelta(seconds=4))
        p3 = Post(body='post from john',
                  author=u3,
                  timestamp=now + timedelta(seconds=3))
        p4 = Post(body='post from john',
                  author=u4,
                  timestamp=now + timedelta(seconds=2))
        db.session.add_all([p1, p2, p3, p4])
        db.session.commit()

        # setup the followers
        u1.follow(u2)
        u1.follow(u4)
        u2.follow(u3)
        u3.follow(u4)

        # check the followed posts
        f1 = u1.followed_posts().all()
        f2 = u2.followed_posts().all()
        f3 = u3.followed_posts().all()
        f4 = u4.followed_posts().all()
        self.assertEqual(f1, [p2, p4, p1])
        self.assertEqual(f2, [p2, p3])
        self.assertEqual(f3, [p3, p4])
        self.assertEqual(f4, [p4])

        af4 = u4.followed_posts_sql().fetchall()
        self.assertEqual(f4[0].user_id, af4[0].user_id)
Esempio n. 15
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    content=form.content.data,
                    user_created=current_user.id).save()
        current_user.posts.append(post)
        current_user.save()
        flash('Your post has been created successfully', 'success')
        return redirect(url_for('home'))
    return render_template('new_post.html', form=form, legend='Add new post')
Esempio n. 16
0
def qrscan():
    data = request.json['data'].split(',')
    for item in data:
        stripped = str(item)[1:-1].split(' ')
        count = stripped[1]
        material = stripped[0]
        input_item = Post(material=material, count=count, value=locale.currency(prices[material] * int(count), grouping=True), author=current_user)
        db.session.add(input_item)
        db.session.commit()
    flash('You have inputted a new item to be recycled!')
    return redirect(url_for('tracking'))
Esempio n. 17
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data, content=form.content.data,
                    author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Conteúdo publicado com sucesso!', 'success')
        return redirect(url_for('main.index'))
    return render_template('posting.html', title='Novas Postagens',
                           form=form, legend='Nova Postagem')
Esempio n. 18
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    content=form.content.data,
                    author=current_user)
        db.session.add(post)
        db.session.commit()
        flash("Your post has been created!", "success")
        return redirect(url_for("main.home"))
    return render_template("create_post.html", title="New Post", form=form)
Esempio n. 19
0
def create():
    form = PostForm()
    if form.validate_on_submit():
        postData = Post(post=form.post.data, user_id=current_user.id)

        db.session.add(postData)
        db.session.commit()
        return redirect(url_for('posts'))
    else:
        print(form.errors)
    return render_template('create_post.html', title='Create Post', form=form)
Esempio n. 20
0
    def test_follow_posts(self):
        # create four users
        u1 = User(username='******', email='*****@*****.**')
        u2 = User(username='******', email='*****@*****.**')
        u3 = User(username='******', email='*****@*****.**')
        u4 = User(username='******', email='*****@*****.**')
        db.session.add_all([u1, u2, u3, u4])

        # create four posts
        now = datetime.utcnow()
        p1 = Post(body="post from john",
                  author=u1,
                  timestamp=now + timedelta(seconds=1))
        p2 = Post(body="post from susan",
                  author=u2,
                  timestamp=now + timedelta(seconds=4))
        p3 = Post(body="post from mary",
                  author=u3,
                  timestamp=now + timedelta(seconds=3))
        p4 = Post(body="post from david",
                  author=u4,
                  timestamp=now + timedelta(seconds=2))
        db.session.add_all([p1, p2, p3, p4])
        db.session.commit()

        # setup the followers
        u1.follow(u2)  # john follows susan
        u1.follow(u4)  # john follows david
        u2.follow(u3)  # susan follows mary
        u3.follow(u4)  # mary follows david
        db.session.commit()

        # check the followed posts of each user
        f1 = u1.followed_posts().all()
        f2 = u2.followed_posts().all()
        f3 = u3.followed_posts().all()
        f4 = u4.followed_posts().all()
        self.assertEqual(f1, [p2, p4, p1])
        self.assertEqual(f2, [p2, p3])
        self.assertEqual(f3, [p3, p4])
        self.assertEqual(f4, [p4])
Esempio n. 21
0
def post():
    post_form = PostForm()
    if post_form.validate_on_submit():
        post = Post(
            title=post_form.title.data,
            content=post_form.content.data,
            user_id=current_user.id
        )
        db.session.add(post)
        db.session.commit()
        return redirect(url_for('home'))
    return render_template('post.html', title='Post', form=post_form)
Esempio n. 22
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    content=form.content.data,
                    category=dict(form.category.choices).get(
                        form.category.data),
                    author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Your post has been created!', 'success')
        return redirect(url_for('main.index'))
    return render_template('posts/post_form.html', title='New Post', form=form)
Esempio n. 23
0
def feed_back():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(body=form.post.data, author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Your post is now live!')
        return redirect(url_for('index'))
    posts = current_user.followed_posts().all()
    return render_template("feed_back.html",
                           title='Feed Back',
                           form=form,
                           posts=posts)
Esempio n. 24
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    content=form.content.data,
                    author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Your post has been created', 'is-success')
        return redirect(url_for('posts.blog'))
    return render_template('pages/blogs/create_post.html',
                           title='New Post',
                           form=form,
                           legend="Creer un nouveau Post")
Esempio n. 25
0
def adding_post():
    if request.method == 'POST':
        title = request.form.get('title')
        text = request.form.get('text')
        user_id = current_user.id
        value = Post(title=title, text=text, user_id=user_id)
        try:
            db.session.add(value)
            db.session.commit()
            return redirect('/posts')
        except:
            return 'При добавлении произошла ошибка'

    else:
        return render_template('post-add.html')
Esempio n. 26
0
 def create_post(self, title, content, user_id):
     try:
         now = datetime.datetime.now()
         p = Post(user_id=user_id,
                  title=title,
                  content=content,
                  last_replied_user_id=user_id,
                  last_replied_time=now,
                  created=now,
                  updated=now)
         db.session.add(p)
         db.session.commit()
         return p.id, True
     except Exception as e:
         print(e)
         return 0, False
Esempio n. 27
0
def new_post(group_title):
    form = PostForm()
    group = Project.query.filter(Project.title==group_title).first_or_404()
    if form.validate_on_submit():
        message = checkMessage(form.content.data.split())
        mess = message[0]
        if message[1]==1:
            user=User.query.filter_by(id=current_user.id).first()
            user.rating-=1
            db.session.add(user)
            db.session.commit()
        post = Post(content=mess,group_id=group.id,author=current_user.username,date_posted=datetime.datetime.now())
        db.session.add(post)
        db.session.commit()
        flash('Your post has been posted','success')
        return redirect(url_for('grouppage',group_title=group.title))
    return render_template('create_post.html', title='New Post', form =form,legend ='New Post',group=group)
Esempio n. 28
0
def main(location):
    clear_all()
    html_parser = HTMLParser()

    # parse a file
    if not location:
        path = os.path.dirname(os.path.realpath(__file__))
        wp = wxr_parser.parse(os.path.join(path, 'wp.xml'))
    else:
        wp = wxr_parser.parse(location)

    tags = wp['tags']
    for _, kv in tags.iteritems():
        Tag(name=kv['title'], slug=kv['slug']).save()
    cates = wp['categories']
    for _, kv in cates.iteritems():
        Category(name=kv['title']).save()
    posts = wp['posts']
    for post in posts:
        markdown, content = convert_content(post['content'])
        creator = post['creator']
        user = User.objects.filter(name=creator).first()
        if not user:
            role = Role.objects.filter(name="READER").first()
            if not role:
                role = Role.objects.create(name="READER",
                                           permission=Permission.READ)
            password = ''.join([
                random.choice(string.ascii_uppercase + string.ascii_lowercase +
                              string.digits) for i in xrange(16)
            ])
            user = User.objects.create(name=creator,
                                       email='*****@*****.**',
                                       role=[role],
                                       password=password)

        Post(title=html_parser.unescape(post['title']),
             slug=post['slug'],
             content=content,
             markdown=markdown,
             page=False,
             author=user,
             status=convert_status(post['status'].upper()),
             published_at=post['pub_date'],
             created_at=post['pub_date']).save()
Esempio n. 29
0
def viewpost_post():
    form = PostForm()
    searchform = PostSearchForm()
    user_icon = getUserIcon()
    posts = Post.query.all()
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    contents=form.content.data,
                    owner=current_user.id)
        db.session.add(post)
        db.session.commit()
        return redirect(url_for('forum.viewpost_post'))
    return render_template('forum.html',
                           title='Forum',
                           form=form,
                           icon=user_icon,
                           posts=posts,
                           searchform=searchform)
Esempio n. 30
0
    def initdb():
        """Initialize the database.
        This will drop and recreate the actual database if it already exists.
        The database name from the `SQLALCHEMY_DATABASE_URI` environment
        variable is used for this.
        """
        # If there is an existing DB, make sure to drop it and start completely fresh.
        db_url = db.engine.url
        if database_exists(db_url):
            drop_database(db_url)
        create_database(db_url)

        db.create_all()

        post = Post("Cool blog post title",
                    "Content is even cooler within the blog post itself!")
        db.session.add(post)
        db.session.commit()