diff --git a/symposion/reviews/templatetags/review_tags.py b/symposion/reviews/templatetags/review_tags.py index 33471b33..9a73f878 100644 --- a/symposion/reviews/templatetags/review_tags.py +++ b/symposion/reviews/templatetags/review_tags.py @@ -5,14 +5,6 @@ from symposion.reviews.models import Review, ReviewAssignment register = template.Library() - -@register.assignment_tag(takes_context=True) -def user_reviews(context): - request = context["request"] - reviews = Review.objects.filter(user=request.user) - return reviews - - @register.assignment_tag(takes_context=True) def review_assignments(context): request = context["request"] diff --git a/symposion/reviews/urls.py b/symposion/reviews/urls.py index b0968bca..564bd35e 100644 --- a/symposion/reviews/urls.py +++ b/symposion/reviews/urls.py @@ -2,7 +2,9 @@ from django.conf.urls.defaults import patterns, url urlpatterns = patterns("symposion.reviews.views", - url(r"^section/(?P[\w\-]+)/$", "review_section", name="review_section"), + url(r"^section/(?P[\w\-]+)/all/$", "review_section", {"reviewed": "all"}, name="review_section"), + url(r"^section/(?P[\w\-]+)/reviewed/$", "review_section", {"reviewed": "reviewed"}, name="user_reviewed"), + url(r"^section/(?P[\w\-]+)/not_reviewed/$", "review_section", {"reviewed": "not_reviewed"}, name="user_not_reviewed"), url(r"^section/(?P[\w\-]+)/assignments/$", "review_section", {"assigned": True}, name="review_section_assignments"), url(r"^section/(?P[\w\-]+)/status/$", "review_status", name="review_status"), url(r"^section/(?P[\w\-]+)/status/(?P\w+)/$", "review_status", name="review_status"), diff --git a/symposion/reviews/views.py b/symposion/reviews/views.py index 78258771..56ad0e87 100644 --- a/symposion/reviews/views.py +++ b/symposion/reviews/views.py @@ -62,8 +62,10 @@ def proposals_generator(request, queryset, user_pk=None, check_speaker=True): yield obj +# Returns a list of all proposals, proposals reviewed by the user, or the proposals the user has yet to review +# depending on the link user clicks in dashboard @login_required -def review_section(request, section_slug, assigned=False): +def review_section(request, section_slug, assigned=False, reviewed='all'): if not request.user.has_perm("reviews.can_review_%s" % section_slug): return access_not_permitted(request) @@ -74,19 +76,28 @@ def review_section(request, section_slug, assigned=False): if assigned: assignments = ReviewAssignment.objects.filter(user=request.user).values_list("proposal__id") queryset = queryset.filter(id__in=assignments) - - queryset = queryset.select_related("result").select_subclasses() - + +# passing reviewed in from reviews.urls and out to review_list for appropriate template header rendering + if reviewed == 'all': + queryset = queryset.select_related("result").select_subclasses() + reviewed = 'all_reviews' + elif reviewed == 'reviewed': + queryset = queryset.filter(reviews__user=request.user) + reviewed = 'user_reviewed' + else: + queryset = queryset.exclude(reviews__user=request.user).exclude(speaker=request.user) + reviewed = 'user_not_reviewed' + proposals = proposals_generator(request, queryset) ctx = { "proposals": proposals, "section": section, + "reviewed": reviewed, } return render(request, "reviews/review_list.html", ctx) - @login_required def review_list(request, section_slug, user_pk): diff --git a/symposion/speakers/models.py b/symposion/speakers/models.py index 0dd503ec..c86c9aa2 100644 --- a/symposion/speakers/models.py +++ b/symposion/speakers/models.py @@ -26,12 +26,16 @@ class Speaker(models.Model): default = datetime.datetime.now, editable = False ) + + class Meta: + ordering = ['name'] def __unicode__(self): if self.user: return self.name else: return "?" + def get_absolute_url(self): return reverse("speaker_edit") diff --git a/symposion/sponsorship/views.py b/symposion/sponsorship/views.py index 99d37b1b..22b4f243 100644 --- a/symposion/sponsorship/views.py +++ b/symposion/sponsorship/views.py @@ -35,7 +35,7 @@ def sponsor_add(request): sponsor = form.save(commit=False) sponsor.active = True sponsor.save() - return redirect("dashboard") + return redirect("sponsor_detail", pk=sponsor.pk) else: form = SponsorApplicationForm(user=request.user) diff --git a/symposion/templates/dashboard.html b/symposion/templates/dashboard.html index edac0060..a88b4a3f 100644 --- a/symposion/templates/dashboard.html +++ b/symposion/templates/dashboard.html @@ -131,38 +131,19 @@

{% trans "Reviews" %}

- {% user_reviews as user_reviews %} +
-

Review Sections

+

Reviews by Section

-

Proposals you have reviewed

- - - - - - - - {% for review in user_reviews %} - - - - - - {% endfor %} - -
#Speaker / TitleYour Vote
{{ review.proposal.number }} - {{ review.proposal.speaker }} -
- {{ review.proposal.title }} -
{{ review.vote }}
- {% comment %}

My Assignments

diff --git a/symposion/templates/reviews/review_list.html b/symposion/templates/reviews/review_list.html index 8da4cb68..36504604 100644 --- a/symposion/templates/reviews/review_list.html +++ b/symposion/templates/reviews/review_list.html @@ -1,6 +1,14 @@ {% extends "reviews/base.html" %} {% block body %} -

{{ section }}

+

{{ section }}

+ {% if reviewed == 'all_reviews' %} +

All proposals

+ {% elif reviewed == 'user_reviewed' %} +

Proposals you have reviewed

+ {% else %} +

Proposals you have not yet reviewed

+ {% endif %} + {% include "reviews/_review_table.html" %} {% endblock %}