def dispatch_request(self): form = PostForm() username = session['active_user']['username'] author = db_user(username=username) posts = db_posts(author=author) if request.method == 'POST': if form.validate_on_submit(): title = form.title.data content = form.content.data tag = form.tag.data try: new_post = Post(author=author, title=title, content=content, tag=tag) db.session.add(new_post) db.session.commit() flash('Your post is successfully submitted', 'success') return redirect(url_for(request.endpoint)) except Exception as e: flash('Invalid inputs.', 'error') return redirect(url_for(request.endpoint)) return render_template('admin.html', username=username, form=form, posts=posts)
def search_posts( self, field=None, field_type=ID, start_time=None, start_post=0, num_posts=0, direction=ASCENDING): ''' Searches database for posts that meet parameters :id: int :return: [Post, Post, ...] ''' search = {} if field: if field_type is ID: try: search[field_type] = ObjectId(field) except InvalidId: return None else: search[field_type] = field if start_time != None: search[TIME] = {'$lte': start_time} query = self._collection.find(search) \ .sort(field_type, direction) \ .skip(start_post) \ .limit(num_posts) posts = [] for item in query: post_data = generate_post_data(item) posts.append(Post(**post_data)) return posts
def new(): form = NewPostForm() post = Post() if form.validate_on_submit(): form.populate_obj(post) db.session.add(post) db.session.commit() posts = Post.nearby_posts(post.lat, post.long, POST_DISTANCE_THRESHOLD) return jsonify(result=[{'long': str(p.long), 'lat': str(p.lat), 'secret': p.secret, 'created': str(p.created_time)} for p in posts]), 200 return jsonify(result={'error': 'invalid form.'})
def editpost(): if g.auth is not None and g.auth.role is not USER.ADMIN: return redirect(url_for('not_found')) if request.method == 'POST': try: form = request.args title = form.get('title') pid = form.get('drafts') dopost = form.get('dopost') post = Post.query.filter_by(title=title).first() if post is None: post = Post.query.filter_by(id=pid).first() if post is None: post = Post() post.user_id = g.user.id post.title = title post.textbody = form.get('textbody').encode('u8') post.htmlbody = form.get('htmlbody').encode('u8') if dopost == True or dopost == "true": post.draft = False post.posted = datetime.datetime.now() db.session.add(post) else: post.title = title post.textbody = form.get('textbody').encode('u8') post.htmlbody = form.get('htmlbody').encode('u8') if dopost == True or dopost == "true": post.draft = False post.posted = datetime.datetime.now() db.session.commit() return make_response("Post Saved") except: print >> sys.stderr, sys.exc_info() return make_response("Exceptional Error") pid = request.args.get('pid') form = PostForm() form.drafts.choices = [ (p.id, p.title) for p in Post.query.filter_by(draft=True).order_by(Post.title).all() ] form.drafts.choices.insert(0, (-1, "New Post")) return render_template("posts/editpost.html", form=form, user=g.user, admin=g.admin, pid=pid)
def add_post(self, post): ''' Save post to database :data: Post :return: Post ''' self._collection.insert_one(post) post_data = generate_post_data(post) new_post = Post(**post_data) return new_post
def execute(self, user_id: int, caption: str) -> Union[Post, NoReturn]: post = Post(user_id=user_id, caption=caption) try: session.add(post) session.commit() except IntegrityError as e: session.rollback() raise CustomException(str(e), code=500) return post
def index(): form = PostForm() if form.validate_on_submit(): post = Post(author=current_user, body=form.body.data) post.commit() # Reload the page to avoid resubmit. return redirect(url_for('users.index')) posts = Post.query\ .filter_by(author=current_user, active=True)\ .order_by(Post.created.desc())\ .all() return render_template('users/index.jinja', form=form, posts=posts)
def create_post(): # todo: check if only available to admin form = PostForm() if form.validate_on_submit(): post = Post(title=form.title.data, text=form.text.data, user_id=current_user.id) db.session.add(post) db.session.commit() return redirect(url_for('settings_blueprint.administration')) return render_template('create_post.html', form=form)
def write_posts(login, password, count, owner_id, username): urls = get_pic_urls(login, password, count, owner_id) user = User.objects(username=username).get() posts_value = Post.objects.count() last_posts_urls = get_last_urls(50) for url in urls: if url not in last_posts_urls: Post(title=f"Post {posts_value}", urls=[url], tag='vk', text='', user=user).save() posts_value += 1
def add_post_proc(): form = PostAddForm() #if form.validate_on_submit(): user = User.objects(id=current_user.id).get() post = Post( title=form.title.data, tag=form.tag.data, text=form.text.data, urls=form.url.data.split(), user=user, ) post.save() flash('Add post') return redirect(url_for("posts.index")) #redirect(get_redirect_target())
def get_context(self, slug=None): form_cls = model_form(Post, exclude=('created_at', 'comments')) if slug: post = Post.objects.get_or_404(slug=slug) if request.method == 'POST': form = form_cls(request.form, inital=post._data) else: form = form_cls(obj=post) else: post = Post() form = form_cls(request.form) context = {"post": post, "form": form, "create": slug is None} return context
def write_to_db(): posts = take_posts() user = User.objects(username='******').get() last_posts_urls = get_last_urls(50) posts_value = Post.objects.count() for post in posts: data = get_data(post) if data.get('img') is None: continue if data.get('img') not in last_posts_urls: Post(title=f"Post {posts_value}", urls=[data.get('img')], tag='vk2', text=data.get('text'), user=user).save() posts_value += 1
def add_post(): form = PostForm() if form.validate_on_submit(): post = Post(title=form.title.data, subtitle=form.subtitle.data, content=form.content.data, author=current_user) db.session.add(post) db.session.commit() flash('Post has been created!', 'success') return redirect(url_for('posts.home')) return render_template('add_post.html', form=form, form_title="Add a new post")
def setUpTestData(cls): socialmedia = SocialMedia(socialmedia="linkedin") socialmedia.save() author = User.objects.create_user( username="******", email="*****@*****.**", password="******", ) author.save() post = Post( body="Mon post de test", author=author, schedule_time="2021-09-07 09:23", ) post.save() print(post.id) post.socialmedia.add(socialmedia.id)
def post_editor(): form = PostingForm() if form.validate_on_submit(): title = form.title.data subtitle = form.subtitle.data content = form.content.data new_post = Post(title=title, subtitle=subtitle, content=content, user_id=current_user.id) db.session.add(new_post) db.session.commit() flash("Post has been created", "success") return redirect(url_for("posts.home")) return render_template("post_editor.html", form=form, post=None)
def create_posts(n=10, *, user_id=None, session): for _ in range(n): p = Post(content=fake.unique.text(), user_id=user_id) session.add(p) session.commit()