Пример #1
0
def update(title):
    if not user.custom_data.get('posts'):
        user.custom_data['posts'] = []

    posts = []
    for account in stormpath_manager.application.accounts:
        if account.custom_data.get('posts'):
            posts.extend(account.custom_data['posts'])
    posts = sorted(posts, key=lambda k: k['date'], reverse=True)


    for post in user.custom_data['posts']:
        if post['title'] == title and str(post['user_email']) == str(user):
            user.custom_data['posts'].remove(post)
            print(user.custom_data['posts'])

    user.custom_data['posts'].append({
        'date': datetime.utcnow().isoformat(),
        'title': request.form['title'],
        'location': request.form['location'],
        'crowd': request.form['crowd'],
        'activity': request.form['activity'],
        'expense': request.form['expense'],
        'blog': request.form['blog'],
        'user_email': str(user),
        'vote': 0
        
    })
    #print(user.custom_data['posts'])
    user.save()

    return redirect(url_for('sites', page=1))
Пример #2
0
def dashboard():
    """Render a dashboard page for logged in users."""

    # Store some custom data in our user's account.
    user.custom_data['favorite_web_framework'] = 'Flask'
    user.save()

    return render_template('dashboard.html')
Пример #3
0
def index():
    form = StartDateForm()
    if form.validate_on_submit():
        start_date = form.dt.data.strftime(Activity.DATE_FORMAT)
        user.custom_data['start_date'] = start_date
        user.save()
        set_globals()
    return render_template('index.html', form=form)
Пример #4
0
def index():
    form = StartDateForm()
    if form.validate_on_submit():
        start_date = form.dt.data.strftime(Activity.DATE_FORMAT)
        user.custom_data['start_date'] = start_date
        user.save()
        set_globals()
    return render_template('index.html', form=form)
Пример #5
0
def account():
    # get group accounts
    group = user.groups.search({"name": user.custom_data["tenant_id"]})
    group = group[0]
    accounts = group.accounts
    if request.method == "POST":
        user.given_name = request.form["name"]
        user.save()
    return render_template("dashboard/account.html", user=user, accounts=accounts)
Пример #6
0
def upload():

    if request.method == 'POST':
        
        # create and save car information        
        if not user.custom_data.get('posts'):
            user.custom_data['posts'] = []
            id = 1
        else:
            max = 1
            for post in user.custom_data['posts']:
                if post['numberplate'] > max:
                    max = post['numberplate']
            id = max+1
        

        user.custom_data['posts'].append({
            
            'numberplate': id,
            'year': request.form['year'],
            'plate': request.form['plate'],
            'make': request.form['make'],
            'model': request.form['model'],
            'trim': request.form['trim'],
            'colour': request.form['colour'],
            'transmission': request.form['transmission'],
            'doors': request.form['doors'],
            'owners': request.form['owners'],
            'extras': request.form['extras'].rstrip(',').split(','),
            'price': request.form['price'],
            'milage': request.form['milage'],
                           
            'fsh': checkboxStatus(request.form.get('fsh')),
            'abs': checkboxStatus(request.form.get('abs')),
            'cd': checkboxStatus(request.form.get('cd')),
            'ipod': checkboxStatus(request.form.get('ipod')),
            'ac': checkboxStatus(request.form.get('ac')),
            'em': checkboxStatus(request.form.get('em')),
            'ew': checkboxStatus(request.form.get('ew')),
            'cl': checkboxStatus(request.form.get('cl')),
            'alloys': checkboxStatus(request.form.get('alloys')),
            'fogs': checkboxStatus(request.form.get('fogs')),
            'eps': checkboxStatus(request.form.get('eps')),
            'pas': checkboxStatus(request.form.get('pas')),
            'imageNumber': 0,
            

        })
        user.save()

        flash('New car successfully added!')
        return redirect(url_for('stocklist'))
                                

    return render_template('upload.html')
Пример #7
0
def add_post():
    if not user.custom_data.get("posts"):
        user.custom_data["posts"] = []

    user.custom_data["posts"].append(
        {"date": datetime.utcnow().isoformat(), "title": request.form["title"], "text": request.form["text"]}
    )
    user.save()

    flash("El mensaje ha sido registrado.")
    return redirect(url_for("show_posts"))
