Ejemplo n.º 1
0
def get_redirect_patterns():
    """
        Gets the redirect patterns out of the database
        and assigns them to the django patterns object.
    """
    redirects = Redirect.objects.filter(status=True).order_by("uses_regex")
    url_patterns = []
    url_list = []
    for redirect in redirects:
        extra = {}

        # use urlquote so we can support '?' in the redirect
        if not redirect.uses_regex:
            pattern = r"^%s/?$" % urlquote(redirect.from_url)
        else:
            pattern = r"^%s/?$" % redirect.from_url

        if "http" in redirect.to_url:
            extra.update({"url": "%s" % redirect.to_url})
        elif "https" in redirect.to_url:
            extra.update({"url": "%s" % redirect.to_url})
        else:
            extra.update({"url": "/%s" % redirect.to_url})

        if redirect.http_status == 302:
            extra.update({"permanent": False})
            url_list.append(url(pattern, RedirectView.as_view(**extra)))
        else:
            url_list.append(url(pattern, RedirectView.as_view(**extra)))
    arg_groups = list(group_aruments(url_list))

    for args in arg_groups:
        url_patterns += patterns("", *args)

    return url_patterns
Ejemplo n.º 2
0
def django_urls():
    urlpatterns = []
    url_list = Url.objects.filter(enabled=True)

    for the_url in url_list:
        regex = the_url.url
        type = the_url.type
        view = the_url.destination

        if type == 'exact_to_redirect':
            regex = r'^{0}$'.format(regex)
            # URI scheme check
            if not '://' in view:
                # relative redirect
                view = '/{0}'.format(view)
            urlpatterns += patterns('', url(regex, RedirectView.as_view(url=view, permanent=False)),)
        elif type == 'exact_to_view':
            regex = r'^{0}$'.format(regex)
            urlpatterns += patterns('', url(regex, view),)
        elif type == 'regex_to_redirect':
            # URI scheme check
            if not '://' in view:
                # relative redirect
                view = '/{0}'.format(view)
            urlpatterns += patterns('', url(regex, RedirectView.as_view(url=view, permanent=False)),)
        elif type == 'regex_to_view':
            urlpatterns += patterns('', url(regex, view),)
        else:
            continue

    return urlpatterns
Ejemplo n.º 3
0
    def get_urls(self):
        urls = super(MenuAdmin, self).get_urls()
        my_urls = patterns('',
            (r'^(?P<menu_pk>[-\w]+)/items/add/$', self.admin_site.admin_view(self.add_menu_item)),
            (r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/$',
                self.admin_site.admin_view(self.edit_menu_item)),
            (r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/delete/$',
                self.admin_site.admin_view(self.delete_menu_item)),
            (r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/history/$',
                self.admin_site.admin_view(self.history_menu_item)),
            (r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/move_up/$',
                self.admin_site.admin_view(self.move_up_item)),
            (r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/move_down/$',
                self.admin_site.admin_view(self.move_down_item)),
        )

        if django.VERSION >= (1, 4):
            # Dummy named URLs to satisfy reversing the reversing requirements
            # of the menuitem add/change views. It shouldn't ever be used; it
            # just needs to exist so that it get resolved internally by the
            # django admin.
            from django.views.generic import RedirectView

            my_urls += patterns('',
                url(r'^item_changelist/$', RedirectView.as_view(url='/'), name='treemenus_menuitem_changelist'),
                url(r'^item_add/$', RedirectView.as_view(url='/'), name='treemenus_menuitem_add'),
            )
        return my_urls + urls
Ejemplo n.º 4
0
def redirect_urlpatterns():
    """
    Helper function to return a URL pattern for index page http://host/.
    """
    if settings.INDEX_TEMPLATE is None:
        return patterns('', url(r'^$', never_cache(RedirectView.as_view(url=reverse_lazy('webindex'))), name="index" ))
    else:
        return patterns('', url( r'^$', never_cache(RedirectView.as_view(url=reverse_lazy('webindex_custom'))), name="index" ),)
Ejemplo n.º 5
0
    def test_include_args(self):
        "GET arguments can be included in the redirected URL"
        response = RedirectView.as_view(url='/bar/')(self.rf.get('/foo/'))
        self.assertEqual(response.status_code, 301)
        self.assertEqual(response['Location'], '/bar/')

        response = RedirectView.as_view(url='/bar/', query_string=True)(self.rf.get('/foo/?pork=spam'))
        self.assertEqual(response.status_code, 301)
        self.assertEqual(response['Location'], '/bar/?pork=spam')
Ejemplo n.º 6
0
    def test_include_args(self):
        "GET arguments can be included in the redirected URL"
        response = RedirectView.as_view(url="/bar/")(self.rf.get("/foo/"))
        self.assertEqual(response.status_code, 301)
        self.assertEqual(response.url, "/bar/")

        response = RedirectView.as_view(url="/bar/", query_string=True)(self.rf.get("/foo/?pork=spam"))
        self.assertEqual(response.status_code, 301)
        self.assertEqual(response.url, "/bar/?pork=spam")
Ejemplo n.º 7
0
 def get_urls(self):
     urls = patterns('',
                     url(r'^$',
                         RedirectView.as_view(url=reverse_lazy('builder-index')),
                         name="formunculous_form_changelist",
                     ),
                     url(r'^add/$',
                         RedirectView.as_view(url=reverse_lazy('builder-add-ad')),
                         name="formunculous_form_add",
                     )
                 )
     return urls
