Author: mbonetti
Date: Tue May 5 04:59:18 2009
New Revision: 501
Modified:
branches/electron/pages/admin/__init__.py
branches/electron/pages/admin/views.py
branches/electron/pages/models.py
branches/electron/pages/utils.py
Log:
pass the real language code down to the mock_request object, to prevent
ajax calls from returning content in the wrong language (the
LocaleMiddleware couldn't determine the correct language from the
mock_request)
Modified: branches/electron/pages/admin/__init__.py
==============================================================================
--- branches/electron/pages/admin/__init__.py (original)
+++ branches/electron/pages/admin/__init__.py Tue May 5 04:59:18 2009
@@ -147,14 +147,14 @@
except self.model.DoesNotExist:
pass
else:
- target.invalidate()
+ target.invalidate(request.LANGUAGE_CODE)
obj.move_to(target, position)
for mandatory_placeholder in self.mandatory_placeholders:
Content.objects.set_or_create_content(obj, language,
mandatory_placeholder,
form.cleaned_data[mandatory_placeholder])
- for placeholder in get_placeholders(obj.get_template()):
+ for placeholder in get_placeholders(obj.get_template(),
request.LANGUAGE_CODE):
if placeholder.name in form.cleaned_data:
if change:
if placeholder.name not in self.mandatory_placeholders:
@@ -170,7 +170,7 @@
Content.objects.set_or_create_content(obj, language,
placeholder.name,
form.cleaned_data[placeholder.name])
- obj.invalidate()
+ obj.invalidate(request.LANGUAGE_CODE)
def get_fieldsets(self, request, obj=None):
"""
@@ -181,7 +181,7 @@
placeholder_fieldsets = []
template = get_template_from_request(request, obj)
- for placeholder in get_placeholders(template):
+ for placeholder in get_placeholders(template,
request.LANGUAGE_CODE):
if placeholder.name not in self.mandatory_placeholders:
placeholder_fieldsets.append(placeholder.name)
@@ -278,7 +278,7 @@
if not validate_field:
form.base_fields[field_name].required = False
- for placeholder in get_placeholders(template):
+ for placeholder in get_placeholders(template,
request.LANGUAGE_CODE):
widget = self.get_widget(request, placeholder.widget)()
if placeholder.parsed:
help_text = _('Note: This field is evaluated as template
code.')
@@ -312,7 +312,7 @@
else:
template = get_template_from_request(request, obj)
extra_context = {
- 'placeholders': get_placeholders(template),
+ 'placeholders': get_placeholders(template,
request.LANGUAGE_CODE),
'language': get_language_from_request(request),
'traduction_language': [l for l in settings.PAGE_LANGUAGES
if Content.objects.get_content(obj, l[0], "title")],
'page': obj,
@@ -380,8 +380,8 @@
# to display this message
# _('Page could not been moved.')
else:
- page.invalidate()
- target.invalidate()
+ page.invalidate(request.LANGUAGE_CODE)
+ target.invalidate(request.LANGUAGE_CODE)
page.move_to(target, position)
return self.list_pages(request,
template_name='admin/pages/page/change_list_table.html')
Modified: branches/electron/pages/admin/views.py
==============================================================================
--- branches/electron/pages/admin/views.py (original)
+++ branches/electron/pages/admin/views.py Tue May 5 04:59:18 2009
@@ -35,7 +35,7 @@
else:
Content.objects.set_or_create_content(page, language_id,
content_id, content)
- page.invalidate()
+ page.invalidate(request.LANGUAGE_CODE)
return HttpResponse('ok')
raise Http404
modify_content = staff_member_required(modify_content)
@@ -44,7 +44,7 @@
page = Page.objects.get(pk=page_id)
context = {}
lang = language_id
- placeholders = get_placeholders(page.get_template())
+ placeholders = get_placeholders(page.get_template(),
request.LANGUAGE_CODE)
if Content.objects.get_content(page, language_id, "title") is None:
language_error = True
return 'pages/traduction_helper.html', locals()
Modified: branches/electron/pages/models.py
==============================================================================
--- branches/electron/pages/models.py (original)
+++ branches/electron/pages/models.py Tue May 5 04:59:18 2009
@@ -108,13 +108,13 @@
"""Return children of the page for the frontend """
return Page.objects.filter_published(self.get_children())
- def invalidate(self):
+ def invalidate(self, language_code=None):
"""Invalidate a page and it's descendants"""
cache.delete(self.PAGE_LANGUAGES_KEY % (self.id))
cache.delete(self.PAGE_TEMPLATE_KEY % (self.id))
- p_names = [p.name for p in get_placeholders(self.get_template())]
+ p_names = [p.name for p in get_placeholders(self.get_template(),
language_code)]
if 'slug' not in p_names:
p_names.append('slug')
if 'title' not in p_names:
Modified: branches/electron/pages/utils.py
==============================================================================
--- branches/electron/pages/utils.py (original)
+++ branches/electron/pages/utils.py Tue May 5 04:59:18 2009
@@ -12,7 +12,7 @@
from django.template.loader_tags import ExtendsNode, ConstantIncludeNode
from pages import settings
-def get_request_mock():
+def get_request_mock(language_code=None):
bh = BaseHandler()
bh.load_middleware()
request = WSGIRequest({
@@ -20,12 +20,15 @@
'SERVER_NAME': 'test',
'SERVER_PORT': '8000',
})
+ if language_code:
+ request.COOKIES[django_settings.LANGUAGE_COOKIE_NAME] =
language_code
+
# Apply request middleware
for middleware_method in bh._request_middleware:
response = middleware_method(request)
return request
-def get_placeholders(template_name):
+def get_placeholders(template_name, language_code=None):
"""
Return a list of PlaceholderNode found in the given template
"""
@@ -33,8 +36,9 @@
temp = loader.get_template(template_name)
except TemplateDoesNotExist:
return []
-
- request = get_request_mock()
+
+ request = get_request_mock(language_code)
+
try:
# to avoid circular import
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---