From fecc9076874f5de2ad28e8a43973eba0e472c1ef Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Wed, 6 Mar 2013 19:00:56 +0000 Subject: [PATCH] Ensure we switch to the master branch for reviewing Newly submitted layers don't have anything other than a master branch, so they won't display properly unless we have master selected; so just add a parameter to submission email and review URLs to ensure that is the case. Signed-off-by: Paul Eggleton --- layerindex/views.py | 13 ++++++++++++- templates/base.html | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/layerindex/views.py b/layerindex/views.py index d5a43e1..f73f4d7 100644 --- a/layerindex/views.py +++ b/layerindex/views.py @@ -128,7 +128,7 @@ def edit_layer_view(request, template_name, slug=None): d = Context({ 'user_name': user.get_full_name(), 'layer_name': layeritem.name, - 'layer_url': request.build_absolute_uri(layeritem.get_absolute_url()), + 'layer_url': request.build_absolute_uri(layeritem.get_absolute_url()) + '?branch=master', }) subject = '%s - %s' % (settings.SUBMIT_EMAIL_SUBJECT, layeritem.name) from_email = settings.SUBMIT_EMAIL_FROM @@ -148,6 +148,12 @@ def edit_layer_view(request, template_name, slug=None): 'deplistlayers': deplistlayers, }) +def _check_branch(request): + branchname = request.GET.get('branch', '') + if branchname: + branch = get_object_or_404(Branch, name=branchname) + request.session['branch'] = branch.name + def switch_branch_view(request, slug): branch = get_object_or_404(Branch, name=slug) request.session['branch'] = branch.name @@ -180,6 +186,10 @@ class LayerListView(ListView): return context class LayerReviewListView(ListView): + def dispatch(self, request, *args, **kwargs): + _check_branch(request) + return super(LayerReviewListView, self).dispatch(request, *args, **kwargs) + def get_queryset(self): return LayerBranch.objects.filter(branch__name=self.request.session.get('branch', 'master')).filter(layer__status='N').order_by('layer__name') @@ -189,6 +199,7 @@ class LayerDetailView(DetailView): # This is a bit of a mess. Surely there has to be a better way to handle this... def dispatch(self, request, *args, **kwargs): + _check_branch(request) self.user = request.user res = super(LayerDetailView, self).dispatch(request, *args, **kwargs) l = self.get_object() diff --git a/templates/base.html b/templates/base.html index bd6ed47..846a5c8 100644 --- a/templates/base.html +++ b/templates/base.html @@ -56,7 +56,7 @@ {% block submitlink %}
  • Submit layer
  • {% endblock %} {% if user.is_authenticated %} {% if perms.layeritem.publish_layer %} -
  • +
  • Review {% if unpublished_count > 0 %} {{ unpublished_count }}