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))
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')
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)
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)
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')
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"))
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)
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'))
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'))
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)
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'))
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)
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'))
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)
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'))
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)
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')
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')
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'))
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)))
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)
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))
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()
def set_route(): user.custom_data['route'] = json.loads(request.args.get('route_markers')) user.save() return redirect(url_for('index'))
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'))
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'))