added result_notification_prepare view and stubbed out result_notification_send
This commit is contained in:
		
							parent
							
								
									3c2a0de89d
								
							
						
					
					
						commit
						5fefff0a3d
					
				
					 3 changed files with 83 additions and 38 deletions
				
			
		|  | @ -10,6 +10,7 @@ urlpatterns = patterns("symposion.reviews.views", | ||||||
|     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"), | ||||||
|  |     url(r"^section/(?P<section_slug>[\w\-]+)/notification/(?P<status>\w+)/prepare/$", "result_notification_prepare", name="result_notification_prepare"), | ||||||
|      |      | ||||||
|     url(r"^review/(?P<pk>\d+)/$", "review_detail", name="review_detail"), |     url(r"^review/(?P<pk>\d+)/$", "review_detail", name="review_detail"), | ||||||
|      |      | ||||||
|  |  | ||||||
|  | @ -1,4 +1,5 @@ | ||||||
| from django.db.models import Q | from django.db.models import Q | ||||||
|  | from django.http import HttpResponseBadRequest, HttpResponseNotAllowed | ||||||
| from django.shortcuts import render, redirect, get_object_or_404 | from django.shortcuts import render, redirect, get_object_or_404 | ||||||
| from django.views.decorators.http import require_POST | from django.views.decorators.http import require_POST | ||||||
| 
 | 
 | ||||||
|  | @ -380,6 +381,41 @@ def result_notification(request, section_slug, status): | ||||||
|      |      | ||||||
|     ctx = { |     ctx = { | ||||||
|         "section_slug": section_slug, |         "section_slug": section_slug, | ||||||
|  |         "status": status, | ||||||
|         "proposals": proposals, |         "proposals": proposals, | ||||||
|     } |     } | ||||||
|     return render(request, "reviews/result_notification.html", ctx) |     return render(request, "reviews/result_notification.html", ctx) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @login_required | ||||||
|  | def result_notification_prepare(request, section_slug, status): | ||||||
|  |     if request.method != "POST": | ||||||
|  |         return HttpResponseNotAllowed(["POST"]) | ||||||
|  |      | ||||||
|  |     proposal_pks = [] | ||||||
|  |     try: | ||||||
|  |         for pk in request.POST.getlist("_selected_action"): | ||||||
|  |             proposal_pks.append(int(pk)) | ||||||
|  |     except ValueError: | ||||||
|  |         return HttpResponseBadRequest() | ||||||
|  |     proposals = ProposalBase.objects.filter( | ||||||
|  |         kind__section__slug=section_slug, | ||||||
|  |         result__status=status, | ||||||
|  |     ) | ||||||
|  |     proposals = proposals.filter(pk__in=proposal_pks) | ||||||
|  |     proposals = proposals.select_related("speaker__user", "result") | ||||||
|  |     proposals = proposals.select_subclasses() | ||||||
|  |      | ||||||
|  |     ctx = { | ||||||
|  |         "section_slug": section_slug, | ||||||
|  |         "status": status, | ||||||
|  |         "proposals": proposals, | ||||||
|  |     } | ||||||
|  |     return render(request, "reviews/result_notification_prepare.html", ctx) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def result_notification_send(request, section_slug, status): | ||||||
|  |     if request.method != "POST": | ||||||
|  |         return HttpResponseNotAllowed(["POST"]) | ||||||
|  |      | ||||||
|  |     # @@@ discuss with jtauber about how to handle this | ||||||
|  |  | ||||||
|  | @ -15,44 +15,52 @@ | ||||||
|      |      | ||||||
|     <span class="action-counter">0</span> selected |     <span class="action-counter">0</span> selected | ||||||
|      |      | ||||||
|     <table class="table table-striped table-bordered"> |     <form method="post" action="{% url result_notification_prepare section_slug status %}"> | ||||||
|         <thead> |  | ||||||
|             <th><input type="checkbox" id="action-toggle"></th> |  | ||||||
|             <th>#</th> |  | ||||||
|             <th>{% trans "Speaker / Title" %}</th> |  | ||||||
|             <th>{% trans "Category" %}</th> |  | ||||||
|             <th>{% trans "Status" %}</th> |  | ||||||
|             <th>{% trans "Notified?" %}</th> |  | ||||||
|         </thead> |  | ||||||
|          |          | ||||||
|         <tbody> |         {% csrf_token %} | ||||||
|             {% for proposal in proposals %} |          | ||||||
|                 <tr> |         <table class="table table-striped table-bordered"> | ||||||
|                     <td><input class="action-select" type="checkbox" name="_selected_action" value="{{ proposal.pk }}"></td> |             <thead> | ||||||
|                     <td>{{ proposal.number }}</td> |                 <th><input type="checkbox" id="action-toggle"></th> | ||||||
|                     <td> |                 <th>#</th> | ||||||
|                         <a href="{% url review_detail proposal.pk %}"> |                 <th>{% trans "Speaker / Title" %}</th> | ||||||
|                             <small><strong>{{ proposal.speaker }}</strong></small> |                 <th>{% trans "Category" %}</th> | ||||||
|                             <br /> |                 <th>{% trans "Status" %}</th> | ||||||
|                             {{ proposal.title }} |                 <th>{% trans "Notified?" %}</th> | ||||||
|                         </a> |             </thead> | ||||||
|                     </td> |              | ||||||
|                     <td>{{ proposal.track }}</td> |             <tbody> | ||||||
|                     <td> |                 {% for proposal in proposals %} | ||||||
|                         {% with proposal.result.status as status %} |                     <tr> | ||||||
|                             <div class="{{ status }}"> |                         <td><input class="action-select" type="checkbox" name="_selected_action" value="{{ proposal.pk }}"></td> | ||||||
|                                 {% if status != "undecided" %} |                         <td>{{ proposal.number }}</td> | ||||||
|                                     <span>{{ status }}</span> |                         <td> | ||||||
|                                 {% endif %} |                             <a href="{% url review_detail proposal.pk %}"> | ||||||
|                             </div> |                                 <small><strong>{{ proposal.speaker }}</strong></small> | ||||||
|                         {% endwith %} |                                 <br /> | ||||||
|                     </td> |                                 {{ proposal.title }} | ||||||
|                     <td> |                             </a> | ||||||
|                     </td> |                         </td> | ||||||
|                 </tr> |                         <td>{{ proposal.track }}</td> | ||||||
|             {% endfor %} |                         <td> | ||||||
|         </tbody> |                             {% with proposal.result.status as status %} | ||||||
|     </table> |                                 <div class="{{ status }}"> | ||||||
|  |                                     {% if status != "undecided" %} | ||||||
|  |                                         <span>{{ status }}</span> | ||||||
|  |                                     {% endif %} | ||||||
|  |                                 </div> | ||||||
|  |                             {% endwith %} | ||||||
|  |                         </td> | ||||||
|  |                         <td> | ||||||
|  |                         </td> | ||||||
|  |                     </tr> | ||||||
|  |                 {% endfor %} | ||||||
|  |             </tbody> | ||||||
|  |         </table> | ||||||
|  |          | ||||||
|  |         <button type="submit" class="btn btn-primary">POST IT</button> | ||||||
|  |          | ||||||
|  |     </form> | ||||||
| {% endblock %} | {% endblock %} | ||||||
| 
 | 
 | ||||||
| {% block extra_script %} | {% block extra_script %} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Brian Rosner
						Brian Rosner