Exemplo n.º 1
0
def work_review(work_id):
    current_reviewer = current_user.reviewer
    work = Work.get_by_id(work_id)
    form = WorkReviewForm()
    review = Review.query.filter_by(work_id=work_id, reviewer_id=current_reviewer.id).first()
    if not review:
        flash("You're trying to review a work not assigned to you.", 'warning')
        return redirect(url_for('reviewer.works_review_panel'))

    if form.validate_on_submit():
        review.update(score=form.score.data, comment=form.comment.data)
        flash("Work successfully scored. You're all set.", 'success')
        return redirect(url_for('reviewer.works_review_panel'))
    else:
        flash_errors(form)

    if request.method == 'GET':
        form.score.data = review.score
        form.comment.data = review.comment

    return render_template('reviewer/work_review.html', form=form, work=work)
Exemplo n.º 2
0
def work_assign(event_id, work_id):
    current_work = Work.get_by_id(work_id)
    reviewer_list = Reviewer.query.order_by('id').all()
    form = WorksAssignForm()
    form.reviewers.choices = [(r.id, r.name) for r in reviewer_list]
    current_assignment = Review.query.filter_by(work_id=work_id).all()
    if form.validate_on_submit():
        selected_reviewers = form.reviewers.data
        for reviewer_id in selected_reviewers:
            if not Review.query.filter_by(work_id=work_id, reviewer_id=reviewer_id).first():
                Review.create(work_id=work_id, reviewer_id=reviewer_id, work=current_work, reviewer=Reviewer.get_by_id(reviewer_id))
        for review in current_assignment:
            if review.reviewer_id not in selected_reviewers:
                review.delete()
        flash("Work assigned successfully. You're all set.", 'success')
        return redirect(url_for('admin.event_detail', event_id=event_id))
    else:
        flash_errors(form)

    if request.method == 'GET' :
       current_assignment_id = [r.reviewer_id for r in current_assignment]
       form.reviewers.data = current_assignment_id
    return render_template('admin/event_works_assign.html', event_id=event_id, form=form, work=current_work)