def delete_album(request, albumno): if request.is_ajax(): if request.method == 'POST': user = Helpers.getUser(request) Album.objects.filter(id=albumno, owner=user).delete() return HttpResponse(json.dumps({ "redirect": '/albums' }), content_type="application/json") # OK return HttpResponse(status=400) # FAIL
def show_albums(request): user = Helpers.getUser(request) context = { 'user':user, 'albums':None } if user.is_authenticated(): context['albums'] = user.albums.all() return render_to_response('albums.html', context, context_instance=RequestContext(request))
def delete_page(request, albumno, pageno): if request.is_ajax(): if request.method == 'POST': user = Helpers.getUser(request) album = get_object_or_404(Album, id=albumno, owner=user) # @todo: UPDATE PAGE LINKING AND NUMBERING! AlbumPage.objects.filter(album=album, pageno=pageno).delete() return HttpResponse(json.dumps({ "redirect": '/albums/%s/?edit=true' % albumno }), content_type="application/json") # OK return HttpResponse(status=400) # FAIL
def delete_photo(request, albumno, pageno, photono): if request.is_ajax(): if request.method == 'POST': user = Helpers.getUser(request) album = get_object_or_404(Album, id=albumno, owner=user) page = album.pages.filter(pageno=pageno) Photo.objects.filter(albumpage=page, photono=photono).delete() return HttpResponse(json.dumps({ "redirect": '/albums/%s/%s/?edit=true' % (albumno, pageno) }), content_type="application/json") # OK return HttpResponse(status=400) # FAIL
def create(request): form = AlbumCreateForm() user = Helpers.getUser(request) if request.method == 'POST': album = Album(owner=user) form = AlbumCreateForm(request.POST, instance=album) if form.is_valid(): instance = form.save() return redirect('/albums/%d?edit=true' % instance.id) return render_to_response('create.html', { "albumCreateForm": form }, context_instance=RequestContext(request))
def settings(): if session.get('logged_in'): if request.method == 'POST': user, s = helpers.changeUser() if request.form['password'] != "": user.password = helpers.hashPassword(request.form['password']) if request.form['email'] != "": user.email = request.form['email'] if request.form['c1'] != "": user.c1 = request.form['c1'] if request.form['c2'] != "": user.c2 = request.form['c2'] s.commit() return json.dumps({'status': 'Saved'}) user = helpers.getUser() return render_template('settings.html', user=user) return redirect(url_for('login'))
def login(): if not session.get('logged_in'): form = LoginForm(request.form) if request.method == 'POST': username = request.form['username'].lower() password = request.form['password'] if form.validate(): if helpers.credentialsValid(username, password): session['logged_in'] = True session['username'] = username return json.dumps({'status': 'Login successful'}) return json.dumps({'status': 'Invalid user/pass'}) return json.dumps({'status': 'Both fields required'}) return render_template('login.html', form=form) user = helpers.getUser() return render_template('index.html', user=user)
def buy(): if request.method == 'GET': return render_template('buy.html') shares = request.form.get('shares') symbol = request.form.get('symbol') if not shares or not symbol: return apology('Shares and symbol are required') try: shares = int(shares) if shares < 0: return apology('Shares must be a valid value') except: return apology('Shares must be a valid value') quote = lookup(symbol) if not quote: return apology('Symbol not found') user_id = session.get("user_id") user = getUser(user_id, db) if user['cash'] < (quote['price'] * shares): return apology('Insufficient founds') userCashDecrement = quote['price'] * shares userQuote = db.execute( 'SELECT * FROM user_quotes WHERE user_id = ? AND quote_symbol = ?', user_id, symbol) if not userQuote: db.execute( 'INSERT INTO user_quotes(user_id, quote_symbol, shares) VALUES(?,?,?)', user_id, symbol, shares) db.execute('UPDATE users SET cash = cash - ? WHERE id = ?', userCashDecrement, user_id) log(user_id, symbol, shares, quote['price'], db) else: db.execute( 'UPDATE user_quotes SET shares= shares + ? WHERE quote_symbol=? AND user_id=?', shares, symbol, user_id) db.execute('UPDATE users SET cash = cash - ? WHERE id = ?', userCashDecrement, user_id) log(user_id, symbol, shares, quote['price'], db) return redirect('/')
def albumoverview(request, albumid): user = Helpers.getUser(request) album = get_object_or_404(Album, id=albumid, owner=user); context = {"album": album} # Fetch pages. pages = AlbumPage.objects.filter(album=albumid) if request.method == 'POST': # Add new page? if request.POST["action"] == 'addpage': if "layout" in request.POST: layoutno = request.POST["layout"]; if not pages: pageno = 1 else: pageno = pages.count() + 1 albumpage = AlbumPage(album=album, layout=layoutno, pageno=pageno) albumpage.save() # a sluggish way of handling false submission. Should be implemented with Django Forms else: return redirect('/albums/%s?edit=true' % albumid) pages = AlbumPage.objects.filter(album=albumid) # construct 'photos' dictionaries for each page, like the albumpage view does for albumpage in pages: albumpage.photodict = Helpers.createPhotoDictionary(albumpage) albumpage.layouttemplate = 'albumpage-layout-%d.html' % albumpage.layout context["pages"] = pages # for convenience, editmode is passed to the template as a string that can # be appended to URLs if ("edit" in request.GET): context["editmode"] = "?edit=true" return render_to_response('albumoverview.html', context, context_instance=RequestContext(request))
from google.cloud import firestore import argparse import datetime import helpers script_version = 1 def deleteMessage(db, message): doc_ref = db.collection(u'messages').document(message.id) helpers.printSnapshot(doc_ref.get()) doc_ref.delete() if __name__ == '__main__': parser = argparse.ArgumentParser() args = parser.parse_args() db = firestore.Client() users = helpers.queryUsers(db) messages = helpers.queryMessages(db) for message in messages: user1 = helpers.getUser(message.get(u'user1'), users) user2 = helpers.getUser(message.get(u'user2'), users) if user1 is None or user2 is None: deleteMessage(db, message)
def show_landing_page(request): return render_to_response('base.html', { "user": Helpers.getUser(request) }, context_instance=RequestContext(request))
def albumpage(request, albumid, pageno): pageno = int(pageno) user = Helpers.getUser(request) album = get_object_or_404(Album, id=albumid, owner=user) context = {"album": album} # Fetch information about the requested page context["pageno"] = pageno albumpage = get_object_or_404(AlbumPage, album=albumid, pageno=pageno) context["albumpage"] = albumpage if pageno > 1: context["prevpageno"] = int(pageno) - 1 if pageno < album.pages.count(): context["nextpageno"] = int(pageno) + 1 photosdict = Helpers.createPhotoDictionary(albumpage) context["photos"] = photosdict # If we returned from the search/basket page, there's a caption in the URL. Extract that # There is a maximum of 4 photos per page in any layout if request.method == 'GET': if "search-result-url" in request.GET: photono = request.GET["photono"] if "photono" in request.GET else None if photono in photosdict: photo = photosdict[photono] else: photo = Photo(albumpage_id=albumpage.id, photono=photono) photosdict[photono] = photo photo.url = request.GET["search-result-url"] photo.unsaved = True context["unsaved"] = True # If this was an edit, update the objects with the new values if request.method == 'POST': # There is a maximum of 4 photos per page in any layout for photono in range(1, 5): newcaption = request.POST.get("photo-%d-caption" % photono, None) newurl = request.POST.get("photo-%d-url" % photono, None) if newcaption or newurl: if photono in photosdict: photo = photosdict[photono] else: photo = Photo(albumpage_id=albumpage.id, photono=photono) photosdict[photono] = photo photo.caption = newcaption photo.url = newurl photo.save() album.cover = photo album.save() # Render response. # First choose the template to use for this page's layout. context["layouttemplate"] = 'albumpage-layout-%d.html' % albumpage.layout # for convenience, editmode is passed to the template as a string that can # be appended to URLs if "edit" in request.GET: context["editmode"] = "?edit=true" return render_to_response('albumpage.html', context, context_instance=RequestContext(request))
def importdialog(request): if request.is_ajax(): user = Helpers.getUser(request) albums = Album.objects.filter(owner=user).order_by('created_date') return render_to_response('import-dialog.html', { "albums": albums }, context_instance=RequestContext(request)) return redirect('albums')
from google.cloud import firestore import argparse import datetime import helpers script_version = 1 def deleteRequest(db, request): doc_ref = db.collection(u'requests').document(request.id) helpers.printSnapshot(doc_ref.get()) doc_ref.delete() if __name__ == '__main__': parser = argparse.ArgumentParser() args = parser.parse_args() db = firestore.Client() users = helpers.queryUsers(db) requests = helpers.queryRequests(db) for request in requests: sender = helpers.getUser(request.get(u'senderId'), users) receiver = helpers.getUser(request.get(u'receiverId'), users) if sender is None or receiver is None: deleteRequest(db, request)
# randomize in case the user was specified users = [userA, userB] random.shuffle(users) return createRequest(db, users[0], users[1]) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("-c", "--count", type=int, default=3) parser.add_argument("--user") args = parser.parse_args() db = firestore.Client() users = helpers.queryUsers(db) requests = helpers.queryRequests(db) for i in range(0, args.count): if args.user is None: request = addRandomRequest(db, users, requests) else: request = addUserRequest(db, helpers.getUser(args.user, users), users, requests) if request is None: print("Adding a request failed at count:" + str(i)) break requests.append(request) helpers.printSnapshot(request) # Uncomment to query all users # queryUsers(db)