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
-~----------~----~----~----~------~----~------~--~---