Exemple #1
0
def create_posts(members_instances):

    post1 = models.Post("Agriculture", "Agriculture is amazing",
                        members_instances[0].id)
    post2 = models.Post("Engineering", "I love engineering",
                        members_instances[0].id)

    post3 = models.Post("Medicine", "Medicine is great",
                        members_instances[1].id)
    post4 = models.Post("Architecture", "Spectacular art",
                        members_instances[1].id)
    post5 = models.Post("Astronomy", "Space is awesome",
                        members_instances[1].id)

    post6 = models.Post("Geology", "Earth is our friend",
                        members_instances[2].id)
    post7 = models.Post("ComputerSci", "Our passion", members_instances[2].id)
    post8 = models.Post("Algorithms", "Yeah, more of that",
                        members_instances[2].id)
    post9 = models.Post("Operating Systems", "Ewww", members_instances[2].id)

    print(post1)
    print(post2)
    print(post3)
    print("=" * 30)

    return post1, post2, post3, post4, post5, post6, post7, post8, post9
Exemple #2
0
def Post(isGET=False, data=dict()):
    if isGET:
        pt = models.Post.query.get(data['id'])
        result = {
            "type": 1,
            "serialisedData": {
                "photo": pt.photo_id,
                "text": pt.description,
                "author": pt.author_id,
                "date": pt.timestamp,
                "status": pt.status,
                "id": pt.id
            }
        }
        result['serialisedData'] = str(result['serialisedData'])
        return result
    else:
        pt = models.Post(description=data['text'],
                         status=data['status'],
                         author_id=data['author'],
                         photo_id=data['photo'],
                         squad_id=None)
        db.session.add(pt)
        db.session.commit()

        return str(pt.id)
def index():
    form = forms.PostForm()
    if form.validate_on_submit():
        language = guess_language(form.post.data)
        if language == 'UNKNOWN' or len(language) > 5:
            language = ''
        post = models.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
    # How is the current_user passed in? Just a global?
    return render_template('index.html',
                           title=_('Home Page'),
                           form=form,
                           posts=posts.items,
                           next_url=next_url,
                           prev_url=prev_url)
Exemple #4
0
 def create_post(self, db: Session, post: PostCreate,
                 user_id: int) -> models.Post:
     new_post = models.Post(**post.dict(), user_id=user_id)
     db.add(new_post)
     db.commit()
     db.refresh(new_post)
     return new_post
Exemple #5
0
    def test_add_post_data(self):
        post = models.Post(title="testqwer", user="******", message="hello")
        db.session.add(post)
        db.session.commit()

        exists = models.Post.query.filter_by(title='testqwer').first()
        assert (exists is not None)
Exemple #6
0
def cms_submit():
    form = forms.DatabaseForm()
    if not form.validate_on_submit():
        return render_template('/old-site/blog/cms/new-post.html',
                               icons=dog_icons(),
                               form=form)
    else:
        css_class = get_theme(form.color.data)
        title = bleach.clean(form.title.data)
        icon = form.icon.data
        subtitle = bleach.clean(form.subtitle.data)
        content = generate_markdown(form.content.data, True)
        date_string = form.hidden_date.data
        month = form.month.data
        year = form.year.data

        post = models.Post(css_class=css_class,
                           title=title,
                           icon=icon,
                           subtitle=subtitle,
                           date=date_string,
                           month=month,
                           content=content,
                           year=year)

        db.session.add(post)
        db.session.commit()

        flash('Your post titled %s has been added to the database!' % title)
        return redirect(url_for('cms'))
Exemple #7
0
def topic_add():
    if request.method == "POST":
        new_post = models.Post(request.form["title"], request.form["body"])
        post_store.add(new_post)
        return redirect(url_for("home"))
    else:
        return render_template("topic_add.html")
Exemple #8
0
def add_topic():
    if request.method == 'POST':
        new_post = models.Post(title=request.form["title"], content=request.form["content"])
        post_store.add(new_post)
        return redirect(url_for('home'))
    else:
        return render_template("add_topic.html")
Exemple #9
0
def new_post():
    form = NewPostForm()

    if form.validate_on_submit():

        p = models.Post(title=form.title.data, \
                        body=form.body.data, \
                        slug=slugify(form.title.data), \
                        description=form.description.data, \
                        timestamp=datetime.datetime.utcnow(), \
                        author=g.user)

        tagnames = form.tags.data.split(TAG_DELIM)
        p.set_tags_str(tagnames)

        filename = upload_file(request)
        if filename:
            p.thumbnail = "/uploads/thumbs/" + filename
        else:
            p.thumbnail = DEFAULT_THUMB

        db.session.add(p)
        db.session.commit()

        flash(u'New post created successfully.', 'alert-success')
        return redirect(url_for("index"))

    return render_template("new_post.html", form=form)