Ejemplo n.º 8
0
    def get_urls(self):
        urls = super(MenuAdmin, self).get_urls()
        my_urls = patterns(
            "",
            (r"^(?P<menu_pk>[-\w]+)/items/add/$", self.admin_site.admin_view(self.add_menu_item)),
            (r"^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/$", self.admin_site.admin_view(self.edit_menu_item)),
            (
                r"^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/delete/$",
                self.admin_site.admin_view(self.delete_menu_item),
            ),
            (
                r"^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/history/$",
                self.admin_site.admin_view(self.history_menu_item),
            ),
            (
                r"^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/move_up/$",
                self.admin_site.admin_view(self.move_up_item),
            ),
            (
                r"^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/move_down/$",
                self.admin_site.admin_view(self.move_down_item),
            ),
        )

        if django.VERSION >= (1, 4):
            # Dummy named URLs to satisfy reversing the reversing requirements
            # of the menuitem add/change views. It shouldn't ever be used; it
            # just needs to exist so that it get resolved internally by the
            # django admin.

            my_urls += patterns(
                "",
                url(r"^item_changelist/$", RedirectView.as_view(url="/"), name="treemenus_menuitem_changelist"),
                url(r"^item_add/$", RedirectView.as_view(url="/"), name="treemenus_menuitem_add"),
                url(
                    r"^item_history/(?P<pk>[-\w]+)/$",
                    self.menu_item_redirect,
                    {"action": "history"},
                    name="treemenus_menuitem_history",
                ),
                url(
                    r"^item_delete/(?P<pk>[-\w]+)/$",
                    self.menu_item_redirect,
                    {"action": "delete"},
                    name="treemenus_menuitem_delete",
                ),
            )
        return my_urls + urls
Ejemplo n.º 9
0
 def test_include_urlencoded_args(self):
     "GET arguments can be URL-encoded when included in the redirected URL"
     response = RedirectView.as_view(
         url='/bar/',
         query_string=True)(self.rf.get('/foo/?unicode=%E2%9C%93'))
     self.assertEqual(response.status_code, 301)
     self.assertEqual(response['Location'], '/bar/?unicode=%E2%9C%93')
Ejemplo n.º 10
0
    def get_urls(self):
        try:
            # Prevent deprecation warnings on Django >= 1.4
            from django.conf.urls import patterns, url
        except ImportError:
            # For compatibility with Django <= 1.3
            from django.conf.urls.defaults import patterns, url

        def wrap(view):
            def wrapper(*args, **kwargs):
                return self.admin_site.admin_view(view)(*args, **kwargs)
            return update_wrapper(wrapper, view)

        # Django <= 1.6 uses "module_name"; Django >= 1.7 uses "model_name"
        try:
            model_name = self.model._meta.model_name
        except AttributeError:
            model_name = self.model._meta.module_name
        info = self.model._meta.app_label, model_name

        urlpatterns = super(SingletonModelAdmin, self).get_urls()
        urlpatterns = patterns('',
            url(r'^/$',
                RedirectView.as_view(url=reverse_lazy('admin:%s_%s_change' % info)),
                name='%s_%s_changelist' % info),
            url(r'^history/$',
                wrap(self.history_view),
                {'object_id': '1'},
                name='%s_%s_history' % info),
            url(r'^1/$',
                wrap(self.change_view),
                {'object_id': '1'},
                name='%s_%s_changelist' % info),
        ) + urlpatterns
        return urlpatterns
Ejemplo n.º 11
0
    def get_urls(self):
        from django.conf.urls import url
        urlpatterns = super(ShowModelAdminMixin, self).get_urls()

        # Replace the redirect pattern to go to show instead of change
        for pattern in urlpatterns:
            if pattern.regex.pattern == '^(.+)/$':
                urlpatterns.remove(pattern)

        def wrap(view):
            def wrapper(*args, **kwargs):
                return self.admin_site.admin_view(view)(*args, **kwargs)
            wrapper.model_admin = self
            return update_wrapper(wrapper, view)

        info = self.model._meta.app_label, self.model._meta.model_name
        urlpatterns = [
            url(r'^(.+)/show/$', wrap(self.admin_site.admin_view(self.show_view)), name='%s_%s_show' % info),
        ] + urlpatterns + [
            url(r'^(.+)/$', wrap(RedirectView.as_view(
                pattern_name='%s:%s_%s_show' % ((self.admin_site.name,) + info)
            ))),
        ]

        return urlpatterns
Ejemplo n.º 12
0
    def get_urls(self):
        try:
            from django.conf.urls import url  # >= 1.4
        except ImportError:
            from django.conf.urls.defaults import url

        def wrap(view):
            def wrapper(*args, **kwargs):
                return self.admin_site.admin_view(view)(*args, **kwargs)
            return update_wrapper(wrapper, view)

        try:
            info = self.model._meta.app_label, self.model._meta.model_name  # >= 1.6
        except AttributeError:
            info = self.model._meta.app_label, self.model._meta.module_name

        urlpatterns = super(SingletonModelAdmin, self).get_urls()
        urlpatterns = [
            url(r'^/$',
                RedirectView.as_view(url=reverse_lazy('admin:%s_%s_change' % info)),
                name='%s_%s_changelist' % info),
            url(r'^history/$',
                wrap(self.history_view),
                {'object_id': '1'},
                name='%s_%s_history' % info),
            url(r'^1/$',
                wrap(self.change_view),
                {'object_id': '1'},
                name='%s_%s_changelist' % info),
        ] + urlpatterns

        return urlpatterns
