def download_sessions_as_csv(event_id): sessions = DataGetter.get_sessions_by_event_id(event_id) event = DataGetter.get_event(event_id) main = [["Session Title", "Session Speakers", \ "Session Track", "Session Abstract", "Email Sent"]] for session in sessions: if not session.deleted_at: data = [session.title + " (" + session.state + ")" if session.title else ''] if session.speakers: inSession = '' for speaker in session.speakers: if speaker.name: inSession += (speaker.name + ', ') data.append(inSession[:-2]) data.append(session.track.name if session.track.name else '') data.append(strip_tags(session.short_abstract) if session.short_abstract else '') data.append('Yes' if session.state_email_sent else 'No') main.append(data) final = StringIO() csvWriter = writer(final) csvWriter.writerows(main) response = make_response(final.getvalue()) final.close() response.headers['Content-Type'] = 'text/csv' response.headers['Content-Disposition'] = \ 'inline; filename=%s-Sessions.csv' % (re.sub(r"[^\w\s]", '', event.name).replace(" ", "_")) return response
def export(event_id): sessions = DataGetter.get_sessions_by_event_id(event_id) headers = [ 'Session Title', 'Session Speakers', 'Session Track', 'Session Abstract', 'Email Sent' ] rows = [headers] for session in sessions: if not session.deleted_at: column = [ session.title + ' (' + session.state + ')' if session.title else '' ] if session.speakers: inSession = '' for speaker in session.speakers: if speaker.name: inSession += (speaker.name + '; ') column.append(inSession[:-2]) column.append(session.track.name if session.track.name else '') column.append( strip_tags(session.short_abstract) if session. short_abstract else '') column.append('Yes' if session.state_email_sent else 'No') rows.append(column) return rows
def send_mail_via_smtp_task(config, payload): mailer_config = { 'transport': { 'use': 'smtp', 'host': config['host'], 'username': config['username'], 'password': config['password'], 'tls': config['encryption'], 'port': config['port'] } } mailer = Mailer(mailer_config) mailer.start() message = Message(author=payload['from'], to=payload['to']) message.subject = payload['subject'] message.plain = strip_tags(payload['html']) message.rich = payload['html'] mailer.send(message) mailer.stop()