Example #1
0
def average_deal_size():
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = _average_deal_size(start, end)
    return render_template('salesdash/currencybarchart.html',
                           series=series,
                           data_url=url_for('.api_average_deal_size'),
                           start=start,
                           end=end)
Example #2
0
def conversion_rate():
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = _conversion_rate(start, end)
    return render_template('salesdash/barandlinechart.html',
                           series=series,
                           data_url=url_for('.api_conversion_rate'),
                           start=start,
                           end=end)
Example #3
0
def downgrades_plus_churn():
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = _downgrades_plus_churn(start, end)
    return render_template('salesdash/currencybarchart.html',
                           series=series,
                           data_url=url_for('.api_downgrades_plus_churn'),
                           start=start,
                           end=end)
Example #4
0
def product_mrr():
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = _product_mrr(start, end)
    return render_template('salesdash/currencybarchart.html',
                           series=series,
                           data_url=url_for('.api_product_mrr'),
                           start=start,
                           end=end)
Example #5
0
def new_biz_plus_upsell():
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = _new_biz_plus_upsell(start, end)
    return render_template('salesdash/currencybarchart.html',
                           series=series,
                           data_url=url_for('.api_new_biz_plus_upsell'),
                           start=start,
                           end=end)
Example #6
0
def salesdash():
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    return render_template(
        'salesdash/dashboard.html',
        start=start,
        end=end,
        upsell_newbiz_data_url=url_for('.api_new_biz_plus_upsell'),
        mrr_data_url=url_for('.api_mrr'),
        product_mrr_data_url=url_for('.api_product_mrr'),
    )
Example #7
0
def net_value():
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = _net_value(start, end)
    return render_template(
        'salesdash/currencybarchart.html',
        #            'salesdash/barandlinechart.html',
        series=series,
        data_url=url_for('.api_net_value'),
        start=start,
        end=end)
Example #8
0
def product_average_deal_size():
    datasource = _product_average_deal_size
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = datasource(start, end)
    return render_template('salesdash/currencybarchart.html',
                           series=series,
                           data_url=url_for('.api{}'.format(
                               datasource.__name__)),
                           start=start,
                           end=end)
Example #9
0
def paid_account_count():
    datasource = _paid_account_count

    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = datasource(start, end)
    return render_template('salesdash/barchart.html',
                           series=series,
                           data_url=url_for('.api{}'.format(
                               datasource.__name__)),
                           start=start,
                           end=end)
Example #10
0
def new(subd):

    acct_id = touchbiz.acct_id_for_subdomain(subd)

    try:
        owner_id = touchbiz.owner_id(current_user.email)
    except:
        raise Exception('Unauthorized to add touchbiz entry.')

    created = iso8601_to_dt(request.form.get(
        'created')) if 'created' in request.form else datetime.today()

    with tb_session() as s:
        entry = Touchbiz(
            acct_id=acct_id,
            sales_rep_id=owner_id,
            created=created,
            modified=created,
            plan_type=request.form['plan_type'],
            tier=request.form['tier'].lower(),
            retention=request.form['retention'],
            volume=request.form['volume'],
            sub_rate=request.form['sub_rate'],
            payment_method=request.form['payment_method'],
            billing_period=request.form['billing_period'],
        )
        s.add(entry)

    latest = touchbiz.flatten(touchbiz.touchbiz_by_account(subd)[-1])._asdict()

    return {
        'status': 'success',
        'new': latest,
    }
Example #11
0
def api_conversion_rate():
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = _conversion_rate(start, end)
    return jsonify({'series': series})
Example #12
0
def api_product_average_deal_size():
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = _product_average_deal_size(start, end)
    return jsonify({'series': series})
Example #13
0
def api_paid_account_count():
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = _paid_account_count(start, end)
    return jsonify({'series': series})
Example #14
0
def api_downgrades_plus_churn_count():
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = _downgrades_plus_churn_count(start, end)
    return jsonify({'series': series})
Example #15
0
def api_new_biz_plus_upsell():
    start = iso8601_to_dt(request.args.get('start', DEFAULT_START))
    end = iso8601_to_dt(request.args.get('end', DEFAULT_END))

    series = _new_biz_plus_upsell(start, end)
    return jsonify({'series': series})
Example #16
0
 def test_iso8601_to_dt( self ):
     self.assertEqual( iso8601_to_dt( '2014-04-08' ),          datetime( 2014, 4, 8 ) )
     self.assertEqual( iso8601_to_dt( '2014-04-08T01' ),       datetime( 2014, 4, 8, 1 ) )
     self.assertEqual( iso8601_to_dt( '2014-04-08T01:02' ),    datetime( 2014, 4, 8, 1, 2 ) )
     self.assertEqual( iso8601_to_dt( '2014-04-08T01:02:03' ), datetime( 2014, 4, 8, 1, 2, 3 ) )