def test_vote_constraints(self): first_vote = Vote() first_vote.idea_id = 1 first_vote.user_id = 1 first_vote.value = 1 second_vote = Vote() second_vote.idea_id = 1 second_vote.user_id = 1 second_vote.value = -1 self.addModel(first_vote) with self.assertRaises(IntegrityError): self.addModel(second_vote)
def room(room_name): if not server_data.get_room(room_name).is_user_in_room(current_user.id): server_data.get_room(room_name).add_user(current_user.id) all_songs = get_all_songs_before_and_including(12) form = [] #[len(all_songs)] # dunno if I need all this but eh voted_for = [None] * len(all_songs) for i, song in enumerate(all_songs): form.append(VoteForm(prefix=song.country)) if form[i].validate_on_submit(): vote = Vote(form[i].vote.data, song.id, current_user.id) print("Adding vote for", song.name, " (id) ", song.id, " for user ", current_user.username, " with value ", form[i].vote.data) db.session.add(vote) #pylint: disable=E1101 db.session.commit() #pylint: disable=E1101 if has_voted_for_song(song.id, current_user.id): voted_for[i] = True else: voted_for[i] = False return render_template('room.html', room_name=room_name, title=room_name, form=form, songs=all_songs, voted_for=voted_for)
def create_vote(set_id): # upvote from body isUpvote = request.json['isUpvote'] # gets decodes userinfo out of token using auth0 api token = request.headers.get('Authorization') req = requests.get('https://codelet-app.auth0.com/userinfo', headers={'Authorization': token}).content userInfo = json.loads(req) userId = User.query.filter_by(email=userInfo['email']).first().id dbVote = Vote.query.filter_by(user_id=userId, set_id=set_id).first() if dbVote: if isUpvote == dbVote.is_upvote: db.session.delete(dbVote) db.session.commit() return "Deleted", 204 else: dbVote.is_upvote = not dbVote.is_upvote db.session.commit() return "Switched Vote", 206 else: new_vote = Vote(user_id=userId, set_id=set_id, is_upvote=isUpvote) db.session.add(new_vote) db.session.commit() return "Created vote", 201
def vote_store_channel(sid): store = Store.read(sid) if store: request_data = request.form cid = request_data.get('cid', None) if not cid: return Response(status=400) else: cid = int(cid) idx = -1 for i, vote in enumerate(store.votes): if vote.cid == cid: idx = i break if idx >= 0: store.votes[idx].vote_count += 1 else: channel = Channel.read(cid) vote = Vote(sid=sid, cid=cid, vote_count=1) if channel: store.votes.append(vote) success = store.update() if success: result = store_schema.dump(store) return jsonify(result.data), 200 else: return Response(status=500) return Response(status=404)
def vote(request): VoteFormSet = formset_factory(VoteForm, extra=0) if request.method == 'POST': formset = VoteFormSet(request.POST, request.FILES) if formset.is_valid(): g = request.session.get('group') b = request.session.get('badge_number') n = request.session.get('student_name') if (g == None or b == None or n == None): return HttpResponseRedirect('/') print('valid') resp = ResponseStudent() resp.badge_number = b resp.student_name = n resp.group = Group.objects.filter(pk=g)[0] resp.save() for form in formset.cleaned_data: v = Vote() v.response_student = resp v.teacher = form['teacher'] v.mark1 = form['mark1'] v.mark2 = form['mark2'] v.mark3 = form['mark3'] v.mark4 = form['mark4'] v.mark5 = form['mark5'] v.mark6 = form['mark6'] v.mark7 = form['mark7'] v.mark8 = form['mark8'] v.save() else: print('No valid') return render(request, 'app/thank_you.html')
def vote_next(request): ip = request.META.get('REMOTE_ADDR') try: vote = Vote.objects.get(ip=ip) except Vote.DoesNotExist: try: reverse = socket.gethostbyaddr(ip)[0] except socket.herror: reverse = u'unknown <%s>' % ip vote = Vote(ip=ip, reverse=reverse) vote.point = 1 vote.save() # test votes = Vote.objects.all() points = sum(vote.point for vote in votes) if settings.MODE == 'static' and points >= settings.STATIC_THRESHOLD: spotify_next() elif settings.MODE == 'dynamic': clients = Client.objects.filter(up=True).count() if points >= clients // 2: spotify_next() else: messages.add_message(request, messages.SUCCESS, 'You have successfully voted.') else: messages.add_message(request, messages.SUCCESS, 'You have successfully voted.') return redirect('app.views.index')
def add_vote(): req = request.get_json(force=True) user_id = req.get('user_id', None) game_id = req.get('game_id', None) team_id = req.get('team_id', None) if current_user().id != user_id: abort(403) game = Game.query.get(game_id) if not game: return bad_request('Game not found') team = Team.query.get(team_id) if not team: return bad_request('Team not found') if game.home_team != team and game.away_team != team: return bad_request('Team not playing in game') vote = Vote.query.filter_by(user_id=user_id, game_id=game_id).first() if not vote: vote = Vote(user_id=user_id, game_id=game_id, team_id=team_id) db.session.add(vote) db.session.commit() elif vote.team != team: vote.team = team db.session.commit() vote_schema = VoteSchema() output = vote_schema.dump(vote).data return jsonify({'vote': output})
def vote(p_thing=None): if request.method == "GET": votes = {} thing = Thing.query.filter(Thing.name.ilike(p_thing)).first() if not thing: return f"no thing '{p_thing}'", 404 for vote in Vote.query.filter(Vote.thing_id == thing.id).all(): votes[vote.id] = { "thing_id": vote.thing_id, "user_id": vote.user_id, "vote_love": vote.vote_love, "vote_hobby": vote.vote_hobby, "timestamp": vote.timestamp, } return votes if request.method == "POST": user_id = session.get("user_id") if user_id: user = User.query.get(user_id) if not user: return "no user", 400 else: return "no user", 400 thing = Thing.query.filter(Thing.name.ilike(p_thing)).first() if not thing: return f"no thing '{p_thing}'", 400 vote_love = int(request.form.get("vote_love")) vote_hobby = int(request.form.get("vote_hobby")) thing_id = thing.id timestamp = datetime.utcnow() if vote_love not in [0, 1]: return f"vote_love cannot be {vote_love}", 400 if vote_hobby not in [0, 1]: return f"vote_hobby cannot be {vote_hobby}", 400 if vote_love == 0 and vote_hobby == 1: return f"no hobby if you do not love it, ok?!", 400 v = Vote.query.filter( Vote.thing_id == thing_id, Vote.user_id == user_id ).first() if not v: v = Vote() v.user_id = user_id v.thing_id = thing_id v.vote_love = vote_love v.vote_hobby = vote_hobby v.timestamp = timestamp db.session.add(v) db.session.commit() return "succesful"
def iusethis(request, host_id): h = get_object_or_404(Hosting, id=host_id) h.num_of_users = h.num_of_users + 1 h.save() Vote(hosting_id=host_id, ip=get_client_ip(request)).save() messages.add_message(request, messages.INFO, 'Thank you.Your vote is counted !') return HttpResponseRedirect('/')
def addVotes(self, ideas): votes = [] for i in range(20): vote = Vote() vote.value = random.choice([-1, 1]) vote.idea_id = ideas[randint(0, 14)].id self.addModel(vote) votes.append(vote) return votes
def vote(): form = request.form user_id = form['user_id'] phone_id = form['phone_id'] new_vote = Vote(user_id=user_id, phone_id=phone_id) db.session.add(new_vote) db.session.commit() flash('Congratulations on voting success', 'yes') return jsonify({'code': '200'})
def vote(winner_id, loser_id, vote_key): if vote_key == session.get('vote_key'): v = Vote(winner_id=winner_id, loser_id=loser_id) db.session.add(v) winner = User.query.filter_by(id=winner_id).first() loser = User.query.filter_by(id=loser_id).first() winner.rating, loser.rating = update_ratings(winner.rating, loser.rating) db.session.commit() return redirect('/')
def pitch_vote(id): pitch = Pitch.query.get(id) vote = Vote.query.filter_by(user_id=current_user.id, pitch_id=pitch.id).first() print(vote) if not vote: vote = Vote(type=vote, pitch_id=id) form = VoteForm() if form.validate_on_submit(): vote.type = form.type.data vote.save_vote() return redirect(url_for('.single_pitch', id=pitch.id))
def setUp(self): ''' Set up method that will run before every Test ''' # self.group_pick_up = Group( name="Excuse lines" ) # self.user_jim = User(username = "******", password = "******", email = "*****@*****.**" ) # self.new_line = Line( line_content="I am Groot", group = self.group_pick_up, user=self.user_jim) self.new_vote = Vote(vote_number=0)
def test_get_all_votes(self): self.addTestModels() user = User() user.username = '******' user.email = '*****@*****.**' self.addModel(user) vote = Vote() vote.value = 1 vote.user_id = user.id vote.email = self.testIdea.id self.addModel(vote) self.assertCountEqual([vote, self.testVote], get_all_votes())
def upvote(post_id): post_to_upvote = Post.query.filter_by(id=post_id).first_or_404() vote_query = Vote.query.filter_by(user_id=current_user.id, post_id=post_to_upvote.id).first() if vote_query is not None: flash("You already voted in this post.") else: post_to_upvote.update_votes() vote = Vote(user_id=current_user.id, post_id=post_to_upvote.id) db.session.add(vote) db.session.commit() return redirect(redirect_url())
def init_votes(): queried_users = db.session.query(User).filter(User.name.in_(users)).all() queried_ideas = db.session.query(Idea).all() print('creating votes and events for users.') for user in queried_users: for idea in queried_ideas: if random.choice([True, False]): vote = Vote() vote.value = random.choice([-1, 1]) vote.idea_id = idea.id vote.user_id = user.id db.session.add(vote) db.session.commit() init_event(vote)
def upvote(post_id, current_user): post_to_upvote = Post.query.filter_by( company_id=current_user.company_id, deleted=0, id=post_id).first_or_404() vote_query = Vote.query.filter_by(user_id=current_user.id, post_id=post_to_upvote.id).first() if vote_query is not None: return False else: post_to_upvote.update_votes() vote = Vote(user_id=current_user.id, post_id=post_to_upvote.id) db.session.add(vote) db.session.commit() return True
def make_vote(flag, mid): """ makes a vote record in the database, flag indicates wheather up or down""" record = Vote.query.filter_by(user_id=current_user.id, post_id=mid).first() if record: return jsonify({ "id": mid, "flag": flag, "msg": "already exists!", "ratio": getVotingRatio(mid) }) vote = Vote(user_id=current_user.id, post_id=mid, is_pro=(int(flag) & 1)) db.session.add(vote) db.session.commit() return jsonify({"ratio": getVotingRatio(mid)})
def vote(): if not current_user.is_authenticated: return redirect(url_for('login')) queried_idea = get_idea(request.form.get('target')) if queried_idea is None: abort(409) if vote_exists(current_user.id, queried_idea.id): edit_vote( get_vote(current_user.id, queried_idea.id).id, request.form.get('value')) else: future_vote = Vote(owner=current_user, target=queried_idea, value=request.form.get('value')) save_vote(future_vote) return redirect_back()
def upvote(post_id, subdomain='www'): post_to_upvote = Post.query.filter_by(company_id=current_user.company_id, id=post_id).first_or_404() vote_query = Vote.query.filter_by(user_id=current_user.id, post_id=post_to_upvote.id).first() if vote_query is not None: post_to_upvote.update_unvotes() db.session.delete(vote_query) db.session.commit() flash("You cancel your vote.", "success") else: post_to_upvote.update_votes() vote = Vote(user_id=current_user.id, post_id=post_to_upvote.id) db.session.add(vote) db.session.commit() flash("You upvoted the post.", "success") return redirect(redirect_url())
def upvote(): data = request.get_json() db = get_db() try: # create a new vote with incoming id and session id newVote = Vote(post_id=data['post_id'], user_id=session.get('user_id')) db.add(newVote) db.commit() except: print(sys.exc_info()[0]) db.rollback() return jsonify(message='Upvote failed'), 500 return '', 204
def vote_keep(request): ip = request.META.get('REMOTE_ADDR') try: vote = Vote.objects.get(ip=ip) except Vote.DoesNotExist: try: reverse = socket.gethostbyaddr(ip)[0] except socket.herror: reverse = u'unknown <%s>' % ip vote = Vote(ip=ip, reverse=reverse) vote.point = -1 vote.save() messages.add_message(request, messages.SUCCESS, 'You have successfully voted.') return redirect('app.views.index')
def test_check_vote_event(self): self.addModel(self.testUser) self.testIdea.user_id = self.testUser.id self.addModel(self.testIdea) for i in range(10): user = User() user.username = str(i) user.email = '{}@mail.com'.format(i) self.addModel(user) vote = Vote() vote.idea_id = self.testIdea.id vote.user_id = user.id vote.value = 1 self.addModel(vote) check_vote_event(vote) if i == 5: self.assertEqual(EventType.upvotes, Event.query.first().type) elif i == 10: self.assertEqual(EventType.votes, Event.query.first().type)
def set_vote(vote: typing.Dict, skip_validation: bool = False) -> Vote: v = Vote(email=vote["email"], validation=str(uuid.uuid4()), valid=skip_validation) try: db.session.add(v) db.session.flush() for index, song in enumerate(vote["songs"]): s = VoteSong(vote_id=v.id, song_id=song["id"], position=index + 1) db.session.add(s) db.session.commit() except IntegrityError: db.session.rollback() raise Exception("this email address has already used to vote") except Exception as error: db.session.rollback() raise return v
def upvote(): # Capture request data and current session to communicate with db. data = request.get_json() db = get_db() try: # Create new vote object using passed in post id and stored user id. newVote = Vote(post_id=data['post_id'], user_id=session.get('user_id')) db.add(newVote) db.commit() except: print(sys.exc_info()[0]) # If the insertion failed, rollback the last db commit to prevent server crashing when deployed. db.rollback() # Send error message back along with server error code. return '', 500 # If successful, return. return '', 204
def vote_recipe(recipe_id): if current_user.is_authenticated: recipe = Recipe.query.get_or_404(recipe_id) # gives 404 if not found poll = Poll.query.get_or_404(recipe.poll_id) if Vote.query.filter_by( poll_id=poll.id, user_id=current_user.id).first(): # already has a vote flash('You have already voted in that poll!', 'warning') return redirect(url_for('polls')) vote = Vote(poll_id=poll.id, user_id=current_user.id, recipe_id=recipe_id) db.session.add(vote) db.session.commit() flash('Voted succesfully!', 'success') return redirect(url_for('polls')) else: abort(403)
def setUp(self): basedir = os.path.abspath(os.path.dirname(__file__)) app.config['SQLALCHEMY_DATABASE_URI'] =\ 'sqlite:///' + os.path.join(basedir, 'test.db') app.config['TESTING'] = True app.config['WTF_CSRF_ENABLED'] = False self.app = app.test_client() db.create_all() u1 = User(username='******', email='*****@*****.**') u1.set_password('password') admin1 = User(username='******', email='*****@*****.**', is_admin=True) admin1.set_password('admin') db.session.add(u1) db.session.commit() poll1 = Poll(name='poll1', description='pdesc', creator_id=u1.id) poll2 = Poll(name='poll2', description='p2desc', creator_id=u1.id) db.session.add(poll1) db.session.add(poll2) db.session.commit() recipe1 = Recipe(name='recipe1', description='rdesc', contributor_id=u1.id, poll_id=poll1.id) db.session.add(recipe1) db.session.commit() vote1 = Vote(poll_id=poll1.id, user_id=u1.id, recipe_id=recipe1.id) db.session.add(admin1) db.session.add(vote1) db.session.commit()
def RegisterVote(cid, token): t = Token.query.filter_by(token=token).first() if t is not None: c = Choice.query.filter_by(id=cid).first() e = Election.query.filter_by(id=t.election).first() # Check if all the values return results if c is not None and e is not None: # Check if the token & choice match the election if c.election == e.id and t.election == e.id: # register the vote in Vote confirmcode = GenerateConfirmCode() v = Vote(choice=c.id, election=e.id, confirmcode=confirmcode) # Add the vote db.session.add(v) # Delete the token db.session.delete(t) # Commit db.session.commit() return confirmcode else: return False else: return False
Post(title='Morbi non quam nec dui luctus rutrum', post_url='https://nasa.gov/donec.json', user_id=1), Post(title='Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue', post_url='https://europa.eu/parturient/montes/nascetur/ridiculus/mus/etiam/vel.aspx', user_id=2), Post(title='Nunc purus', post_url='http://desdev.cn/enim/blandit/mi.jpg', user_id=3), Post(title='Pellentesque eget nunc', post_url='http://google.ca/nam/nulla/integer.aspx', user_id=4) ]) db.commit() # Insert comments. db.add_all([ Comment(comment_text='Nunc rhoncus dui vel sem.', user_id=1, post_id=2), Comment(comment_text='Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.', user_id=1, post_id=3), Comment(comment_text='Aliquam erat volutpat. In congue.', user_id=2, post_id=1), Comment(comment_text='Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.', user_id=2, post_id=3), Comment(comment_text='In hac habitasse platea dictumst.', user_id=3, post_id=3) ]) db.commit() # Insert votes. db.add_all([ Vote(user_id=1, post_id=2), Vote(user_id=1, post_id=4), Vote(user_id=2, post_id=4), Vote(user_id=3, post_id=4), Vote(user_id=4, post_id=2) ]) db.commit() db.close()