Ejemplo n.º 13
0
    def get_urls(self):
        """Add extra views for downloading a blank datasheet,
        and uploading a completed datasheet.
        """
        urls = super(VisitAdmin, self).get_urls()
        app, mdl = self.model._meta.app_label, self.model._meta.model_name
        custom_urls = [
            # url(r'^(\d+)/download-datasheet/$',
            # self.admin_site.admin_view(self.download_datasheet),
            # name='{}_{}_download_datasheet'.format(app, mdl)),
            url(
                r"^(?P<pk>\d+)/download-datasheet/$",
                RedirectView.as_view(pattern_name="download_visit_datasheet", permanent=False),
                name="{}_{}_download_datasheet".format(app, mdl),
            ),
            url(
                r"^(\d+)/upload-datasheet/$",
                self.admin_site.admin_view(self.upload_datasheet),
                name="{}_{}_upload_datasheet".format(app, mdl),
            ),
            url(
                r"^(\d+)/confirm_datasheet_upload/(\d+)/$",
                self.admin_site.admin_view(self.confirm_datasheet_upload),
                name="{}_{}_confirm_datasheet_upload".format(app, mdl),
            ),
        ]

        return custom_urls + urls
Ejemplo n.º 14
0
def index(regex, manifest, adapter, view_class=IndexView):
    '''Create URL pattern for Ember application.

    Ember application will be accessible at these paths (prefixed with `regex`):

        1. `/` ,
        2. `/r/:revision/`,
        3. `/r/current/`, which redirects to `/`.

    Keyword arguments:
        regex (string): A regex from Ember application is served.
        manifest (string): A name of Ember application.
        adapter (object): An adapter for index provider.
        view_class (ember_index.views.IndexView): An index view (default IndexView).

    Returns:
        An URL pattern for Ember application.

    '''
    view = view_class.as_view(manifest=manifest, adapter=adapter, regex=regex)
    redirect = RedirectView.as_view(pattern_name=manifest, permanent=False)

    return url(regex, include([
        url(r'^r/current', redirect),
        url(r'^r/(?P<revision>\w+)', view),
        url(r'^', view, name=manifest)
    ]))
Ejemplo n.º 15
0
 def evaluate(self):
     if isinstance(self.action, basestring):
         
         redirect_url_name = self.action
         reverse_kw = dict()
         
         if self._options.get('app_name'):
             reverse_kw.update({
                 'current_app': self._options.get('app_name'), })
         
         if len(self._kwargs) > 0:
             reverse_kw.update({ 'kwargs': self._kwargs, })
         elif len(self._args) > 0:
             reverse_kw.update({ 'args': self._args, })
         
         '''
         self._kwargs = dict(
             url=reverse_lazy(
                 redirect_url_name, **reverse_kw))
         '''
         
         self.action = RedirectView.as_view(
             url=reverse_lazy(
                 redirect_url_name,
                 **reverse_kw),
             permanent=False)
         
     return super(ReverseRedirect, self).evaluate()
Ejemplo n.º 16
0
 def test_parameter_substitution(self):
     "Redirection URLs can be parameterized"
     response = RedirectView.as_view(
         url='/bar/%(object_id)d/')(self.rf.get('/foo/42/'),
                                    object_id=42)
     self.assertEqual(response.status_code, 301)
     self.assertEqual(response['Location'], '/bar/42/')
Ejemplo n.º 17
0
def django_urls():
    urlpatterns = []
    url_list = Url.objects.filter(enabled=True)

    for the_url in url_list:
        regex = the_url.url
        type = the_url.type
        view = the_url.destination

        # Exact matches
        if type in ['exact_to_view',
                    'exact_to_temporary_redirect',
                    'exact_to_permanent_redirect',]:
            regex = r'^{0}$'.format(regex)

        # Views
        if type in ['regex_to_view', 'exact_to_view',]:
            urlpatterns += patterns('', url(regex, view),)
        # Redirects
        elif type in ['regex_to_temporary_redirect', 'regex_to_permanent_redirect',
                      'exact_to_temporary_redirect', 'exact_to_permanent_redirect',]:
            permanent = False
            if type in ['regex_to_permanent_redirect', 'exact_to_permanent_redirect',]:
                permanent = True
            # Make url relative if needed by checking URI scheme
            if not '://' in view:
                view = '/{0}'.format(view)
            urlpatterns += patterns('', url(regex, RedirectView.as_view(url=view, permanent=permanent)),)
        else:
            continue

    return urlpatterns
Ejemplo n.º 18
0
 def evaluate(self):
     if isinstance(self.action, basestring):
         redirect_url = self.action
         self.action = RedirectView.as_view(
             url=redirect_url,
             permanent=False)
     
     return super(Redirect, self).evaluate()
Ejemplo n.º 19
0
 def url_patterns(self):
     return [
         url(r'^$', RedirectView.as_view(url=reverse_lazy(self.url_namespace + ':books')), name='index'),
         url(r'^books/$', permission_required('common.purchase_sell_books')(self.books),
             name='books'),
         url(r'^summary/$', permission_required('common.purchase_sell_books')(self.summary),
             name='summary'),
     ]
