コード例 #1
0
ファイル: views.py プロジェクト: alexsilva/Report
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
ファイル: easyfilters.py プロジェクト: asavoy/django-easymode
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
ファイル: testrelatedadmin.py プロジェクト: alexsilva/Report
    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
ファイル: testrelatedadmin.py プロジェクト: alexsilva/Report
    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
ファイル: views.py プロジェクト: MechanisM/django-easymode
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)