Пример #1
0
def preview(request, content_type_id, object_id):
    """
    This is an override for django.views.default.shortcut.
    It assumes that get_absolute_url returns an absolute url, so
    it does not do any of the very elaborate link checking that shortcut does.
    
    This version adds the language code to the url. (/en/blaat/).
    """

    try:
        content_type = ContentType.objects.get(pk=content_type_id)
        obj = content_type.get_object_for_this_type(pk=object_id)
    except ObjectDoesNotExist:
        raise http.Http404("Content type %s object %s doesn't exist" %
                           (content_type_id, object_id))
    try:
        absolute_url = obj.get_absolute_url()
    except AttributeError:
        raise http.Http404("%s objects don't have get_absolute_url() methods" %
                           content_type.name)

    if absolute_url.startswith('http://') or absolute_url.startswith(
            'https://'):
        http.HttpResponseRedirect(absolute_url)
    else:
        absolute_url = fix_language_code(absolute_url, request.LANGUAGE_CODE)
        return http.HttpResponseRedirect(absolute_url)
Пример #2
0
def fix_locale_from_request(url, current_language):
    """
    Fixes the language code as follows:
    
    If there is only one language used in the site, it strips the language code.
    If there are more languages used, it will make sure that the url has the current
    language as a prefix.
    """
    return languagecode.fix_language_code(url, current_language)
Пример #3
0
def fix_locale_from_request(url, current_language):
    """
    Fixes the language code as follows:
    
    If there is only one language used in the site, it strips the language code.
    If there are more languages used, it will make sure that the url has the current
    language as a prefix.
    """
    return languagecode.fix_language_code(url, current_language)
Пример #4
0
 def test_add_button_is_not_shown_in_add_view(self):
     "The add button must be hidden in the add view because you can't add nothing to an object that does not exist yet"
     if self.client.login(username='******', password='******'):
         top_url = reverse('admin:tests_topmodel_add')
         response = self.client.get(top_url)
         
         add_url = "%s?top=None" % reverse('admin:tests_bottommodel_add')
         localized_add_url = fix_language_code(add_url, get_language())
         
         self.assertNotContains(response, ADD_BUTTON % localized_add_url)
Пример #5
0
    def test_add_button_is_not_shown_in_add_view(self):
        "The add button must be hidden in the add view because you can't add nothing to an object that does not exist yet"
        if self.client.login(username='******', password='******'):
            top_url = reverse('admin:tests_topmodel_add')
            response = self.client.get(top_url)

            add_url = "%s?top=None" % reverse('admin:tests_bottommodel_add')
            localized_add_url = fix_language_code(add_url, get_language())

            self.assertNotContains(response, ADD_BUTTON % localized_add_url)
Пример #6
0
 def test_the_plus_button_goes_to_the_correct_add_view(self):
     "There should be a plus button for the inline group that goes to the correct add view"
     if self.client.login(username='******', password='******'):
         top_url = reverse('admin:tests_topmodel_change', args=[1])
         response = self.client.get(top_url)
         self.assertEqual(response.status_code, 200)
         
         #/en/admin/tests/bottommodel/add/?top=1
         add_url = "%s?top=1" % reverse('admin:tests_bottommodel_add')
         localized_add_url = fix_language_code(add_url, get_language())
         
         self.assertContains(response, ADD_BUTTON % localized_add_url)
         
         # test the same for a different locale
         activate('de')
         self.assertEqual('de', get_language())
         localized_add_url = fix_language_code(add_url, get_language())
         localized_top_url = fix_language_code(top_url, get_language())
         response = self.client.get(localized_top_url)
         self.assertEqual(response.status_code, 200)
         self.assertContains(response, ADD_BUTTON % localized_add_url)
         
     else:
         self.fail('Can not log in with admin:admin')
Пример #7
0
    def test_the_plus_button_goes_to_the_correct_add_view(self):
        "There should be a plus button for the inline group that goes to the correct add view"
        if self.client.login(username='******', password='******'):
            top_url = reverse('admin:tests_topmodel_change', args=[1])
            response = self.client.get(top_url)
            self.assertEqual(response.status_code, 200)

            #/en/admin/tests/bottommodel/add/?top=1
            add_url = "%s?top=1" % reverse('admin:tests_bottommodel_add')
            localized_add_url = fix_language_code(add_url, get_language())

            self.assertContains(response, ADD_BUTTON % localized_add_url)

            # test the same for a different locale
            activate('de')
            self.assertEqual('de', get_language())
            localized_add_url = fix_language_code(add_url, get_language())
            localized_top_url = fix_language_code(top_url, get_language())
            response = self.client.get(localized_top_url)
            self.assertEqual(response.status_code, 200)
            self.assertContains(response, ADD_BUTTON % localized_add_url)

        else:
            self.fail('Can not log in with admin:admin')
Пример #8
0
def preview(request, content_type_id, object_id):
    """
    This is an override for django.views.default.shortcut.
    It assumes that get_absolute_url returns an absolute url, so
    it does not do any of the very elaborate link checking that shortcut does.
    
    This version adds the language code to the url. (/en/blaat/).
    """
    
    try:
        content_type = ContentType.objects.get(pk=content_type_id)
        obj = content_type.get_object_for_this_type(pk=object_id)
    except ObjectDoesNotExist:
        raise http.Http404("Content type %s object %s doesn't exist" % (content_type_id, object_id))
    try:
        absolute_url = obj.get_absolute_url()
    except AttributeError:
        raise http.Http404("%s objects don't have get_absolute_url() methods" % content_type.name)
        
    if absolute_url.startswith('http://') or absolute_url.startswith('https://'):        
        http.HttpResponseRedirect(absolute_url)        
    else:
        absolute_url = fix_language_code(absolute_url, request.LANGUAGE_CODE)                
        return http.HttpResponseRedirect(absolute_url)