Ejemplo n.º 20
0
    def test_no_deprecation_warning_when_permanent_passed(self):
        with warnings.catch_warnings(record=True) as warns:
            warnings.simplefilter('always')

            view_function = RedirectView.as_view(url='/bar/', permanent=False)
            request = self.rf.request(PATH_INFO='/foo/')
            view_function(request)

        self.assertEqual(len(warns), 0)
def krb5login(request, redirect_field_name=REDIRECT_FIELD_NAME):
    #middleware = 'django.contrib.auth.middleware.RemoteUserMiddleware'
    middleware = 'kobo.django.auth.middleware.LimitedRemoteUserMiddleware'
    if middleware not in settings.MIDDLEWARE_CLASSES:
        raise ImproperlyConfigured("krb5login view requires '%s' middleware installed" % middleware)
    redirect_to = request.REQUEST.get(redirect_field_name, "")
    if not redirect_to:
        redirect_to = reverse("home/index")
    return RedirectView.as_view(url=redirect_to)(request)
Ejemplo n.º 22
0
def secure_redirect(request, page):
    """
    Redirects to the correct path on secure.my.jobs if this is not a network
    site, or 404 if it is.
    """
    if settings.SITE.site_tags.filter(site_tag='network').exists():
        return RedirectView.as_view(
            url='https://secure.my.jobs/%s' % page)(request)
    else:
        raise Http404
    def get_urls(self):
        urls = super(MenuAdmin, self).get_urls()
        my_urls = [
            url(r'^(?P<menu_pk>[-\w]+)/items/add/$',
                self.admin_site.admin_view(self.add_menu_item)),
            url(r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/$',
                self.admin_site.admin_view(self.edit_menu_item)),
            url(r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/delete/$',
                self.admin_site.admin_view(self.delete_menu_item)),
            url(r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/history/$',
                self.admin_site.admin_view(self.history_menu_item)),
            url(r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/move_up/$',
                self.admin_site.admin_view(self.move_up_item)),
            url(r'^(?P<menu_pk>[-\w]+)/items/(?P<menu_item_pk>[-\w]+)/move_down/$',
                self.admin_site.admin_view(self.move_down_item)),
        ]

        if django.VERSION >= (1, 4):
            # Dummy named URLs to satisfy reversing the reversing requirements
            # of the menuitem add/change views. It shouldn't ever be used; it
            # just needs to exist so that it get resolved internally by the
            # django admin.

            my_urls += [
                url(r'^item_changelist/$',
                    RedirectView.as_view(url='/', permanent=True),
                    name='treemenus_menuitem_changelist'),
                url(r'^item_add/$',
                    RedirectView.as_view(url='/', permanent=True),
                    name='treemenus_menuitem_add'),
                url(r'^item_history/(?P<pk>[-\w]+)/$',
                    self.menu_item_redirect,
                    {'action': 'history'},
                    name='treemenus_menuitem_history'),
                url(r'^item_delete/(?P<pk>[-\w]+)/$',
                    self.menu_item_redirect,
                    {'action': 'delete'},
                    name='treemenus_menuitem_delete'),
                url(r'^(.+)/item_change/$',
                    self.menu_item_change_redirect, name='treemenus_menuitem_change'),
            ]
        return my_urls + urls
Ejemplo n.º 24
0
def _get_urls(tenant_slug):
    # Note, need 'tuple' here otherwise url stuff blows up
    return tuple(
        patterns(
            '',
            (r'^$', RedirectView.as_view(
                pattern_name='ditto:home',
                permanent=True,
            )),
            url(r'^%s/' % tenant_slug, include('network_urls')),
            url(r'^main/', include('multitenancy.urls', namespace="ditto")),
        ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT))
Ejemplo n.º 25
0
def profiles_urlpatterns(AdModel, AdSearchModel):
    urlpatterns = patterns('',
        url(r'^accounts/profile/$', RedirectView.as_view(url=reverse_lazy('search'))),
        url(r'^accounts/(?P<slug>(?!signout|signup|signin)[\.\w]+)/$',
            UserProfileDetailView.as_view(ad_model=AdModel,
                                          ad_search_model=AdSearchModel),
            name='userena_profile_detail'),
        url(r'^accounts/(?P<username>[\.\w]+)/edit/$',
            userena_views.profile_edit,
            {'template_name': 'userena/profile_form.html', 'edit_profile_form': UserProfileCustomForm},
            name='userena_profile_edit'),
        url(r'^accounts/', include('userena.urls')))
    return urlpatterns
Ejemplo n.º 26
0
    def test_deprecation_warning_raised_when_permanent_not_passed(self):
        with warnings.catch_warnings(record=True) as warns:
            warnings.simplefilter('always')

            view_function = RedirectView.as_view(url='/bbb/')
            request = self.rf.request(PATH_INFO='/aaa/')
            view_function(request)

        self.assertEqual(len(warns), 1)
        self.assertIs(warns[0].category, RemovedInDjango19Warning)
        self.assertEqual(
            six.text_type(warns[0].message),
            "Default value of 'RedirectView.permanent' will change "
            "from True to False in Django 1.9. Set an explicit value "
            "to silence this warning.",
        )
