Exemple #1
0
def message_batch():
    proposals, filtered = filter_proposal_request()

    form = SendMessageForm()
    if form.validate_on_submit():
        if form.send.data:
            for proposal in proposals:
                msg = CFPMessage()
                msg.is_to_admin = False
                msg.from_user_id = current_user.id
                msg.proposal_id = proposal.id
                msg.message = form.message.data

                db.session.add(msg)
                db.session.commit()

                app.logger.info('Sending message from %s to %s', current_user.id, proposal.user_id)

                msg_url = external_url('cfp.proposal_messages', proposal_id=proposal.id)
                msg = Message('New message about your EMF proposal',
                            sender=app.config['CONTENT_EMAIL'],
                            recipients=[proposal.user.email])
                msg.body = render_template('cfp_review/email/new_message.txt', url=msg_url,
                                        to_user=proposal.user, from_user=current_user,
                                        proposal=proposal)
                mail.send(msg)

            flash('Messaged %s proposals' % len(proposals), 'info')
            return redirect(url_for('.proposals', **request.args))

    return render_template('cfp_review/message_batch.html',
                           form=form, proposals=proposals)
Exemple #2
0
def message_proposer(proposal_id):
    form = SendMessageForm()
    proposal = Proposal.query.get_or_404(proposal_id)

    if form.validate_on_submit():
        if form.send.data:
            msg = CFPMessage()
            msg.is_to_admin = False
            msg.from_user_id = current_user.id
            msg.proposal_id = proposal_id
            msg.message = form.message.data

            db.session.add(msg)
            db.session.commit()

            app.logger.info(
                "Sending message from %s to %s", current_user.id, proposal.user_id
            )

            msg_url = external_url("cfp.proposal_messages", proposal_id=proposal_id)
            msg = EmailMessage(
                "New message about your EMF proposal",
                from_email=from_email("CONTENT_EMAIL"),
                to=[proposal.user.email],
            )
            msg.body = render_template(
                "cfp_review/email/new_message.txt",
                url=msg_url,
                to_user=proposal.user,
                from_user=current_user,
                proposal=proposal,
            )
            msg.send()

        count = proposal.mark_messages_read(current_user)
        db.session.commit()
        app.logger.info(
            "Marked %s messages to admin on proposal %s as read" % (count, proposal.id)
        )

        return redirect(url_for(".message_proposer", proposal_id=proposal_id))

    # Admin can see all messages sent in relation to a proposal
    messages = (
        CFPMessage.query.filter_by(proposal_id=proposal_id).order_by("created").all()
    )

    return render_template(
        "cfp_review/message_proposer.html",
        form=form,
        messages=messages,
        proposal=proposal,
    )
Exemple #3
0
def message_proposer(proposal_id):
    form = SendMessageForm()
    proposal = Proposal.query.get_or_404(proposal_id)

    if request.method == 'POST':
        if form.send.data and form.message.data:
            msg = CFPMessage()
            msg.is_to_admin = False
            msg.from_user_id = current_user.id
            msg.proposal_id = proposal_id
            msg.message = form.message.data

            db.session.add(msg)
            db.session.commit()

            app.logger.info('Sending message from %s to %s', current_user.id,
                            proposal.user_id)

            msg_url = external_url('cfp.proposal_messages',
                                   proposal_id=proposal_id)
            msg = Message('New message about your EMF proposal',
                          sender=app.config['CONTENT_EMAIL'],
                          recipients=[proposal.user.email])
            msg.body = render_template('cfp_review/email/new_message.txt',
                                       url=msg_url,
                                       to_user=proposal.user,
                                       from_user=current_user,
                                       proposal=proposal)
            mail.send(msg)

        if form.mark_read.data or form.send.data:
            count = proposal.mark_messages_read(current_user)
            app.logger.info(
                'Marked %s messages to admin on proposal %s as read' %
                (count, proposal.id))

        return redirect(url_for('.message_proposer', proposal_id=proposal_id))

    # Admin can see all messages sent in relation to a proposal
    messages = CFPMessage.query.filter_by(
        proposal_id=proposal_id).order_by('created').all()

    return render_template('cfp_review/message_proposer.html',
                           form=form,
                           messages=messages,
                           proposal=proposal)
