""" Revision ID: 0298_add_mou_signed_receipt Revises: 0297_template_redacted_fix Create Date: 2019-05-22 16:58:52.929661 """ from alembic import op from flask import current_app from sqlalchemy import text revision = '0298_add_mou_signed_receipt' down_revision = '0297_template_redacted_fix' templates = [ { 'id': '4fd2e43c-309b-4e50-8fb8-1955852d9d71', 'name': 'MOU Signed By Receipt', 'type': 'email', 'subject': 'You’ve accepted the GOV.​UK Notify data sharing and financial agreement', 'content_lines': [ 'Hi ((signed_by_name)),', '', '((org_name)) has accepted the GOV.​UK Notify data sharing and financial agreement. ', '', 'If you need another copy of the agreement you can download it here: ((mou_link))', '', 'If you need to add Cabinet Office as a supplier, here are the details you need:', '', 'TO BE ADDED MANUALLY', '', 'Thanks,', 'GOV.​UK Notify team', '', 'https://www.gov.uk/notify', ], }, { 'id': 'c20206d5-bf03-4002-9a90-37d5032d9e84', 'name': 'MOU Signed On Behalf Of Receipt - Signed by', 'type': 'email', 'subject': 'You’ve accepted the GOV.​UK Notify data sharing and financial agreement', 'content_lines': [ 'Hi ((signed_by_name)),', '', '((org_name)) has accepted the GOV.​UK Notify data sharing and financial agreement. We’ve emailed ((on_behalf_of_name)) to let them know too.', '', 'If you need another copy of the agreement you can download it here: ((mou_link))', '', 'If you need to add Cabinet Office as a supplier, here are the details you need:', '', 'TO BE ADDED MANUALLY', '', 'Thanks,', 'GOV.​UK Notify team', '', 'https://www.gov.uk/notify', ], }, { 'id': '522b6657-5ca5-4368-a294-6b527703bd0b', 'name': 'MOU Signed On Behalf Of Receipt - On Behalf Of', 'type': 'email', 'subject': '((org_name)) has accepted the GOV.​UK Notify data sharing and financial agreement', 'content_lines': [ 'Hi ((on_behalf_of_name)),', '', '((signed_by_name)) has accepted the GOV.​UK Notify data sharing and financial agreement on your behalf, for ((org_name)).', '', 'GOV.​UK Notify lets teams in the public sector send emails, text messages and letters. It’s built and run by a team in the Government Digital Service (part of Cabinet Office).', '', 'If you need another copy of the agreement you can download it here: ((mou_link))', '', 'If you need to add Cabinet Office as a supplier, here are the details you need.', '', 'TO BE ADDED MANUALLY', '', 'Thanks,', 'GOV.​UK Notify team', '', 'https://www.gov.uk/notify', ], }, { 'id': 'd0e66c4c-0c50-43f0-94f5-f85b613202d4', 'name': 'MOU Signed Notify Team Alert', 'type': 'email', 'subject': 'Someone signed an MOU for an org on Notify', 'content_lines': [ 'What’s up Notifiers,', '', '((signed_by_name)) just accepted the data sharing and financial agreement for ((org_name)).', '', 'See how ((org_name)) is using Notify here: ((org_dashboard_link))', ], }, ] def upgrade(): insert_t = """ INSERT INTO templates (id, name, template_type, created_at, content, archived, service_id, subject, created_by_id, version, process_type, hidden) VALUES (:template_id, :template_name, :template_type, current_timestamp, :content, False, :notify_service_id, :subject, :user_id, 1, :process_type, false) """ insert_th = """ INSERT INTO templates_history (id, name, template_type, created_at, content, archived, service_id, subject, created_by_id, version, process_type, hidden) VALUES (:template_id, :template_name, :template_type, current_timestamp, :content, False, :notify_service_id, :subject, :user_id, 1, :process_type, false) """ for template in templates: input_params = { "template_id": template['id'], "template_name": template['name'], "template_type": template['type'], "content": '\n'.join(template['content_lines']), "notify_service_id": current_app.config['NOTIFY_SERVICE_ID'], "subject": template.get('subject'), "user_id": current_app.config['NOTIFY_USER_ID'], "process_type": 'normal' } conn = op.get_bind() conn.execute( text(insert_t), input_params ) conn.execute( text(insert_th), input_params ) input_params = { "template_id": template['id'], "user_id": current_app.config['NOTIFY_USER_ID'] } conn.execute( text(""" INSERT INTO template_redacted ( template_id, redact_personalisation, updated_at, updated_by_id ) VALUES ( :template_id, false, current_timestamp, :user_id ) """), input_params ) def downgrade(): conn = op.get_bind() for template in templates: input_params = { "template_id": template['id'] } conn.execute(text("DELETE FROM notifications WHERE template_id = :template_id"), input_params) conn.execute(text("DELETE FROM notification_history WHERE template_id = :template_id"), input_params) conn.execute(text("DELETE FROM template_redacted WHERE template_id = :template_id"), input_params) conn.execute(text("DELETE FROM templates WHERE id = :template_id"), input_params) conn.execute(text("DELETE FROM templates_history WHERE id = :template_id"), input_params)