Пример #8
0
def account():
    # get group accounts
    group = user.groups.search({'name': user.custom_data['tenant_id']})
    group = group[0]
    accounts = group.accounts
    if request.method == 'POST':
        user.given_name = request.form['name']
        user.save()
    return render_template('dashboard/account.html',
                           user=user,
                           accounts=accounts)
Пример #9
0
def add_post():
    if not user.custom_data.get('posts'):
        user.custom_data['posts'] = []

    user.custom_data['posts'].append({
        'date': datetime.utcnow().isoformat(),
        'user': request.form['user'],
        'status': request.form['status'],
    })
    user.save()
    flash('New post successfully added.')
    return redirect(url_for('show_posts'))
Пример #10
0
def add_post():
    if not user.custom_data.get('posts'):
        user.custom_data['posts'] = []
        user.custom_data['posts'].append({
            'date': datetime.utcnow().isoformat(),
            'title': request.form['title'],
            'text': request.form['text'],
            # 'emotion':flask.request.form['emotion'],
        })
    user.save()
    flash('New post successfully added.')
    return redirect(url_for('show_posts'))
Пример #11
0
def settings():
    if request.method == 'GET':
        return render_template('settings.html')

    ## handle a POST
    try:
        user.username = request.form.get('username')
        user.email = request.form.get('email')
        user.given_name = request.form.get('first_name')
        user.surname = request.form.get('last_name')
        user.save()
    except StormpathError, err:
        return render_template('settings.html', error=err.message)
Пример #12
0
def add_post():
    if not user.custom_data.get('posts'):
        user.custom_data['posts'] = []

    user.custom_data['posts'].append({
        'date': datetime.utcnow().isoformat(),
        'title': request.form['title'],
        'text': request.form['text'],
    })
    user.save()

    flash('New post successfully added.')
    return redirect(url_for('show_posts'))
Пример #13
0
def settings():
    if request.method == 'GET':
        return render_template('settings.html')

    ## handle a POST
    try:
        user.username = request.form.get('username')
        user.email = request.form.get('email')
        user.given_name = request.form.get('first_name')
        user.surname = request.form.get('last_name')
        user.save()
    except StormpathError, err:
        return render_template('settings.html', error=err.message)
Пример #14
0
def settings():
    if request.method == 'GET':
        return render_template('settings.html')

    is_author = True if request.form.get('is_author') is not None else False

    try:
        user.username = request.form.get('username')
        user.email = request.form.get('email')
        user.given_name = request.form.get('first_name')
        user.surname = request.form.get('last_name')
        user.save()
    except StormpathError, err:
        return render_template('settings.html', error=err.message)
Пример #15
0
def add_post():
    if not user.custom_data.get('posts'):
        user.custom_data['posts'] = []

    user.custom_data['posts'].append({
        'numberplate': request.form['numberplate'],
        'make': request.form['make'],
        'model': request.form['model'],
        
    })
    user.save()

    flash('New post successfully added.')
    return redirect(url_for('show_posts'))
Пример #16
0
def update(var):
    
    posts = user.custom_data['posts']
        
    for post in posts:
        if str(post['numberplate']) == var:
            
            # get extras list in nice form.
            extras = ""
            for x in post['extras']:
                extras = extras + x + ","
                            
            if request.method == 'POST':
                realImgCount=1    
                
                post['year'] = request.form['year']
                post['plate'] = request.form['plate']
                post['make'] = request.form['make']
                post['model'] = request.form['model']
                post['trim'] = request.form['trim']
                post['colour'] = request.form['colour']
                post['transmission'] = request.form['transmission']
                post['doors'] = request.form['doors']
                post['owners'] = request.form['owners']
                post['extras'] = request.form['extras'].rstrip(',').split(',')
                post['price'] = request.form['price']
                post['milage'] = request.form['milage']
                
                post['fsh'] = checkboxStatus(request.form.get('fsh'))
                post['abs'] = checkboxStatus(request.form.get('abs'))
                post['cd'] = checkboxStatus(request.form.get('cd'))
                post['ipod'] = checkboxStatus(request.form.get('ipod'))
                post['ac'] = checkboxStatus(request.form.get('ac'))
                post['em'] = checkboxStatus(request.form.get('em'))
                post['ew'] = checkboxStatus(request.form.get('ew'))
                post['cl'] = checkboxStatus(request.form.get('cl'))
                post['alloys'] = checkboxStatus(request.form.get('alloys'))
                post['fogs'] = checkboxStatus(request.form.get('fogs'))
                post['eps'] = checkboxStatus(request.form.get('eps'))
                post['pas'] = checkboxStatus(request.form.get('pas'))     
                    
                user.save()
                        
                flash('Car Information Successfully Updated!')
                return redirect(url_for('stocklist'))
        
                
            return render_template('update.html', post=post)

    return abort(404)           
