def invite_friends_email(self): emails = request.POST.get('recipients') message = request.POST.get('message') # optional if emails: emails = emails.split(',') invites, invalid, already = \ make_email_invitations(emails, c.user, c.user.location) meta.Session.commit() for invitee in invites: send_registration_invitation(invitee, c.user, message) if invalid: h.flash(_("Invalid email addresses: %(email_list)s") % \ dict(email_list=', '.join(invalid))) if already: h.flash(_("These addresses are already registered in Ututi: %(email_list)s") % \ dict(email_list=', '.join(already))) if invites: h.flash(_("Invitations sent to %(email_list)s") % \ dict(email_list=', '.join(invite.email for invite in invites))) if request.referrer: redirect(request.referrer) else: redirect(url(controller='profile', action='home'))
def invite_friends_email_js(self): if hasattr(self, 'form_result'): emails = self.form_result['recipients'] message = self.form_result['message'] invites, invalid, already = \ make_email_invitations(emails, c.user, c.user.location) meta.Session.commit() for invitee in invites: send_registration_invitation(invitee, c.user, message) return {'success': True}
def _send_group_invitations(self, group, emails, message=None): invites, invalid, already = make_email_invitations(emails, c.user, group.location) # invites are registration objects! for email in already: user = User.get(email, group.location.root) if self._check_handshakes(group, user) == 'request': # Automatically accept requests to become group member. group.add_member(user) self._clear_requests(group, c.user) h.flash(_('New member %s added.') % user.fullname) else: invitation = group.create_pending_invitation(email, c.user) send_group_invitation_for_user(invitation, email, message) for registration in invites: invitation = group.create_pending_invitation(registration.email, c.user) send_group_invitation_for_non_user(invitation, registration, message) if invites: h.flash(_("Users invited.")) if invalid != []: h.flash(_("Invalid email addresses detected: %s") % ', '.join(invalid)) meta.Session.commit()