from __future__ import unicode_literals, print_function

import sys
import os

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

import logging
import psycopg2

from snowball_ticketing import tickets, utils, users, logging_setup


logger = utils.getLogger("snowball_ticketing.bin.collection_mass_mail")


def send_mail(user_id, pg):
    tickets.user_pg_lock(user_id, pg=pg)

    user = users.get_user(user_id, pg=pg)
    name = user["othernames"] + " " + user["surname"]
    alumnus = user["person_type"] == "alumnus"

    paid_tickets = tickets.tickets(user_id=user_id, paid=True, pg=pg)
    if not paid_tickets:
        logger.warning("Not mailing %s (no tickets)", user_id, extra={"user_id": user_id})
        return

    def k(t): return (t["othernames"], t["surname"])
    paid_tickets.sort(key=k)
from __future__ import unicode_literals, print_function

import sys
import os

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

import psycopg2
import logging

from snowball_ticketing import utils, users, tickets, lookup, logging_setup


logger = utils.getLogger(__name__)


def main(crsid, postgres_settings):
    logger.info("Creating raven user for %s", crsid)

    logging_setup.add_postgresql_handler(postgres_settings)
    logging_setup.add_syslog_handler()
    logging_setup.add_smtp_handler()

    conn = psycopg2.connect(connection_factory=utils.PostgreSQLConnection,
                            **postgres_settings)

    user = users.get_raven_user(crsid, pg=conn)
    if user is None:
        conn.commit()
        lookup_data = lookup.get_crsid(crsid)
from __future__ import unicode_literals, print_function

import sys
import os

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

import logging
import psycopg2

from snowball_ticketing import tickets, utils, users, logging_setup


logger = utils.getLogger("snowball_ticketing.bin.guest_mass_mail")


def send_mail(template, user_id, pg):
    user = users.get_user(user_id, pg=pg)
    name = user["othernames"] + " " + user["surname"]

    logger.info("Sending mass mail (%s) to user %s",
                template, user["user_id"],
                extra={"user_id": user_id})

    # drop the locks
    pg.commit()

    utils.send_email(template, recipient=(name, user["email"]),
                     sender=("Snowball Ticketing",
                             "*****@*****.**"))
Example #4
0
from __future__ import unicode_literals, print_function

import sys
import os

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

import logging
import psycopg2

from snowball_ticketing import tickets, utils, users, logging_setup

logger = utils.getLogger("snowball_ticketing.bin.collection_mass_mail")


def send_mail(user_id, pg):
    tickets.user_pg_lock(user_id, pg=pg)

    user = users.get_user(user_id, pg=pg)
    name = user["othernames"] + " " + user["surname"]
    alumnus = user["person_type"] == "alumnus"

    paid_tickets = tickets.tickets(user_id=user_id, paid=True, pg=pg)
    if not paid_tickets:
        logger.warning("Not mailing %s (no tickets)",
                       user_id,
                       extra={"user_id": user_id})
        return

    def k(t):
import sys
import os

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

import psycopg2
import logging
import csv
from datetime import datetime

from snowball_ticketing import utils, tickets, logging_setup


logger = utils.getLogger("snowball_ticketing.bin.prepare_vip_wl_upgrade")