Пример #17
0
def delete(var):
    
    posts = user.custom_data['posts']
    
    # delete car information
    for post in posts:
        if str(post['numberplate']) == var:
            user.custom_data['posts'].pop(user.custom_data['posts'].index(post))
            user.save()
            
    #delete car images
    for filename in glob.glob("static/car-photos/"+var+"_*"):
        os.remove(filename)
        
    return redirect(url_for('stocklist'))
Пример #18
0
def delete(title):
    if not user.custom_data.get('posts'):
        user.custom_data['posts'] = []

    posts = []
    for account in stormpath_manager.application.accounts:
        if account.custom_data.get('posts'):
            posts.extend(account.custom_data['posts'])
    posts = sorted(posts, key=lambda k: k['date'], reverse=True)

    for post in user.custom_data['posts']:
        if post['title'] == title and str(post['user_email']) == str(user):
             user.custom_data['posts'].remove(post)

    user.save()

    return render_template('delete.html', title=title)
Пример #19
0
def dashboard():
    """
    This view renders a simple dashboard page for logged in users.

    Users can see their personal information on this page, as well as store
    additional data to their account (if they so choose).
    """
    if request.method == 'POST':
        if request.form.get('ideatitle'):
            user.custom_data['ideatitle'] = request.form.get('ideatitle')

        if request.form.get('classyear'):
            user.custom_data['classyear'] = request.form.get('classyear')

        user.save()

    return render_template('dashboard.html')
Пример #20
0
def dashboard():
    """
    This view renders a simple dashboard page for logged in users.

    Users can see their personal information on this page, as well as store
    additional data to their account (if they so choose).
    """
    if request.method == 'POST':
        if request.form.get('birthday'):
            user.custom_data['birthday'] = request.form.get('birthday')

        if request.form.get('color'):
            user.custom_data['color'] = request.form.get('color')

        user.save()

    return render_template('dashboard.html')
Пример #21
0
def add_post():

  # Gives the user a custom post dictionary
  if not user.custom_data.get('posts'):
    user.custom_data['posts'] = []

  # Inserts the data into the posts distionary with date, title, and text
  user.custom_data['posts'].append({
    'date': datetime.utcnow().isoformat(),
    'title': request.form['title'],
    'text': request.form['text'],
  })
  user.save()

  # Tells the user that their post was successfully posted
  flash('New post successfully added.')

  return redirect(url_for('show_posts'))
Пример #22
0
def submit():
    if not user.custom_data.get('posts'):
        user.custom_data['posts'] = []

    user.custom_data['posts'].append({
        'date': datetime.utcnow().isoformat(),
        'title': request.form['title'],
        'location': request.form['location'],
        'crowd': request.form['crowd'],
        'activity': request.form['activity'],
        'expense': request.form['expense'],
        'blog': request.form['blog'],
        'user_email': str(user),
		'comment_id': "1234random",
        'vote': 0
    })
    user.save()
    print(user.custom_data['posts'])

    return redirect(url_for('sites', page=1,user=str(user)))
