コード例 #1
0
def donate_csv_download():
    csvHeaders = [
        "id", "name", "email", "phone", "date", "address", "useragent", "dj",
        "thanks", "firsttime", "dcomment", "premiums", "address1", "address2",
        "city", "state", "zip", "amount", "recurring", "paiddate",
        "shippeddate", "shirtsize", "shirtcolor", "sweatshirtsize", "method",
        "custid", "donor_comment"
    ]
    orders = Order.query.\
        order_by(db.desc(Order.id))
    f = io.StringIO()
    writer = csv.writer(f)
    writer.writerow(csvHeaders)
    for o in orders:
        fields = [
            o.id, o.name, o.email, o.phone, o.placed_date, o.remote_addr,
            o.user_agent, o.dj, o.thank_on_air, o.first_time, o.donor_comment,
            o.premiums, o.address1, o.address2, o.city, o.state, o.zipcode,
            o.amount, o.recurring, o.paid_date, o.shipped_date, o.tshirtsize,
            o.tshirtcolor, o.sweatshirtsize, o.method, o.custid,
            o.donor_comment
        ]
        writer.writerow(fields)
    f.seek(0)
    filename = "donor-premiums.csv"
    return f.read(), {
        "Content-Type": "text/csv; charset=utf-8",
        "Content-Disposition": "attachment; filename=\"{0}\"".format(filename),
    }
コード例 #2
0
def missioncontrol_index():
    cutoff = datetime.datetime.utcnow() - datetime.timedelta(hours=12)
    orders = Order.query.\
        filter(Order.placed_date > cutoff).\
        order_by(db.desc(Order.id)).limit(app.config['ARTISTS_PER_PAGE'])
    return render_template('donate/missioncontrol/index.html',
                           plans=list_plans(),
                           orders=orders)
コード例 #3
0
ファイル: views.py プロジェクト: wuvt/wuvt-site
def missioncontrol_index():
    cutoff = datetime.datetime.utcnow() - datetime.timedelta(hours=12)
    orders = Order.query.\
        filter(Order.placed_date > cutoff).\
        order_by(db.desc(Order.id)).limit(app.config['ARTISTS_PER_PAGE'])
    return render_template('donate/missioncontrol/index.html',
                           plans=list_plans(), orders=orders,
                           premiums_config=load_premiums_config())
コード例 #4
0
ファイル: views.py プロジェクト: Yestioured/wuvt-site
def last15():
    tracks = TrackLog.query.order_by(db.desc(TrackLog.id)).limit(15).all()

    if request.wants_json():
        return jsonify({
            'tracks': [t.full_serialize() for t in tracks],
        })

    return render_template('last15.html', tracklogs=tracks)
コード例 #5
0
ファイル: views.py プロジェクト: Yestioured/wuvt-site
def playlists_date_data():
    try:
        start = datetime.datetime.strptime(request.args['start'], "%Y-%m-%dT%H:%M:%S.%fZ")
        end = datetime.datetime.strptime(request.args['end'], "%Y-%m-%dT%H:%M:%S.%fZ")
    except ValueError:
        abort(400)

    sets = DJSet.query.filter(db.and_(DJSet.dtstart >= start,
                                      DJSet.dtstart <= end)).\
        order_by(db.desc(DJSet.dtstart)).limit(300).all()

    if request.wants_json():
        return jsonify({'sets': [s.serialize() for s in sets]})

    return Response("{start} {end}".format(start=start, end=end))
コード例 #6
0
ファイル: views.py プロジェクト: Yestioured/wuvt-site
def playlist_cuesheet_ts(filename):
    match_re = re.compile(r'^(\d{10}0001)(.*)$')
    m = match_re.match(filename)
    if not m:
        abort(400)

    try:
        start = datetime.datetime.strptime(m.group(1), "%Y%m%d%H0001")
    except:
        abort(400)

    # assume time in URL is local time, so convert to UTC for DB lookup
    start = start.replace(tzinfo=dateutil.tz.tzlocal()).astimezone(
        dateutil.tz.tzutc()).replace(tzinfo=None)
    end = start + datetime.timedelta(hours=1)

    prev = db.session.query(TrackLog.id).filter(TrackLog.played <= start).\
        order_by(db.desc(TrackLog.played)).limit(1)
    tracks = TrackLog.query.filter(db.and_(
        TrackLog.id >= prev.as_scalar(),
        TrackLog.played <= end)).order_by(TrackLog.played).all()

    return Response(generate_cuesheet(filename, start, tracks),
                    mimetype="audio/x-cue")
コード例 #7
0
ファイル: views.py プロジェクト: Yestioured/wuvt-site
def trackinfo():
    track = TrackLog.query.order_by(db.desc(TrackLog.played)).first()
    if not track:
        return {'artist': "", 'title': "", 'album': "", 'label': "", 'dj': "",
                'dj_id': 0, 'description': app.config['STATION_NAME'],
                'contact': app.config['STATION_URL']}

    data = track.track.serialize()
    data['listeners'] = track.listeners

    if track.djset == None:
        dj = DJ.query.filter_by(name="Automation").first()
        data['dj'] = dj.airname
        data['dj_id'] = 0
    else:
        data['dj'] = track.djset.dj.airname
        if track.djset.dj.visible:
            data['dj_id'] = track.djset.dj_id
        else:
            data['dj_id'] = 0

    data['description'] = app.config['STATION_NAME']
    data['contact'] = app.config['STATION_URL']
    return data
コード例 #8
0
def missioncontrol_index():
    orders = Order.query.order_by(db.desc(Order.id)).limit(app.config['ARTISTS_PER_PAGE'])
    return render_template('donate/missioncontrol/index.html',
                           plans=list_plans(), orders=orders)