def approve_click(request):
    if request.user.username in ['*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**']:
        if request.method == 'POST':
            data = request.POST
            applicant = Applicant.objects.get(id = data['applicant_id'])

            if data['linktype'] == 'approve':
                form = ApprovalForm()
                form.approve = applicant.is_approved
                url = 'approve.html'
                payload = {'applicant': applicant, 'form': form}
            elif data['linktype'] == 'rec':
                url = 'eval_rec.html'
                recommendations = applicant.recommendation_set.all()
                rec_ids = []
                for rec in recommendations:
                    rec_ids.append(rec.id)
                rec_ids.sort()
                recnum = int(data['recnum'][-1])
                recommendation = Recommendation.objects.get(id = rec_ids[recnum]) if not len(rec_ids) - 1 < recnum else None
                payload = {'recommendation': recommendation}
            elif data['linktype'] == 'app':
                url = 'eval_app.html'
                payload = {'applicant': applicant}
            return render(request, url, payload)
    else:
        return HttpResponseRedirect('index')
def approve(request, applicant_id):
    if request.user.username not in ['*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**']:
        return HttpResponseRedirect(reverse('index'))

    applicant = Applicant.objects.get(id = applicant_id)

    if request.method == 'POST':
        form = ApprovalForm(request.POST)
        if form.is_valid():
            applicant.is_approved = form.cleaned_data.get('approve')
            applicant.save()
            return HttpResponseRedirect(reverse('approve_applicants_index'))

    payload = {'applicant': applicant}

    return render(request, 'approve_base.html', payload)
def send_token(username):
    user = User.query.filter_by(username=username).first_or_404()

    form = ApprovalForm()

    if form.validate_on_submit():

        if form.admin_key.data != app.config['ADMIN_KEY']:
            flash("Invalid Admin Key")
            return redirect(url_for('send_token', username=username))

        if user.approved:
            flash("User already approved.")
            return redirect(url_for('index'))

        #send_approval_email(user=user, message=form.message.data, admin=form.admin.data)
        indev_approval_email(user=user, message=form.message.data, admin=form.admin.data)
        user.approved = True
        db.session.commit()
        flash("User approved for registration.")
        return redirect(url_for('index'))

    return render_template('send_token.html', title="Admin Approval", form=form, user=user)