Set status for BFCT profiles pending subscription
This commit is contained in:
@@ -4,6 +4,7 @@ from sqlalchemy import desc
|
||||
|
||||
from application import db
|
||||
from application.forms import CommentForm
|
||||
from application.forms import ApplicationStatusForm
|
||||
from application.models.users import *
|
||||
from application.models.applications import Application, Skill, ReviewersApplications, Comment
|
||||
|
||||
@@ -26,8 +27,10 @@ def index():
|
||||
@login_required
|
||||
@roles_accepted('bfct_board', 'bfct_manager', 'admin')
|
||||
def view(id):
|
||||
|
||||
application = Application.query.get_or_404(id)
|
||||
comment_form = CommentForm()
|
||||
application_status_form = ApplicationStatusForm(
|
||||
status=application.status)
|
||||
|
||||
review = ReviewersApplications.query.\
|
||||
filter_by(application_id=id).\
|
||||
@@ -40,10 +43,11 @@ def view(id):
|
||||
|
||||
return render_template('applications/view.html',
|
||||
title='applications',
|
||||
application=Application.query.get_or_404(id),
|
||||
application=application,
|
||||
review=review,
|
||||
reviews=reviews,
|
||||
comment_form=comment_form)
|
||||
comment_form=comment_form,
|
||||
application_status_form=application_status_form)
|
||||
|
||||
@applications.route('/vote/<int:approved>/<int:id>')
|
||||
@roles_accepted('bfct_board', 'bfct_manager', 'admin')
|
||||
@@ -85,10 +89,7 @@ def vote(approved, id):
|
||||
@roles_accepted('bfct_manager', 'admin')
|
||||
def final_review(approved, id):
|
||||
application = Application.query.get_or_404(id)
|
||||
|
||||
if application.status != 'under_review':
|
||||
return 'error'
|
||||
else:
|
||||
if application.status in ['under_review', 'pending']:
|
||||
if approved:
|
||||
application.status = 'approved'
|
||||
else:
|
||||
@@ -96,9 +97,11 @@ def final_review(approved, id):
|
||||
review_end_date = datetime.datetime.now()
|
||||
application.review_end_date = review_end_date
|
||||
application.renewal_date = review_end_date + relativedelta(years=1)
|
||||
db.session.add(application)
|
||||
db.session.add(application)
|
||||
|
||||
db.session.commit()
|
||||
db.session.commit()
|
||||
else:
|
||||
return abort(404)
|
||||
return redirect(url_for('.view', id=id))
|
||||
|
||||
|
||||
@@ -135,3 +138,13 @@ def update_bfct_role(application_id):
|
||||
user_datastore.remove_role_from_user(user, 'bfct_trainer')
|
||||
db.session.commit()
|
||||
return redirect(url_for('.view', id=application_id))
|
||||
|
||||
|
||||
@applications.route('/edit/<int:application_id>/status/<status>')
|
||||
@roles_accepted('bfct_manager', 'admin')
|
||||
def set_status(application_id, status):
|
||||
application = Application.query.get_or_404(application_id)
|
||||
application.status = status
|
||||
|
||||
db.session.commit()
|
||||
return 'ok'
|
||||
|
@@ -1,5 +1,10 @@
|
||||
from flask_wtf import Form
|
||||
from wtforms import TextField, TextAreaField, BooleanField, SelectMultipleField
|
||||
from wtforms import TextField
|
||||
from wtforms import TextAreaField
|
||||
from wtforms import BooleanField
|
||||
from wtforms import SelectMultipleField
|
||||
from wtforms import SelectField
|
||||
|
||||
from wtforms.validators import DataRequired
|
||||
from wtforms.fields.html5 import URLField
|
||||
from wtforms.validators import url
|
||||
@@ -18,3 +23,13 @@ class ApplicationForm(Form):
|
||||
|
||||
class CommentForm(Form):
|
||||
text = TextAreaField('Your comment', validators=[DataRequired()])
|
||||
|
||||
class ApplicationStatusForm(Form):
|
||||
status = SelectField('Status',
|
||||
choices=[
|
||||
('submitted', 'Submitted'),
|
||||
('under_review', 'Under Review'),
|
||||
('pending', 'Pending subscription'),
|
||||
('approved', 'Approved'),
|
||||
('rejected', 'Rejected')],
|
||||
id="set_status")
|
||||
|
@@ -49,6 +49,16 @@
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h3>Application Status</h3>
|
||||
{% if current_user.has_role('admin') %}
|
||||
<div class="row jobs-admin">
|
||||
<div class="col-md-6 col-sm-6 col-xs-6">
|
||||
Job Status:
|
||||
</div>
|
||||
<div class="col-md-6 col-sm-6 col-xs-6">
|
||||
{{ application_status_form.status }}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="box">
|
||||
{% if application.status == 'under_review' %}
|
||||
<i class="backicon fa fa-clock-o"></i>
|
||||
@@ -203,3 +213,17 @@
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block footer_scripts %}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
{% if current_user.has_role('network_admin') %}
|
||||
$( "#set_status" ).change(function() {
|
||||
$.get( "{{config.SUBFOLDER}}" + "/applications/edit/" + {{application.id}} + "/status/" + $(this).val());
|
||||
console.log($(this).val());
|
||||
});
|
||||
{% endif %}
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
|
Reference in New Issue
Block a user