Пример #1
0
def vote(electionID, candidateID):
    if 'voter' in session:
        voter = Voter.getVoter({'username': session['voter']})
        election = Election.getElection({'_id': ObjectId(electionID)})
        
        if election['date'].date() > datetime.datetime.now().date():
            flash(f"Election not yet started. Come back on {election['date'].date()}", 'danger')
        elif election['date'].date() < datetime.datetime.now().date():
            flash(f"Election ended on {election['date'].date()}", 'danger')
        elif election['date'].date() == datetime.datetime.now().date():
            if str(datetime.datetime.now().time())[:5] > election['starttime'] and str(datetime.datetime.now().time())[:5] < election['endtime']:
                flash('Vote recorded successfully', 'success')
                vote = {
                    'timestamp': str(datetime.datetime.now()),
                    'electionID': electionID,
                    'candidateID': candidateID,
                    'voter': str(voter['_id'])
                }
                response = Blockchain.add_transaction(vote)
                flash(response, 'info')
            else:
                flash(f"You can vote between {election['starttime']} to {election['endtime']}", 'info')
        return redirect(url_for('home'))
    else:
        flash('You need to Login first!', 'warning')
        return redirect(url_for('login'))
Пример #2
0
def profile():
    if 'voter' in session:
        username = session['voter']
        voter = Voter.getVoter({'username': username})
        return render_template('profile.html', Voter=voter)
    else:
        return redirect(url_for('login'))
Пример #3
0
def profile():
    if 'voter' in session:
        username = session['voter']
        voter = Voter.getVoter({'username':username})
        return render_template('profile.html',Voter = voter)
    else:
        flash('You need to Login first!', 'warning')
        return redirect(url_for('login'))
Пример #4
0
def home():
    if 'voter' in session:
        username = session['voter']
        voter = Voter.getVoter({'username':username})
        elections = Election.getElections()
        return render_template('home.html', Voter = voter, Elections = elections)
    else:
        flash('You need to Login first!', 'warning')
        return redirect(url_for('login'))
Пример #5
0
def voter_authenticate():
    username = request.form['username']
    password = request.form['password']

    voter = Voter.getVoter({'username': username, 'password': password})

    if voter is None:
        session.pop('voter', None)
        return redirect(url_for('login'))
    else:
        session['voter'] = username
        return redirect(url_for('home'))
Пример #6
0
def voter_register():
    username = request.form['username']
    password = request.form['password']

    voter = Voter.getVoter({'username': username})

    if voter is None:
        voter = Voter(username=username, password=password)
        voter.addVoter()
        session['voter'] = username
        return redirect(url_for('home'))
    else:
        return redirect(url_for('login'))
Пример #7
0
def voter_authenticate():
    username = request.form['username']
    password = request.form['password']

    voter = Voter.getVoter({'username':username,'password':password})

    if voter is None:
        session.pop('voter', None)
        flash('Username or Password is wrong! Try Again', 'danger')
        return redirect(url_for('login'))
    else:
        session['voter'] = username
        flash('Login successful', 'success')
        return redirect(url_for('home'))
Пример #8
0
def voter_register():
    username = request.form['username']
    password = request.form['password']

    voter = Voter.getVoter({'username':username})

    if voter is None:
        voter = Voter(username = username, password = password)
        voter.addVoter()
        session['voter'] = username
        flash('Registration successful. Update profile', 'info')
        return redirect(url_for('home'))
    else:
        flash('You need to Login first!', 'warning')
        return redirect(url_for('login'))
Пример #9
0
def login():
	form = LoginForm()
	#if they submitted all the necessary features of the login form
	if form.validate_on_submit():

		cleanSSN = re.sub(r"\D", "", form.ssn.data)
		cleanDOB = re.sub(r"\D", "", form.dob.data)

		#check if the user is in the database
		cleanFLN = re.sub(r"[A-Za-z']", "", form.fullName.data)
		user = Voter.getVoter(dbManager, connection, cleanFLN)

		#confirm users password
		if user is None or not user.check_password(cleanSSN, cleanDOB):
			#notify user authentication did not work
			return not_found('Either you have already voted or the information you entered did not match any on record. If you have not yet voted, please try again.')
		
		#login_user(user)
		return vote_page(user)
	return render_template('login.html', title='Sign In', form=form)
Пример #10
0
def landing_page():
	startTime = ElectionTimespan.getStartTime(dbManager, connection)
	endTime = ElectionTimespan.getEndTime(dbManager, connection)
	if not startTime or not endTime:
		return not_found('GENERIC ERROR')

	form = LoginForm()

	#if they submitted all the necessary features of the login form
	if form.validate_on_submit():
		#check if the user is in the database
		user = Voter.getVoter(dbManager, connection, form.fullName.data)

		#confirm users password
		if user is None or not user.check_password(form.ssn.data, form.dob.data):

			#notify user authentication did not work
			return not_found('Either you have already voted or the information you entered did not match any on record. If you have not yet voted, please try again.')
		
		#login_user(user)
		return vote_page(user)
	return render_template("login.html", title='Sign In', form=form, startTime=startTime, endTime=endTime)
Пример #11
0
def registerCandidate():
    if 'voter' in session:
        voter = Voter.getVoter({'username':session['voter']})
        electionID = request.form.get('electionID')
        election = Election.getElection({'_id':ObjectId(electionID)})
        if datetime.datetime.now() + datetime.timedelta(days=2) >= election['date']:
            flash("Candiate Registration is closed", 'danger')
        else :
            candidate = {
                'id' : str(uuid4()).replace('-', ''),
                'voterID' : voter['_id'],
                'name' : voter['name'],
                'slogan' : request.form['slogan'],
                'representing' : request.form['representing'],
                'qualification' : request.form['qualification'],
                'status' : False
            }
            Election.updateElection({'_id':ObjectId(electionID)}, {'$push': {'candidates': candidate}})
            flash('Your registration details as candidate are successfully recorderd', 'info')
        return redirect(url_for('home'))
    else:
        flash('You need to Login first!', 'warning')
        return redirect(url_for('login'))
Пример #12
0
def view(voterID):
    if 'admin' in session:
        voter = Voter.getVoter({'_id': ObjectId(voterID)})
        return render_template('viewVoter.html', Voter = voter)
    else:
        return redirect(url_for('admin'))