Exemple #10
0
def newpost():
    form = PostForm()

    if 'email' not in session:
        return redirect(url_for('signin'))

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('newpost.html', title="New Post", form=form)
        else:
            cur_user = User.query.filter_by(email=session['email']).first()
            link = form.body.data
            article = Article(url=link)
            article.download()
            article.parse()
            post_body = article.text[:160] + '...'
            post_title = article.title
            if len(str(article.top_image)) > 0:
                img_addr = str(article.top_image)
            else:
                img_addr = '/static/userdata/avatar.png'
            new = models.Post(title=post_title,
                              body=post_body,
                              timestamp=datetime.datetime.utcnow(),
                              link=link,
                              image=img_addr,
                              likes=0,
                              author=cur_user)
            db.session.add(new)
            db.session.commit()
            flash("Post Successfull")
            return redirect(url_for('profile', nick=session['nick']))

    elif request.method == 'GET':
        return render_template('newpost.html', title="New Post", form=form)
Exemple #11
0
def posts():

    try:
        title = request.form.get('title') or ""
        body = request.form.get('body')
        p = models.Post(body=body, title=title)
        db.session.add(p)
        db.session.commit()
    except:
        print("############Error with database")

    try:
        from_email = Email("*****@*****.**")
        subject = "New Post: " + title
        to_email = Email("*****@*****.**")
        content = Content("text/plain", body)
        mail = Mail(from_email, subject, to_email, content)
        response = sg.client.mail.send.post(request_body=mail.get())
        print("response: ", response.status_code)
        print("body: ", response.body)
        print("headers: ", response.headers)
    except:
        print("###################### Failed to send email")

    return jsonify({'error': 1, 'title': escape(title), 'body': escape(body)})
Exemple #12
0
def post_create():
    error = None
    message = None
    success = False
    results = None

    if request.is_json:
        try:
            data = request.get_json()

            if not data:
                error = 'Json data is missen'
                return jsonify({'success': success, 'data': results, 'message': message, 'error': error})

        except Exception as e:
            error = 'Json data is missen'
            return jsonify({'success': success, 'data': results, 'message': message, 'error': error})

        try:
            clean_data = schema_post.post_validate_schema.load(data)

        except ValidationError as e:
            error = e.normalized_messages()
            return jsonify({'success': success, 'data': results, 'message': message, 'error': error})

        try:
            user = models.User.query.filter_by(
                id=clean_data['user_id']).first()

            if not user:
                error = 'Invalid user_id parsed'
                return jsonify({'success': success, 'data': results, 'message': message, 'error': error})

            new_post = models.Post(body=clean_data['body'], created_by=user.id)

            db.session.add(new_post)
            db.session.commit()

            success = True
            message = "New post created successfully!!!"
            results = schema_post.post_schema.dump(new_post)
            results['liked_by'] = []
            results['comments'] = []

            for liked in post.liked_post:
                results['liked_by'].append(liked.user.username)

            for comment in post.comments:
                data = {'body': comment.body, 'commented_by': comment.commented_by,
                        'comment_date': comment.comment_date}
                results['comments'].append(data)

        except Exception as e:
            error = 'Invalid user_id parsed'

    else:
        error = 'Only Json data is required'

    return jsonify({'success': success, 'data': results, 'message': message, 'error': error})
Exemple #13
0
 def add_post(user_id, body, date):
     print user_id
     print body
     print date
     post = models.Post(user_id=user_id, body=body, timestamp=date)
     db.session.add(post)
     db.session.commit()
     return post
Exemple #14
0
def topic_add():
    if request.method == "POST":
        # Note "title and "content" should be same "name" as in  html form
        new_post = models.Post(request.form["title"], request.form["content"])
        post_store.add(new_post)
        return redirect(url_for("home"))
    else:
        return render_template("topic_add.html")
Exemple #15
0
def topic_add():
    if request.method == "GET":
        return render_template("topic_add.html")
    elif request.method == "POST":
        new_post = models.Post(title=request.form["topictitle"],
                               content=request.form["topicbody"])
        post_store.add(new_post)
        return redirect(url_for("home"))
Exemple #16
0
def add_post():
    if request.method == "POST":
        new_post = models.Post(title=request.form["Title"],
                               content=request.form["Content"])
        post_store.add(new_post)
        return redirect(url_for("home"))
    else:
        return render_template("add_post.html")
Exemple #17
0
def topic_add_api():
    request_data = request.get_json()
    try:
        new_post = models.Post(request_data["title"], request_data["content"])
        post_store.add(new_post)
        result = jsonify(new_post.__dict__())
    except KeyError:
        result = abort(404, "couldn't parse the request data !")
    return result
Exemple #18
0
def topic_create():
    request_data = request.get_json()
    try:
        new_post = models.Post(request_data["title"], request_data["body"])
        post_store.add(new_post)
        result = jsonify(new_post.__dict__())
    except KeyError:
        result = abort(400, f"could not parse the request data")
    return result
Exemple #19
0
def add_post():
    user = request.form['user']
    p = request.form['post']
    u = models.User.query.get(user)
    p = models.Post(body=p, timestamp=datetime.datetime.utcnow(), author=u)
    db.session.add(p)
    db.session.commit()
    posts = u.posts.all()
    return redirect("http://" + IP + "/view_posts?email=" + user, 302)
