Merge pull request #41 from lca2017/chrisjrn/20160815
Adds more fields to /review/admin
This commit is contained in:
commit
4f71de1dbf
2 changed files with 41 additions and 20 deletions
|
@ -25,7 +25,7 @@ urlpatterns = [
|
||||||
url(r"^section/(?P<section_slug>[\w\-]+)/assignments/$", review_section, {"assigned": True}, name="review_section_assignments"),
|
url(r"^section/(?P<section_slug>[\w\-]+)/assignments/$", review_section, {"assigned": True}, name="review_section_assignments"),
|
||||||
url(r"^section/(?P<section_slug>[\w\-]+)/status/$", review_status, name="review_status"),
|
url(r"^section/(?P<section_slug>[\w\-]+)/status/$", review_status, name="review_status"),
|
||||||
url(r"^section/(?P<section_slug>[\w\-]+)/status/(?P<key>\w+)/$", review_status, name="review_status"),
|
url(r"^section/(?P<section_slug>[\w\-]+)/status/(?P<key>\w+)/$", review_status, name="review_status"),
|
||||||
url(r"^section/(?P<section_slug>[\w\-]+)/list/(?P<user_pk>\d+)/$", review_list, name="review_list_user"),
|
url(r"^section/(?P<section_slug>[\w\-]+)/list_reviewer/(?P<user_pk>\d+)/$", review_list, name="review_list_user"),
|
||||||
url(r"^section/(?P<section_slug>[\w\-]+)/admin/$", review_admin, name="review_admin"),
|
url(r"^section/(?P<section_slug>[\w\-]+)/admin/$", review_admin, name="review_admin"),
|
||||||
url(r"^section/(?P<section_slug>[\w\-]+)/admin/accept/$", review_bulk_accept, name="review_bulk_accept"),
|
url(r"^section/(?P<section_slug>[\w\-]+)/admin/accept/$", review_bulk_accept, name="review_bulk_accept"),
|
||||||
url(r"^section/(?P<section_slug>[\w\-]+)/notification/(?P<status>\w+)/$", result_notification, name="result_notification"),
|
url(r"^section/(?P<section_slug>[\w\-]+)/notification/(?P<status>\w+)/$", result_notification, name="result_notification"),
|
||||||
|
|
|
@ -147,6 +147,10 @@ def review_all_proposals_csv(request):
|
||||||
''' Returns a CSV representation of all of the proposals this user has
|
''' Returns a CSV representation of all of the proposals this user has
|
||||||
permisison to review. '''
|
permisison to review. '''
|
||||||
|
|
||||||
|
response = HttpResponse("text/csv")
|
||||||
|
response['Content-Disposition'] = 'attachment; filename="proposals.csv"'
|
||||||
|
writer = csv.writer(response, quoting=csv.QUOTE_NONNUMERIC)
|
||||||
|
|
||||||
queryset = ProposalBase.objects.filter()
|
queryset = ProposalBase.objects.filter()
|
||||||
|
|
||||||
# The fields from each proposal object to report in the csv
|
# The fields from each proposal object to report in the csv
|
||||||
|
@ -156,9 +160,6 @@ def review_all_proposals_csv(request):
|
||||||
"score", "total_votes", "minus_two", "minus_one", "plus_one", "plus_two",
|
"score", "total_votes", "minus_two", "minus_one", "plus_one", "plus_two",
|
||||||
]
|
]
|
||||||
|
|
||||||
output = StringIO.StringIO()
|
|
||||||
writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC)
|
|
||||||
|
|
||||||
# Fields are the heading
|
# Fields are the heading
|
||||||
writer.writerow(fields)
|
writer.writerow(fields)
|
||||||
|
|
||||||
|
@ -180,7 +181,7 @@ def review_all_proposals_csv(request):
|
||||||
|
|
||||||
writer.writerow(csv_line)
|
writer.writerow(csv_line)
|
||||||
|
|
||||||
return HttpResponse(output.getvalue(), "text/csv")
|
return response
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@ -237,7 +238,7 @@ def review_list(request, section_slug, user_pk):
|
||||||
ctx = {
|
ctx = {
|
||||||
"proposals": proposals,
|
"proposals": proposals,
|
||||||
}
|
}
|
||||||
return (request, "symposion/reviews/review_list.html", ctx)
|
return render(request, "symposion/reviews/review_list.html", ctx)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@ -257,23 +258,37 @@ def review_admin(request, section_slug):
|
||||||
already_seen.add(user.pk)
|
already_seen.add(user.pk)
|
||||||
|
|
||||||
user.comment_count = Review.objects.filter(user=user).count()
|
user.comment_count = Review.objects.filter(user=user).count()
|
||||||
user.total_votes = LatestVote.objects.filter(user=user).count()
|
user_votes = LatestVote.objects.filter(
|
||||||
user.plus_two = LatestVote.objects.filter(
|
|
||||||
user=user,
|
user=user,
|
||||||
vote=LatestVote.VOTES.PLUS_TWO
|
proposal__kind__section__slug=section_slug,
|
||||||
|
)
|
||||||
|
print section_slug
|
||||||
|
print [vote.proposal.kind.section.slug for vote in user_votes]
|
||||||
|
user.total_votes = user_votes.exclude(
|
||||||
|
vote=LatestVote.VOTES.ABSTAIN,
|
||||||
).count()
|
).count()
|
||||||
user.plus_one = LatestVote.objects.filter(
|
user.plus_two = user_votes.filter(
|
||||||
user=user,
|
vote=LatestVote.VOTES.PLUS_TWO,
|
||||||
vote=LatestVote.VOTES.PLUS_ONE
|
|
||||||
).count()
|
).count()
|
||||||
user.minus_one = LatestVote.objects.filter(
|
user.plus_one = user_votes.filter(
|
||||||
user=user,
|
vote=LatestVote.VOTES.PLUS_ONE,
|
||||||
vote=LatestVote.VOTES.MINUS_ONE
|
|
||||||
).count()
|
).count()
|
||||||
user.minus_two = LatestVote.objects.filter(
|
user.minus_one = user_votes.filter(
|
||||||
user=user,
|
vote=LatestVote.VOTES.MINUS_ONE,
|
||||||
vote=LatestVote.VOTES.MINUS_TWO
|
|
||||||
).count()
|
).count()
|
||||||
|
user.minus_two = user_votes.filter(
|
||||||
|
vote=LatestVote.VOTES.MINUS_TWO,
|
||||||
|
).count()
|
||||||
|
user.abstain = user_votes.filter(
|
||||||
|
vote=LatestVote.VOTES.ABSTAIN,
|
||||||
|
).count()
|
||||||
|
if user.total_votes == 0:
|
||||||
|
user.average = "-"
|
||||||
|
else:
|
||||||
|
user.average = (
|
||||||
|
user.plus_two + user.plus_one +
|
||||||
|
user.minus_one + user.minus_two
|
||||||
|
) / (user.total_votes * 1.0)
|
||||||
|
|
||||||
yield user
|
yield user
|
||||||
|
|
||||||
|
@ -310,7 +325,7 @@ def review_detail(request, pk):
|
||||||
if request.user in speakers:
|
if request.user in speakers:
|
||||||
return access_not_permitted(request)
|
return access_not_permitted(request)
|
||||||
|
|
||||||
if "vote_submit" in request.POST:
|
if "vote_submit" in request.POST or "vote_submit_and_random" in request.POST:
|
||||||
review_form = ReviewForm(request.POST)
|
review_form = ReviewForm(request.POST)
|
||||||
if review_form.is_valid():
|
if review_form.is_valid():
|
||||||
|
|
||||||
|
@ -319,7 +334,13 @@ def review_detail(request, pk):
|
||||||
review.proposal = proposal
|
review.proposal = proposal
|
||||||
review.save()
|
review.save()
|
||||||
|
|
||||||
return redirect(request.path)
|
if "vote_submit_and_random" in request.POST:
|
||||||
|
next_page = redirect("user_random", proposal.kind.section.slug)
|
||||||
|
next_page["Location"] += "#invalid_fragment" # Hack.
|
||||||
|
else:
|
||||||
|
next_page = redirect(request.path)
|
||||||
|
|
||||||
|
return next_page
|
||||||
else:
|
else:
|
||||||
message_form = SpeakerCommentForm()
|
message_form = SpeakerCommentForm()
|
||||||
elif "message_submit" in request.POST and admin:
|
elif "message_submit" in request.POST and admin:
|
||||||
|
|
Loading…
Reference in a new issue