Exemplo n.º 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))
Exemplo n.º 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')
Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 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')
Exemplo n.º 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"))
Exemplo n.º 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)
Exemplo n.º 9
0
Arquivo: CSRF.py Projeto: Rawkcy/CSRF
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'))
Exemplo n.º 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'))
Exemplo n.º 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)
Exemplo n.º 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'))
Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 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'))
Exemplo n.º 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)           
Exemplo n.º 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'))
Exemplo n.º 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)
Exemplo n.º 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')
Exemplo n.º 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')
Exemplo n.º 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'))
Exemplo n.º 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)))
Exemplo n.º 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)           
Exemplo n.º 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))
Exemplo n.º 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()
Exemplo n.º 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()
Exemplo n.º 27
0
def set_route():
    user.custom_data['route'] = json.loads(request.args.get('route_markers'))
    user.save()
    return redirect(url_for('index'))
Exemplo n.º 28
0
def set_route():
    user.custom_data['route'] = json.loads(request.args.get('route_markers'))
    user.save()
    return redirect(url_for('index'))
Exemplo n.º 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'))
Exemplo n.º 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'))