Пример #23
0
def updatephotos(var):
    
    posts = user.custom_data['posts']
        
    for post in posts:
        if str(post['numberplate']) == var:
                            
            if request.method == 'POST':
                realImgCount=1
        
                #remove current images
                for filename in glob.glob("static/car-photos/"+var+"_*"):
                    os.remove(filename)
        
                # check if images are valid
                for i in range(1,6):
                    file = request.files['file'+str(i)]
                    if file:
                        if not(allowed_file(file.filename)):
                            return render_template('upload_error.html', errorfile=str(file.filename))
        
                # save images to car-photos folder
                for i in range(1,6):
                    file = request.files['file'+str(i)]
                    if file:
                        filename = secure_filename(file.filename)  
                        file.save(os.path.join(app.config['UPLOAD_FOLDER'], var+'_'+str(realImgCount)+'.'+filename.rsplit('.',1)[1]))
                        realImgCount += 1
                
                post['imageNumber'] = realImgCount-1
                user.save()
                       
                flash('Car Images Successfully Updated!')
                return redirect(url_for('stocklist'))
                        
            return render_template('update_photos.html', post=post)
            
    return abort(404)           
Пример #24
0
def comment(comment_id):
	if not user.custom_data.get('comments'):
		user.custom_data['comments'] = []
		
	comment = {
		'date': datetime.utcnow().isoformat(),
		'title': request.form['title'],
		'comment_text': request.form['comment'],
		'comment_id': comment_id
	}
	
	user.custom_data['comments'].append(comment)
	user.save()
	'''
	posts = []
	post_by_name = 0
	for account in stormpath_manager.application.accounts:
		if account.custom_data.get('posts'):
			posts.extend(account.custom_data['posts'])
	for post in posts:
		if post['comment_id'] == comment_id:
			post_by_id = post
	'''		
	return redirect(url_for('sites', page = 1))
Пример #25
0
def set_globals():
    g.user = user
    g.total_activities = 0
    g.total_meters = 0
    g.route_activities = 0
    g.route_meters = 0
    if hasattr(user, 'custom_data'):
        if user.custom_data['start_date'] is None:
            user.custom_data['start_date'] = application.config['START_DATE']
            user.save()
        if user.custom_data['route'] is None:
            user.custom_data['route'] = application.config['ROUTE']
            user.save()
        route_activities = []
        for a in user.custom_data['activities']:
            g.total_activities = g.total_activities + 1
            g.total_meters = g.total_meters + a['distance']
            if a['start_time'] >= user.custom_data['start_date']:
                g.route_activities = g.route_activities + 1
                g.route_meters = g.route_meters + a['distance']
                route_activities.append(a)
        # save the custom data
        user.custom_data['route_activities'] = route_activities
        user.save()
Пример #26
0
def set_globals():
    g.user = user
    g.total_activities = 0
    g.total_meters = 0
    g.route_activities = 0
    g.route_meters = 0
    if hasattr(user, 'custom_data'):
        if user.custom_data['start_date'] is None:
            user.custom_data['start_date'] = application.config['START_DATE']
            user.save()
        if user.custom_data['route'] is None:
            user.custom_data['route'] = application.config['ROUTE']
            user.save()
        route_activities = []
        for a in user.custom_data['activities']:
            g.total_activities = g.total_activities + 1
            g.total_meters = g.total_meters + a['distance']
            if a['start_time'] >= user.custom_data['start_date']:
                g.route_activities = g.route_activities + 1
                g.route_meters = g.route_meters + a['distance']
                route_activities.append(a)
        # save the custom data
        user.custom_data['route_activities'] = route_activities
        user.save()
Пример #27
0
def set_route():
    user.custom_data['route'] = json.loads(request.args.get('route_markers'))
    user.save()
    return redirect(url_for('index'))
Пример #28
0
def set_route():
    user.custom_data['route'] = json.loads(request.args.get('route_markers'))
    user.save()
    return redirect(url_for('index'))