Ejemplo n.º 27
0
 def get_urls(self):
     urls = patterns("",
         url("^(?P<content_type_id>\d+)/(?P<object_id>\d+)/$",
             wrap_admin_view(self, self.changelist_view),
             name='pings_ping_list'),
         url("^ping/(?P<content_type_id>\d+)/(?P<object_id>\d+)/$",
             wrap_admin_view(self, self.ping_view),
             name='pings_ping_ping'),
         url("^(?P<content_type_id>\d+)/(?P<object_id>\d+)/timeseries/$",
             wrap_admin_view(self, self.timeseries_view),
             name='pings_ping_timeseries'),
         # As raw list of pings has no view we should handle manually
         # for example redirecting to the admin index.
         url("^$",
             RedirectView.as_view(pattern_name='admin:index'),
             name='pings_ping_changelist'),
     )
     return urls
Ejemplo n.º 28
0
    def get_urls(self):
        """
        Return the URL patterns handled by this router.

        Include a default root view for the API, and appending `.json` style
        format suffixes.
        """
        urls = []
        assert self.include_root_view
        assert self.include_format_suffixes
        root_url = url(
            r'^$', self.get_api_root_view(), name=self.root_view_name)
        urls.append(root_url)

        default_urls = super(DefaultRouter, self).get_urls()
        urls.extend(default_urls)

        # Add format suffix versions
        # Include special-case of view_features allowing .html as well
        furls = format_suffix_patterns(urls, allowed=self.allowed_ext)
        urls = []
        for u in furls:
            assert not isinstance(u, RegexURLResolver)
            match = (
                u.name == 'viewfeatures-detail' and
                'api|json' in u.regex.pattern)
            if match:
                pattern = u.regex.pattern.replace('api|json', 'api|json|html')
                view = u._callback or u._callback_str
                u = url(pattern, view, u.default_args, u.name)
            urls.append(u)

        # Add redirects for list views
        assert not self.trailing_slash
        redirect_urls = []
        for u in default_urls:
            if u.name.endswith('-list'):
                pattern = u.regex.pattern.replace('$', '/$')
                view = RedirectView.as_view(
                    pattern_name=u.name, permanent=False, query_string=True)
                redirect_urls.append(url(pattern, view))
        return urls + redirect_urls
Ejemplo n.º 29
0
    def get_urls(self):
        def wrap(view):
            def wrapper(*args, **kwargs):
                return self.admin_site.admin_view(view)(*args, **kwargs)
            wrapper.model_admin = self
            wrapper = app_auth_exempt(wrapper)
            wrapper = refresh_jwt(wrapper)
            return update_wrapper(wrapper, view)

        info = self.model._meta.app_label, self.model._meta.model_name

        urlpatterns = [
            url(
                r'^$', wrap(self.changelist_view),
                name='%s_%s_changelist' % info
            ),
            url(
                r'^add/$', wrap(self.add_view),
                name='%s_%s_add' % info
            ),
            url(
                r'^(.+)/history/$', wrap(self.history_view),
                name='%s_%s_history' % info
            ),
            url(
                r'^(.+)/delete/$', wrap(self.delete_view),
                name='%s_%s_delete' % info
            ),
            url(
                r'^(.+)/change/$', wrap(self.change_view),
                name='%s_%s_change' % info
            ),
            url(r'^(.+)/$', wrap(RedirectView.as_view(
                pattern_name='%s:%s_%s_change' % (
                    (self.admin_site.name,) + info
                )
            ))),
        ]
        return urlpatterns
Ejemplo n.º 30
0
def content_block_json_upload(request):
    """
    Upload a group of ContentBlocks in JSON format
    """
    if 'json_data' in request.FILES:
        try:
            for new_block in serializers.deserialize('json', request.FILES['json_data'].read()):
                existing_query = ContentBlock.objects.filter(name=new_block.object.name)
                if existing_query:
                    existing_block = existing_query.get()
                    new_block.object.id = existing_block.id
                    new_block.save()
                    continue

                else:
                    new_block.object.id = None
                    new_block.save()

            messages.success(request, 'JSON Content Blocks Successfully imported.')
        except (DeserializationError, ValueError):  # NOTE: ValueError is caught only for Django<=1.3
            messages.error(request, 'JSON File Invalid')

    return RedirectView.as_view(url=get_admin_list_page(ContentBlock))
Ejemplo n.º 31
0
 def test_wrong_named_url_pattern(self):
     "A wrong pattern name returns 410 GONE"
     response = RedirectView.as_view(pattern_name='wrong.pattern_name')(
         self.rf.get('/foo/'))
     self.assertEqual(response.status_code, 410)
Ejemplo n.º 32
0
 def test_permanent_redirect(self):
     "Permanent redirects are an option"
     response = RedirectView.as_view(url='/bar/',
                                     permanent=True)(self.rf.get('/foo/'))
     self.assertEqual(response.status_code, 301)
     self.assertEqual(response.url, '/bar/')
