Author: mbonetti
Date: Tue Apr 28 06:53:33 2009
New Revision: 486

Modified:
    branches/electron/pages/admin/__init__.py
    branches/electron/pages/media/pages/javascript/change_form.js
    branches/electron/pages/utils.py

Log:
Persist the language and template GET arguments, both on "save and continue  
editing" and when switching language and template (which also submits)

Modified: branches/electron/pages/admin/__init__.py
==============================================================================
--- branches/electron/pages/admin/__init__.py   (original)
+++ branches/electron/pages/admin/__init__.py   Tue Apr 28 06:53:33 2009
@@ -13,7 +13,7 @@

  from pages import settings
  from pages.models import Page, Content
-from pages.utils import get_template_from_request,  
has_page_add_permission, get_language_from_request
+from pages.utils import get_template_from_request,  
has_page_add_permission, get_language_from_request, break_here

  from pages.admin import widgets
  from pages.utils import get_placeholders
@@ -73,7 +73,6 @@
          )]

      def __call__(self, request, url):
-        print  request.GET

          # Delegate to the appropriate method, based on the URL.
          if url is None:
@@ -100,7 +99,22 @@
              return change_status(request, unquote(url[:-24]),  
Page.PUBLISHED)
          elif url.endswith('/change-status-hidden'):
              return change_status(request, unquote(url[:-21]), Page.HIDDEN)
-        return super(PageAdmin, self).__call__(request, url)
+        ret = super(PageAdmin, self).__call__(request, url)
+
+
+        """
+        Persist the language and template GET arguments, both on "save and  
keep
+        editing" and when switching language and template (which also  
submits)
+        """
+        if HttpResponseRedirect == type(ret) and  
(request.GET.get('new_language', False) or request.GET.get('new_template',  
False) or request.GET.get('language', False) or request.GET.get('template',  
False)):
+            for item in ret.items():
+                if 'Location' == item[0]:
+                    new_uri = item[1] + \
+                        '?language=' + request.GET.get('new_language',  
request.GET.get('language', '')) + \
+                        '&template=' + request.GET.get('new_template',  
request.GET.get('template', ''))
+                    ret = HttpResponseRedirect(new_uri)
+                    break
+        return ret

      def i18n_javascript(self, request):
          """

Modified: branches/electron/pages/media/pages/javascript/change_form.js
==============================================================================
--- branches/electron/pages/media/pages/javascript/change_form.js       
(original)
+++ branches/electron/pages/media/pages/javascript/change_form.js       Tue Apr 
 
28 06:53:33 2009
@@ -46,10 +46,12 @@
      $.each(['language', 'template'], function(i, label) {
          var select = $('#id_'+label);
          if (select.length) {
+            var orig_ = select.val();
              select.change(function() {
-                var href = window.location.href.split('?');
-                var query = $.query.set(label, select.val()).toString();
-                window.location.href = href[0]+query;
+                var query = $.query.set(label,  
orig_).set('new_'+label,select.val()).toString();
+                select.val(orig_);
+                $('#page_form').attr('action',query);
+                $('input[name=_continue]').click();
              });
          }
      });

Modified: branches/electron/pages/utils.py
==============================================================================
--- branches/electron/pages/utils.py    (original)
+++ branches/electron/pages/utils.py    Tue Apr 28 06:53:33 2009
@@ -1,16 +1,16 @@
  # -*- coding: utf-8 -*-
-from django.template import loader, Context, RequestContext,  
TemplateDoesNotExist
-from django.template.loader_tags import ExtendsNode
+from django.conf import settings as django_settings
+from django.contrib.sites.models import Site, RequestSite, SITE_CACHE
+from django.core.handlers.base import BaseHandler
+from django.core.handlers.wsgi import WSGIRequest
+from django.db.models import signals
  from django.http import Http404
+from django.http import HttpResponse, HttpResponseRedirect,  
HttpResponsePermanentRedirect
  from django.shortcuts import render_to_response
  from django.template import RequestContext
-from django.db.models import signals
-from django.http import HttpResponse, HttpResponseRedirect,  
HttpResponsePermanentRedirect
-from django.core.handlers.wsgi import WSGIRequest
-from django.contrib.sites.models import Site, RequestSite, SITE_CACHE
-from django.core.handlers.base import BaseHandler
+from django.template import loader, Context, RequestContext,  
TemplateDoesNotExist
+from django.template.loader_tags import ExtendsNode
  from pages import settings
-from exceptions import Exception as Except

  def get_request_mock():
      bh = BaseHandler()
@@ -169,3 +169,12 @@
              if page.get_url(lang) == relative_url:
                  return page
      return None
+
+def break_here():
+    """ your friendly pdf debug prompt """
+    if django_settings.DEBUG:
+        try:
+            import ipdb as pdb
+        except ImportError:
+            import pdb;
+        pdb.set_trace()

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pinax-updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/pinax-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to