Exemple #4
0
def message_batch():
    proposals, filtered = filter_proposal_request()

    form = SendMessageForm()
    if form.validate_on_submit():
        if form.send.data:
            for proposal in proposals:
                msg = CFPMessage()
                msg.is_to_admin = False
                msg.from_user_id = current_user.id
                msg.proposal_id = proposal.id
                msg.message = form.message.data

                db.session.add(msg)
                db.session.commit()

                app.logger.info(
                    "Sending message from %s to %s", current_user.id, proposal.user_id
                )

                msg_url = external_url("cfp.proposal_messages", proposal_id=proposal.id)
                msg = EmailMessage(
                    "New message about your EMF proposal",
                    from_email=from_email("CONTENT_EMAIL"),
                    to=[proposal.user.email],
                )
                msg.body = render_template(
                    "cfp_review/email/new_message.txt",
                    url=msg_url,
                    to_user=proposal.user,
                    from_user=current_user,
                    proposal=proposal,
                )
                msg.send()

            flash("Messaged %s proposals" % len(proposals), "info")
            return redirect(url_for(".proposals", **request.args))

    return render_template(
        "cfp_review/message_batch.html", form=form, proposals=proposals
    )
Exemple #5
0
def message_proposer(proposal_id):
    form = SendMessageForm()
    proposal = Proposal.query.get_or_404(proposal_id)

    if form.validate_on_submit():
        if form.send.data:
            msg = CFPMessage()
            msg.is_to_admin = False
            msg.from_user_id = current_user.id
            msg.proposal_id = proposal_id
            msg.message = form.message.data

            db.session.add(msg)
            db.session.commit()

            app.logger.info('Sending message from %s to %s', current_user.id, proposal.user_id)

            msg_url = external_url('cfp.proposal_messages', proposal_id=proposal_id)
            msg = Message('New message about your EMF proposal',
                          sender=app.config['CONTENT_EMAIL'],
                          recipients=[proposal.user.email])
            msg.body = render_template('cfp_review/email/new_message.txt', url=msg_url,
                                       to_user=proposal.user, from_user=current_user,
                                       proposal=proposal)
            mail.send(msg)

        count = proposal.mark_messages_read(current_user)
        db.session.commit()
        app.logger.info('Marked %s messages to admin on proposal %s as read' % (count, proposal.id))

        return redirect(url_for('.message_proposer', proposal_id=proposal_id))

    # Admin can see all messages sent in relation to a proposal
    messages = CFPMessage.query.filter_by(
        proposal_id=proposal_id
    ).order_by('created').all()

    return render_template('cfp_review/message_proposer.html',
                           form=form, messages=messages, proposal=proposal)
Exemple #6
0
def message_batch():
    proposals, filtered = filter_proposal_request()

    form = SendMessageForm()
    if form.validate_on_submit():
        if form.send.data:
            for proposal in proposals:
                msg = CFPMessage()
                msg.is_to_admin = False
                msg.from_user_id = current_user.id
                msg.proposal_id = proposal.id
                msg.message = form.message.data

                db.session.add(msg)
                db.session.commit()

                app.logger.info('Sending message from %s to %s',
                                current_user.id, proposal.user_id)

                msg_url = external_url('cfp.proposal_messages',
                                       proposal_id=proposal.id)
                msg = Message('New message about your EMF proposal',
                              sender=app.config['CONTENT_EMAIL'],
                              recipients=[proposal.user.email])
                msg.body = render_template('cfp_review/email/new_message.txt',
                                           url=msg_url,
                                           to_user=proposal.user,
                                           from_user=current_user,
                                           proposal=proposal)
                mail.send(msg)

            flash('Messaged %s proposals' % len(proposals), 'info')
            return redirect(url_for('.proposals', **request.args))

    return render_template('cfp_review/message_batch.html',
                           form=form,
                           proposals=proposals)