Ejemplo n.º 33
0
 def test_temporary_redirect(self):
     "Temporary redirects are an option"
     response = RedirectView.as_view(url='/bar/',
                                     permanent=False)(self.rf.get('/foo/'))
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response.url, '/bar/')
Ejemplo n.º 34
0
"""polling URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import include, path
from django.views.generic import RedirectView
from polls import views

urlpatterns = [
    path('', RedirectView.as_view(url='polls/', permanent=True)),
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
Ejemplo n.º 35
0
        view=include('contact.urls')
        ),
    url(regex=r'^contact/(?P<pk>\d+)/$',
        view=ContactDetailView.as_view(),
        name='contact.detail'
        ),
    url(regex=r'^crm/',
        view=include('crm.urls')
        ),
    url(regex=r'^invoice/',
        view=include('invoice.urls')
        ),
    url(regex=r'^settings/$',
        view=SettingsView.as_view(),
        name='project.settings'
        ),
    url(regex=r'^token/$',
        view=views.obtain_auth_token,
        name='api.token.auth',
        ),
    url(regex=r'^wizard/',
        view=include('block.urls.wizard')
        ),
    url(r'^home/user/$',
        view=RedirectView.as_view(url=reverse_lazy('crm.ticket.home')),
        name='project.dash'
        ),
]

urlpatterns += staticfiles_urlpatterns()
Ejemplo n.º 36
0
# since we're using an older version of haystack
# because of django-cms-search)
urlpatterns += [
    url(r'^search/', SearchView(), name='haystack_search'),
]

# CMS patterns
urlpatterns += [
    url(r'^sitemap\.xml$', sitemap, {'sitemaps': {'cmspages': CMSSitemap}}),
    url(r'^sitemap/$',
        TemplateView.as_view(template_name='sitemap.html')),

    # Fallthrough prefix redirects. WARNING: these will override any pages
    # created in the CMS with these names.
    url(r'^blogs/(?P<remain>.+)$',
        RedirectView.as_view(url=ARCHIVE_ROOT + '/blogs/%(remain)s',
                             permanent=True)),
    url(r'^members/(?P<remain>.+)$',
        RedirectView.as_view(url=ARCHIVE_ROOT + '/members/%(remain)s',
                             permanent=True)),
    url(r'^wp-content/(?P<remain>.+)$',
        RedirectView.as_view(url=ARCHIVE_ROOT + '/wp-content/%(remain)s',
                             permanent=True)),
    url(r'^wp-includes/(?P<remain>.+)$',
        RedirectView.as_view(url=ARCHIVE_ROOT + '/wp-includes/%(remain)s',
                             permanent=True)),

    # we would like to properly do this from within the cms
    # but it does not work with `csrf_exempt`. See
    # https://github.com/divio/django-cms/issues/4599
    url(r'^api$', relatable_person, name='relatable-person'),
Ejemplo n.º 37
0
"""vendas URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from core import views
from django.views.generic import RedirectView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('vendas/', views.lista_produtos),
    path('', RedirectView.as_view(url='/vendas/'))
]
Ejemplo n.º 38
0
 def test_no_url(self):
     "Without any configuration, returns HTTP 410 GONE"
     response = RedirectView.as_view()(self.rf.get('/foo/'))
     self.assertEqual(response.status_code, 410)