Пример #29
0
def charge():
    """
    Charge this user, and take their moneys!
    """
    # By default, the following is true:
    # - All investments are 20$.
    # - The default lower limit is 50%.
    # - The default upper limit is 50%.
    amount = 100
    #lower_limit = int(request.form.get('lower-limit')) or 50
    #upper_limit = int(request.form.get('upper-limit')) or 50
    lower_limit = 50
    upper_limit = 50
    id = uuid4().hex

    # Create a Strip customer.
    customer = stripe.Customer.create(
        email=user.email,
        card=request.form['stripeToken'],
    )

    # Bill the user.
    stripe.Charge.create(
        customer=customer.id,
        amount=amount,
        currency='usd',
        description='BitRich Investment',
    )

    # Get current exchange rates:
    resp = get('https://coinbase.com/api/v1/currencies/exchange_rates')
    rate = float(resp.json()['usd_to_btc'])

    resp = post(
        'https://coinbase.com/api/v1/buys?api_key=%s' %
        app.config['COINBASE_API_KEY'],
        headers={
            'Content-Type': 'application/json',
        },
        data=dumps({'qty': rate * (amount / 100)}),
    )

    # Store investment details in Stormpath.
    try:
        user.custom_data['investments'].append({
            'id':
            id,
            'created':
            datetime.utcnow().isoformat(),
            'updated':
            datetime.utcnow().isoformat(),
            'deposit_amount_usd':
            amount,
            'deposit_amount_bitcoin':
            float(resp.json()['transfer']['btc']['amount']),
            'lower_limit':
            lower_limit,
            'upper_limit':
            upper_limit,
        })
    except:
        user.custom_data['investments'] = []
        user.custom_data['investments'].append({
            'id':
            id,
            'created':
            datetime.utcnow().isoformat(),
            'updated':
            datetime.utcnow().isoformat(),
            'deposit_amount_usd':
            amount,
            'deposit_amount_bitcoin':
            float(resp.json()['transfer']['btc']['amount']),
            'lower_limit':
            lower_limit,
            'upper_limit':
            upper_limit,
        })

    user.save()

    message = Mail(
        to=user.email,
        subject='Thanks for your Investment!',
        text='',
        from_email='*****@*****.**',
    )
    message.set_html(
        render_template(
            'email/deposit_email.html',
            user=user,
        ).encode('utf_8').decode('unicode_escape'))
    sendgrid.send(message)

    return redirect(url_for('dashboard'))
Пример #30
0
def charge():
    """
    Charge this user, and take their moneys!
    """
    # By default, the following is true:
    # - All investments are 20$.
    # - The default lower limit is 50%.
    # - The default upper limit is 50%.
    amount = 100
    #lower_limit = int(request.form.get('lower-limit')) or 50
    #upper_limit = int(request.form.get('upper-limit')) or 50
    lower_limit = 50
    upper_limit = 50
    id = uuid4().hex

    # Create a Strip customer.
    customer = stripe.Customer.create(
        email = user.email,
        card = request.form['stripeToken'],
    )

    # Bill the user.
    stripe.Charge.create(
        customer = customer.id,
        amount = amount,
        currency = 'usd',
        description = 'BitRich Investment',
    )

    # Get current exchange rates:
    resp = get('https://coinbase.com/api/v1/currencies/exchange_rates')
    rate = float(resp.json()['usd_to_btc'])

    resp = post(
        'https://coinbase.com/api/v1/buys?api_key=%s' % app.config['COINBASE_API_KEY'],
        headers = {
            'Content-Type': 'application/json',
        },
        data = dumps({'qty': rate * (amount / 100)}),
    )

    # Store investment details in Stormpath.
    try:
        user.custom_data['investments'].append({
            'id': id,
            'created': datetime.utcnow().isoformat(),
            'updated': datetime.utcnow().isoformat(),
            'deposit_amount_usd': amount,
            'deposit_amount_bitcoin': float(resp.json()['transfer']['btc']['amount']),
            'lower_limit': lower_limit,
            'upper_limit': upper_limit,
        })
    except:
        user.custom_data['investments'] = []
        user.custom_data['investments'].append({
            'id': id,
            'created': datetime.utcnow().isoformat(),
            'updated': datetime.utcnow().isoformat(),
            'deposit_amount_usd': amount,
            'deposit_amount_bitcoin': float(resp.json()['transfer']['btc']['amount']),
            'lower_limit': lower_limit,
            'upper_limit': upper_limit,
        })

    user.save()

    message = Mail(
        to = user.email,
        subject = 'Thanks for your Investment!',
        text = '',
        from_email = '*****@*****.**',
    )
    message.set_html(render_template(
        'email/deposit_email.html',
        user = user,
    ).encode('utf_8').decode('unicode_escape'))
    sendgrid.send(message)

    return redirect(url_for('dashboard'))