Exemple #20
0
def api_topic_create():
    request_data = request.get_json()
    try:
        new_post = models.Post(title=request_data["title"], content=request_data["content"])
        post_store.add(new_post)
        result = jsonify(new_post.__dict__())
    except KeyError:
        result = abort(400, "Couldn't parse the request data !")
    return result
def create():
    form = CreatePostForm(request.form)
    if request.method == 'POST':
        post = models.Post(title=form.title.data,
                           url=form.url.data,
                           subreddit=form.subreddit.data)
        db.session.add(post)
        db.session.commit()
        return redirect('/home')
    return render_template('create_post.html', form=form)
Exemple #22
0
def submit():
    name = request.form['name']
    date = datetime.utcnow()
    weight = request.form['weight']
    try:
        post = models.Post(name=name, date=date, weight=weight)
        db.session.add(post)
        db.session.commit()
    except Exception as e:
        return str(e)  
    return 'Submitted'
Exemple #23
0
def add_api():
    request_data = request.get_json()
    try:
        #new_post = models.Post(request_data['title'], request_data['content'])
        new_post = models.Post(title=request_data["title"],
                               content=request_data["content"])
        post_store.add(new_post)
        result = jsonify(new_post.serialize())
    except KeyError:
        result = abort(400, f"Couldn't parse the request data !")
    return result
def post():
    form = PostForm()
    if form.validate():
        new_post = models.Post(body=form.body.data.strip(),
                               date=datetime.datetime.utcnow(),
                               author=current_user)
        db.session.add(new_post)
        db.session.commit()
        return redirect(url_for("index"))
    print form.body.errors
    return redirect(url_for("index"))
Exemple #25
0
def create_posts(member_instance):
	post1 = models.Post("post1", "this is post1", member_instance[0].id)
	post2 = models.Post("post2", "this is post2", member_instance[0].id)
	post3 = models.Post("post3", "this is post3", member_instance[1].id)
	post4 = models.Post("post4", "this is post4", member_instance[1].id)
	post5 = models.Post("post5", "this is post5", member_instance[1].id)
	post6 = models.Post("post6", "this is post6", member_instance[2].id)
	post7 = models.Post("post7", "this is post7", member_instance[2].id)
	post8 = models.Post("post8", "this is post8", member_instance[2].id)
	post9 = models.Post("post9", "this is post9", member_instance[2].id)

	print(post1)
	print(post2)
	print(post3)
	print("=" * 40)

	return post1, post2, post3, post4, post5, post6, post7, post8, post9
    def test_follow_posts(self):
        # create four users
        u1 = models.User(username='******', email='*****@*****.**')
        u2 = models.User(username='******', email='*****@*****.**')
        u3 = models.User(username='******', email='*****@*****.**')
        u4 = models.User(username='******', email='*****@*****.**')
        db.session.add_all([u1, u2, u3, u4])

        # create four posts
        now = datetime.utcnow()
        p1 = models.Post(body="post from john",
                         author=u1,
                         timestamp=now + timedelta(seconds=1))
        p2 = models.Post(body="post from susan",
                         author=u2,
                         timestamp=now + timedelta(seconds=4))
        p3 = models.Post(body="post from mary",
                         author=u3,
                         timestamp=now + timedelta(seconds=3))
        p4 = models.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])
Exemple #27
0
def create_post():
    form = CreatePostForm()
    if request.method =='POST'and form.validate_on_submit():
        posttext = form.posttext.data
        timestamp = datetime.utcnow()
        user = current_user
        newpost = models.Post(user, posttext, timestamp)
        db.session.add(newpost)
        db.session.commit()
        flash('New post by %s' % (user.userid))
        return redirect(url_for('index'))
    return render_template('create_post.html',title='Create a new post.',form=form)
Exemple #28
0
def topic_add_api():
    request_data = request.get_json()
    try:
        new_post = models.Post(title=request.form["title"],
                               content=request.form["content"])
        post_store.add(new_post)
        print(new_post)
        result = jsonify(new_post.as_dict())
    except KeyError:
        result = abort(400, f"couldn't parse the request data!")

    return result
Exemple #29
0
def new_post():
	form = PostForm()
	if form.validate_on_submit():
		tags = [db.session.query(models.Tag).filter_by(id=int(id)).one()
				for id in form.tags.data]
		new_post = models.Post(title=form.title.data, body=form.body.data, tags=tags)
		db.session.add(new_post)
		db.session.commit()
		flash('Post with title %r created successfully!' % (new_post.title))
		return redirect('/index')
	form.tags.data = db.session.query(models.Tag).all()
	return render_template('new_post.html', title="New Post - Admin", form=form, user=current_user)
Exemple #30
0
 def test_post_serialize(self):
     tmp = models.Post(title='test title',
                       body='test body',
                       thumbnail_index=0)
     actual = tmp.serialize()
     expected = {
         'body': 'test body',
         'id': None,
         'pictures': [],
         'thumbnailIndex': 0,
         'title': 'test title'
     }
     assert expected == actual