Ejemplo n.º 39
0
 def test_redirect_OPTIONS(self):
     "Default is a temporary redirect"
     response = RedirectView.as_view(url='/bar/')(self.rf.options('/foo/'))
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response.url, '/bar/')
Ejemplo n.º 40
0
The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.urls import include
from django.views.generic import RedirectView
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('courses/', include('courses.urls')),
    path('', RedirectView.as_view(url='courses/', permanent=True)),
]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += [
    path('accounts/', include('django.contrib.auth.urls')),
]
Ejemplo n.º 41
0
"""msservice URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.9/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url, include
# from django.contrib import admin
from django.views.generic import RedirectView
from api.views import router

urlpatterns = [
    # url(r'^admin/', admin.site.urls),
    url(r'^api/v1/', include(router.urls)),
    url(r'^api-explorer/', include('rest_framework_swagger.urls')),
    url(r'^', RedirectView.as_view(url='/api-explorer/')),
]
Ejemplo n.º 42
0
 def test_redirect_DELETE(self):
     "Default is a temporary redirect"
     response = RedirectView.as_view(url='/bar/')(self.rf.delete('/foo/'))
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response.url, '/bar/')
Ejemplo n.º 43
0
    re_path(r'tendenci/', include('tendenci.apps.tendenci_guide.urls')),
    re_path(r'^api_tasty/', include('tendenci.apps.api_tasty.urls')),
    re_path(r'^forums/', include('tendenci.apps.forums.urls')),

    # third party (inside environment)
    re_path(r'^tinymce/', include('tendenci.libs.tinymce.urls')),
    re_path(r'^captcha/', include('captcha.urls')),
    re_path(r'^sitemap/$',
            TemplateView.as_view(template_name='site_map.html'),
            name="site_map"),
    re_path(r'^robots.txt', base_views.robots_txt, name="robots"),
    re_path(r'^(?P<file_name>[\w-]+\.[\w]{2,4})$', base_views.base_file),

    # legacy redirects
    re_path(r'^login/$',
            RedirectView.as_view(url='/accounts/login/', permanent=True)),
    re_path(r'^', include('tendenci.apps.articles.urls')),
    re_path(r'^', include('tendenci.apps.corporate_memberships.urls')),
    re_path(r'^', include('tendenci.apps.directories.urls')),
    re_path(r'^', include('tendenci.apps.events.urls')),
    re_path(r'^', include('tendenci.apps.help_files.urls')),
    re_path(r'^', include('tendenci.apps.jobs.urls')),
    re_path(r'^', include('tendenci.apps.locations.urls')),
    re_path(r'^', include('tendenci.apps.memberships.urls')),
    re_path(r'^', include('tendenci.apps.news.urls')),
    re_path(r'^', include('tendenci.apps.photos.urls')),
    re_path(r'^', include('tendenci.apps.resumes.urls')),
    re_path(r'^', include('tendenci.apps.contacts.urls')),
    re_path(r'^', include('tendenci.apps.contributions.urls')),
    re_path(r'^', include('tendenci.apps.entities.urls')),
    re_path(r'^', include('tendenci.apps.forms_builder.forms.urls')),
Ejemplo n.º 44
0
from django.conf.urls import url
from views import patientView, patientAdd, patientViewUpdate, patientEdit,patientCaseAdd,caseViewUpdate,issueDictionary, patientCaseView
from django.core.urlresolvers import reverse_lazy
from django.views.generic import RedirectView

urlpatterns = [
    url(r'^patient/$', patientView, name='patientView'),
    url(r'^patient/new/$', patientViewUpdate, name='patientViewUpdate'),
    url(r'^patient/case/new/(?P<nricvalue>\w+)$', caseViewUpdate, name='caseViewUpdate'),
    url(r'^patient/add/$', patientAdd, name='patientAdd'),
    url(r'^patient/editpatient/$', RedirectView.as_view(url=reverse_lazy('patientView')), name='patientEditUrl'),
    url(r'^patient/editpatient/(?P<nricvalue>\w+)$', patientEdit, name='patientEdit'),
    url(r'^patient/case/add/(?P<nricvalue>\w+)$',patientCaseAdd, name="patientCaseAdd"),

    url(r'^patient/case/view/(?P<idvalue>\w+)$',patientCaseView, name="patientCaseView"),
    url(r'^patient/case/view/$', RedirectView.as_view(url=reverse_lazy('patientView')), name='patientCaseViewUrl'),
    url(r'^dictionary/$',issueDictionary, name="issueDictionary")
]
Ejemplo n.º 45
0
 def test_named_url_pattern_using_args(self):
     response = RedirectView.as_view(pattern_name='artist_detail')(
         self.rf.get('/foo/'), 1)
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['Location'], '/detail/artist/1/')
Ejemplo n.º 46
0
 def test_named_url_pattern(self):
     "Named pattern parameter should reverse to the matching pattern"
     response = RedirectView.as_view(pattern_name='artist_detail')(
         self.rf.get('/foo/'), pk=1)
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response['Location'], '/detail/artist/1/')
Ejemplo n.º 47
0
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
# Use include() to add paths from the catalog application
from django.urls import path, include
#Add URL maps to redirect the base URL to our application
from django.views.generic import RedirectView
# Use static() to add url mapping to serve static files during development (only)
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('catalog/', include('catalog.urls')),
    path('', RedirectView.as_view(url='catalog /')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

#Add Django site authentication urls (for login, logout, password management)

urlpatterns += [
    path('accounts/', include('django.contrib.auth.urls')),
]
Ejemplo n.º 48
0
]

plan_patterns = [
    url(r'^$', views.PlanListView.as_view(), name='all'),
    url(r'^new/$', views.PlanCreateView.as_view(), name='new'),
    url(r'^(?P<pk>\d+)/remove/$', views.PlanDeleteView.as_view(), name='remove'),
    url(r'^(?P<pk>\d+)/set-state/$', views.plan_set_state, name='set-state'),
    url(r'^(?P<pk>\d+)/edit/$', views.PlanUpdateView.as_view(), name='edit'),
]

reminder_patterns = [
    url(r'^$', views.ReminderListView.as_view(), name='all'),
    url(r'^new/$', views.ReminderCreateView.as_view(), name='new'),
    url(r'^(?P<pk>\d+)/$', views.ReminderDetailView.as_view(), name='detail'),
    url(r'^(?P<pk>\d+)/remove/$', views.ReminderDeleteView.as_view(), name='remove'),
    url(r'^(?P<pk>\d+)/set-state/$', views.reminder_set_state, name='set-state'),
    url(r'^(?P<pk>\d+)/edit/$', views.ReminderUpdateView.as_view(), name='edit'),
    url(r'^(?P<pk>\d+)/add-task/$', views.reminder_add_task, name='add-task'),
    url(r'^(?P<pk>\d+)/detach/(?P<task>\d+)/$', views.reminder_detach_task, name='detach-task')
]

urlpatterns = [
    url(r'^$', RedirectView.as_view(url='tasks'), name='homepage'),
    url(r'^login/$', auth_views.LoginView.as_view(redirect_authenticated_user=True), name='login'),
    url(r'^logout/$', auth_views.logout, {'next_page': 'login'}, name='logout'),
    url(r'^signup/$', views.signup, name='signup'),
    url(r'^tasks/', include(task_patterns, namespace='tasks')),
    url(r'^plans/', include(plan_patterns, namespace='plans')),
    url(r'^reminders/', include(reminder_patterns, namespace='reminders')),
]
Ejemplo n.º 49
0
from django.conf.urls import include, url
from django.views.generic import RedirectView

urlpatterns = [
    url(r'^machines/', include("machines.urls", namespace="machines")),
    url(r'^drivers/', include("drivers.urls", namespace="drivers")),
    url(r'^settings/', include("preferences.urls", namespace="settings")),
    url(r'^$', RedirectView.as_view(url="/machines/list/"), name="home"),
]
Ejemplo n.º 50
0
"""mysite URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import include, url
from django.contrib import admin
from django.views.generic import RedirectView
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    url(r'^admin/', admin.site.urls),

    #First URL added for the drugagent
    url(r'^drugagent/', include('drugagent.urls')),
    url(r'^$', RedirectView.as_view(url='/drugagent/list/', permanent=True)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Ejemplo n.º 51
0
"""qr_code_demo URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/3.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import include
from django.urls import path
from django.views.generic import RedirectView
from qr_code_demo import urls as qr_code_demo_urls
from qr_code import urls as qr_code_urls

urlpatterns = [
    path('', RedirectView.as_view(url='qr_code_demo/', permanent=True)),
    path('qr-code-demo/', include(qr_code_demo_urls, namespace='qr_code_demo')),
    path('qr-code/', include(qr_code_urls, namespace='qr_code')),
]
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url, include
from django.contrib import admin
from rest_framework_swagger.views import get_swagger_view
from django.views.generic import RedirectView
from django.contrib.staticfiles.views import serve

schema_view = get_swagger_view(title='Music School API')

#url(r'^$', schema_view),

urlpatterns = [
    url(r'^$', serve,kwargs={'path': 'index.html'}),
    url(r'^(?!/?static/)(?!/?media/)(?P<path>.*\..*)$',
    RedirectView.as_view(url='/static/%(path)s', permanent=False)),
    url(r'^schema/', schema_view),
    url(r'^admin/', admin.site.urls),
    url(r'^api/', include('courses.urls')),
    url(r'^api/', include('professors.urls')),
    url(r'^api/', include('students.urls')),
]
Ejemplo n.º 53
0
Archivo: urls.py Proyecto: whav/hav
from django.urls import include, path, re_path
from django.views.generic import RedirectView

# from django.views.decorators.csrf import csrf_exempt
# from django.conf import settings

# from .graphql.views import ProtectedGraphQLView, GraphQLView

api_urls = [
    re_path(r"^v1/", include("hav.views.api.v1.urls", namespace="v1")),
    re_path(r"^__api_auth__/",
            include("rest_framework.urls", namespace="rest_framework")),
    # re_path(
    #     r"^graphql",
    #     # ProtectedGraphQLView.as_view(graphiql=True),
    #     csrf_exempt(GraphQLView.as_view(graphiql=True)),
    #     name="graphql",
    # ),
    re_path(
        r"^$",
        RedirectView.as_view(pattern_name="api:v1:api_root", permanent=False)),
    path(r"public/", include("hav.views.api.public.urls", namespace="public")),
]
Ejemplo n.º 54
0
"""djworld3 URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url, include
from django.contrib import admin
from django.views.generic import RedirectView

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'building/', include('building.urls', namespace='building')),
    url(r'room/', include('room.urls', namespace='room')),
    url(r'testki/', include('testki.urls', namespace='testki')),
    url(r'login/', include('login.urls', namespace='login')),
    url(r'', RedirectView.as_view(url='/login/view'))
]
Ejemplo n.º 55
0
 def test_parameter_substitution(self):
     "Redirection URLs can be parameterized"
     response = RedirectView.as_view(url='/bar/%(object_id)d/')(
         self.rf.get('/foo/42/'), object_id=42)
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response.url, '/bar/42/')
Ejemplo n.º 56
0
The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""

