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)
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, )
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)
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 )
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)