def contest_invite(contest_id): contest = Contest.query.get(contest_id) if g.user.user_id != contest.author_id: flash('You do not have proper authorization to do this!', 'danger') return redirect('/contest/' + str(contest_id)) form = InviteForm(obj=contest) friendships = Friendship.query.filter_by(user_id=g.user.user_id).all() users = [ User.query.get(friendship.friend_id) for friendship in friendships ] form.users.choices = [(user.user_id, user.username) for user in users] if request.method == 'POST' and form.validate(): form = InviteForm(request.form) if form.users.data == None: form.users.data = [] else: form.users.data = [ User.query.get(user_id) for user_id in form.users.data ] form.populate_obj(contest) contest.save() return redirect( url_for('contest_overview', contest_id=contest.contest_id)) return render_template('invite_form.html', form=form, edit=True)
def invite(): """Send invitations for this particular project""" form = InviteForm() if request.method == "POST": if form.validate(): # send the email message_body = render_template("invitation_mail.%s" % get_locale().language) message_title = _( "You have been invited to share your " "expenses for %(project)s", project=g.project.name) msg = Message(message_title, body=message_body, recipients=[ email.strip() for email in form.emails.data.split(",") ]) mail.send(msg) flash(_("Your invitations have been sent")) return redirect(url_for(".list_bills")) return render_template("send_invites.html", form=form)
def invite(site_id): user = users.get_current_user() site = Site.get_admin_or_404(site_id) form = InviteForm(request.form) if form.validate(): invite_hash = sha1() invite_hash.update(str(site.key())) invite_hash.update(os.urandom(8)) invite_hash.update(form.email.data) invite_hash = b32encode(invite_hash.digest()).lower() invite = Invitation(hash=invite_hash, email=form.email.data, site=site, admin=form.admin.data, inviter=user) invite.put() mail.send_mail( sender=settings.invite_sender_email, to=invite.email, subject='%s invited you to join them on %s' % (user.email(), settings.appname), body=render_template('invite_email.txt', invite=invite), html=render_template('invite_email.html', invite=invite), ) if request.is_xhr: return 'OK' flash('Invitation Sent!', 'success') else: errors = sum(form.errors.values(), []) if request.is_xhr: return ', '.join(errors) for error in errors: flash(error, 'error') flash(form.email.data, 'error') return redirect(url_for('edit_siteusers', site_id=site_id))
def index(self): form = InviteForm() if request.method == 'GET': return self.render('admin/index.html', form=form) else: if form.validate(): from app.extensions import mail if mail.send_invite(form.email.data): return jsonify({'status': 'ok'}) return jsonify(form.errors)
def invite(): url = __check_login(url = get_redirect_target()) if url: return redirect(url) inviteform = InviteForm() if inviteform.validate(): user = get_user(session['email']) troika = get_troika(inviteform.troika_id.data) if troika is None: flash(_(u'Invalid Troika Id'), 'error') elif troika.get_phase() == 'complete': flash(_(u'Can not invite to a completed Troika'), 'error') else: msg = Message(_(u"Come join the Troika \"%(title)s\"!", title=troika.title), sender = ("Troika Webmaster", "*****@*****.**"), recipients=[inviteform.email.data]) msg.body = _("%(user)s thought you should join the Troika \"%(title)s\":", user = __get_display_name(user), title=troika.title) msg.body += "\n\n" + url_for('troika', troika_id=troika.id, _external=True) msg.body += "\n\n" role_string = None if inviteform.role.data == '0': if troika.lead is None: role_string = _("the lead") else: flash(_(u'Troika already has a lead'), 'error') elif inviteform.role.data == '1': if troika.first_learner is None: role_string = _("the first learner") else: flash(_(u'Troika already has a first learner'), 'error') elif inviteform.role.data == '2': if troika.second_learner is None: role_string = _("the second learner") else: flash(_(u'Troika already has a second learner'), 'error') elif inviteform.role.data == '3': role_string = _("a participant") else: flash(_(u'Invalid role: ') + 'inviteform.role', 'error') if role_string is not None: msg.body += _("as %(role)s.", role=role_string) msg.body += "\n\n" msg.body += _("What do you say?") + "\n\n" msg.body += __get_troika_message_signature() mail.send(msg) flash(_(u'Invite sent to %(email)s', email = inviteform.email.data)) else: flash(_(u"Invalid invite form") + ': ' + ', '.join((key + ': ' + value[0]) for key, value in inviteform.errors.items()), 'error') return redirect(get_redirect_target())
def invite(): """Send invitations for this particular project""" form = InviteForm() if request.method == "POST": if form.validate(): # send the email message_body = render_template("invitation_mail.%s" % get_locale().language) message_title = _("You have been invited to share your " "expenses for %(project)s", project=g.project.name) msg = Message( message_title, body=message_body, recipients=[email.strip() for email in form.emails.data.split(",")] ) mail.send(msg) flash(_("Your invitations have been sent")) return redirect(url_for(".list_bills")) return render_template("send_invites.html", form=form)
def contest_invite(contest_id): contest = Contest.query.get(contest_id) if g.user.user_id != contest.author_id: flash('You do not have proper authorization to do this!', 'danger') return redirect('/contest/' + str(contest_id)) form = InviteForm(obj=contest) friendships = Friendship.query.filter_by(user_id=g.user.user_id).all() users = [User.query.get(friendship.friend_id) for friendship in friendships] form.users.choices = [(user.user_id, user.username) for user in users] if request.method == 'POST' and form.validate(): form = InviteForm(request.form) if form.users.data == None: form.users.data = [] else: form.users.data = [User.query.get(user_id) for user_id in form.users.data] form.populate_obj(contest) contest.save() return redirect(url_for('contest_overview', contest_id=contest.contest_id)) return render_template('invite_form.html', form=form, edit=True)
def invite(site_id): user = users.get_current_user() site = Site.get_admin_or_404(site_id) form = InviteForm(request.form) if form.validate(): invite_hash = sha1() invite_hash.update(str(site.key())) invite_hash.update(os.urandom(8)) invite_hash.update(form.email.data) invite_hash = b32encode(invite_hash.digest()).lower() invite = Invitation( hash=invite_hash, email=form.email.data, site=site, admin=form.admin.data, inviter=user ) invite.put() mail.send_mail( sender = settings.invite_sender_email, to = invite.email, subject = '%s invited you to join them on %s' % (user.email(), settings.appname), body = render_template('invite_email.txt', invite=invite), html = render_template('invite_email.html', invite=invite), ) if request.is_xhr: return 'OK' flash('Invitation Sent!', 'success') else: errors = sum(form.errors.values(), []) if request.is_xhr: return ', '.join(errors) for error in errors: flash(error, 'error') flash(form.email.data, 'error') return redirect(url_for('edit_siteusers', site_id=site_id))