from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
from django.views.generic import RedirectView

from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('contacts/', include('contact_box.urls')),
    path('', RedirectView.as_view(url='/contacts/', permanent=False))
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL,
                          document_root=settings.MEDIA_ROOT)
Ejemplo n.º 57
0
"""cfehome URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.urls import reverse_lazy
from django.contrib import admin
from django.urls import path, include
from django.views.generic import TemplateView, RedirectView
from chat import views
urlpatterns = [
    path('', RedirectView.as_view(url=reverse_lazy('home'), permanent=False)),
    path('home/',
         TemplateView.as_view(template_name="chat/home.html"),
         name='home'),
    path('', include('django.contrib.auth.urls')),
    path('signup/', views.SignUp.as_view(), name='signup'),
    path('admin/', admin.site.urls),
    path('messages/', include('chat.urls')),
]
Ejemplo n.º 58
0
 def test_include_urlencoded_args(self):
     "GET arguments can be URL-encoded when included in the redirected URL"
     response = RedirectView.as_view(url='/bar/', query_string=True)(
         self.rf.get('/foo/?unicode=%E2%9C%93'))
     self.assertEqual(response.status_code, 302)
     self.assertEqual(response.url, '/bar/?unicode=%E2%9C%93')
"""locallibrary URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path,include
from django.views.generic import RedirectView
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('catalog/', include('catalog.urls')),
    path('', RedirectView.as_view(url='catalog/', permanent=True)),
]
urlpatterns+= static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Ejemplo n.º 60
0
 def test_redirect_when_meta_contains_no_query_string(self):
     "regression for #16705"
     # we can't use self.rf.get because it always sets QUERY_STRING
     response = RedirectView.as_view(url='/bar/')(
         self.rf.request(PATH_INFO='/foo/'))
     self.assertEqual(response.status_code, 302)