def prepare(postgres_settings, pairs):
    # This is a hack, to cover up a design flaw.

    logging_setup.add_syslog_handler()
    logging_setup.add_postgresql_handler(postgres_settings)
    logging_setup.add_smtp_handler()

    conn = psycopg2.connect(connection_factory=utils.PostgreSQLConnection,
                            **postgres_settings)

    for user_id, ticket_id in pairs:
        with conn.cursor(True) as cur:
            cur.execute("SELECT * FROM tickets "
import sys
import os
from datetime import datetime

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

import psycopg2
import logging
import csv

from snowball_ticketing import utils, logging_setup
from snowball_ticketing.tickets.receipt import send_update


logger = utils.getLogger("snowball_ticketing.bin.harass")


def harass(postgres_settings, filename):
    logging_setup.add_syslog_handler()
    logging_setup.add_postgresql_handler(postgres_settings)
    logging_setup.add_smtp_handler()

    conn = psycopg2.connect(connection_factory=utils.PostgreSQLConnection,
                            **postgres_settings)

    harassed = set()

    with open(filename) as f:
        for user_id, deadline in csv.reader(f):
            user_id = int(user_id)
Example #7
0
from __future__ import unicode_literals, print_function

import sys
import os

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

import logging
import psycopg2

from snowball_ticketing import tickets, utils, users, logging_setup

logger = utils.getLogger("snowball_ticketing.bin.guest_mass_mail")


def send_mail(template, user_id, pg):
    user = users.get_user(user_id, pg=pg)
    name = user["othernames"] + " " + user["surname"]

    logger.info("Sending mass mail (%s) to user %s",
                template,
                user["user_id"],
                extra={"user_id": user_id})

    # drop the locks
    pg.commit()

    utils.send_email(template,
                     recipient=(name, user["email"]),
                     sender=("Snowball Ticketing",
Example #8
0
from __future__ import unicode_literals, print_function

import sys
import os

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

import psycopg2
import logging
import csv
from datetime import datetime

from snowball_ticketing import utils, tickets, logging_setup

logger = utils.getLogger("snowball_ticketing.bin.prepare_vip_wl_upgrade")


def prepare(postgres_settings, pairs):
    # This is a hack, to cover up a design flaw.

    logging_setup.add_syslog_handler()
    logging_setup.add_postgresql_handler(postgres_settings)
    logging_setup.add_smtp_handler()

    conn = psycopg2.connect(connection_factory=utils.PostgreSQLConnection,
                            **postgres_settings)

    for user_id, ticket_id in pairs:
        with conn.cursor(True) as cur:
            cur.execute(
from __future__ import unicode_literals, print_function

import sys
import os

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

import psycopg2
import logging

from snowball_ticketing import utils, users, tickets, lookup, logging_setup


logger = utils.getLogger("manual_add_unfinalised_ticket")


# Stolen from user_info.py
def types(ticket):
    a = []
    if ticket["vip"]: a.append("VIP")
    if ticket["paid"]: a.append("paid")
    elif ticket["finalised"]: a.append("finalised")
    elif ticket["expires"] is not None and \
         ticket["expires"] < datetime.utcnow(): a.append("expired")
    for key in ('waiting_list', 'quota_exempt', 'printed',
                'ticket_collected', 'entered_ball',
                'forbid_desk_entry'):
        if ticket[key]: a.append(key.replace("_", "-"))
    return ' '.join(a)
import sys
import os
from datetime import datetime

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

import psycopg2
import logging
import csv

from snowball_ticketing import utils, logging_setup
from snowball_ticketing.tickets.receipt import send_update

logger = utils.getLogger("snowball_ticketing.bin.harass")


def harass(postgres_settings, filename):
    logging_setup.add_syslog_handler()
    logging_setup.add_postgresql_handler(postgres_settings)
    logging_setup.add_smtp_handler()

    conn = psycopg2.connect(connection_factory=utils.PostgreSQLConnection,
                            **postgres_settings)

    harassed = set()

    with open(filename) as f:
        for user_id, deadline in csv.reader(f):
            user_id = int(user_id)
import sys
import psycopg2
import logging

from snowball_ticketing import utils, users, tickets, lookup, logging_setup


logger = utils.getLogger(__name__)


def main(crsid, postgres_settings):
    logger.info("Creating free VIP upgrade for %s", crsid)

    logging_setup.add_postgresql_handler(postgres_settings)
    logging_setup.add_syslog_handler()
    logging_setup.add_smtp_handler()

    conn = psycopg2.connect(connection_factory=utils.PostgreSQLConnection,
                            **postgres_settings)

    lookup_data = lookup.get_crsid(crsid)
    user = users.new_raven_user(crsid, ["current"], lookup_data, pg=conn)
    ticket_id, = tickets.buy("vip", False, 1, user=user, pg=conn)

    with conn.cursor() as cur:
        cur.execute("UPDATE tickets "
                    "SET expires = NULL, expires_reason = NULL, "
                    "    price = 6900 "
                    "WHERE ticket_id = %s",
                    (ticket_id, ))
from __future__ import unicode_literals, print_function

import sys
import os

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

import psycopg2
import logging

from snowball_ticketing import utils, users, tickets, lookup, logging_setup

logger = utils.getLogger("manual_add_unfinalised_ticket")


# Stolen from user_info.py
def types(ticket):
    a = []
    if ticket["vip"]: a.append("VIP")
    if ticket["paid"]: a.append("paid")
    elif ticket["finalised"]: a.append("finalised")
    elif ticket["expires"] is not None and \
         ticket["expires"] < datetime.utcnow():
        a.append("expired")
    for key in ('waiting_list', 'quota_exempt', 'printed', 'ticket_collected',
                'entered_ball', 'forbid_desk_entry'):
        if ticket[key]: a.append(key.replace("_", "-"))
    return ' '.join(a)