Example #1
0
    def get_url_patterns(self):
        """Returns the Django URL patterns for this object and its children.

        This is used to automatically build up the URL hierarchy for all
        objects. Projects should call this for top-level resources and
        return them in the ``urls.py`` files.
        """
        urlpatterns = never_cache_patterns(
            '',
            url(r'^$', self, name=self._build_named_url(self.name_plural)),
        )

        for resource in self.list_child_resources:
            resource._parent_resource = self
            child_regex = r'^' + resource.uri_name + '/'
            urlpatterns += patterns(
                '',
                url(child_regex, include(resource.get_url_patterns())),
            )

        if self.uri_object_key or self.singleton:
            # If the resource has particular items in it...
            if self.uri_object_key:
                base_regex = r'^(?P<%s>%s)/' % (self.uri_object_key,
                                                self.uri_object_key_regex)
            elif self.singleton:
                base_regex = r'^'

            urlpatterns += never_cache_patterns(
                '',
                url(base_regex + '$',
                    self,
                    name=self._build_named_url(self.name)))

            for resource in self.item_child_resources:
                resource._parent_resource = self
                child_regex = base_regex + resource.uri_name + '/'
                urlpatterns += patterns(
                    '',
                    url(child_regex, include(resource.get_url_patterns())),
                )

        return urlpatterns
Example #2
0
    def get_url_patterns(self):
        """Returns the Django URL patterns for this object and its children.

        This is used to automatically build up the URL hierarchy for all
        objects. Projects should call this for top-level resources and
        return them in the ``urls.py`` files.
        """
        urlpatterns = never_cache_patterns('',
            url(r'^$', self, name=self._build_named_url(self.name_plural)),
        )

        for resource in self.list_child_resources:
            resource._parent_resource = self
            child_regex = r'^' + resource.uri_name + '/'
            urlpatterns += patterns('',
                url(child_regex, include(resource.get_url_patterns())),
            )

        if self.uri_object_key or self.singleton:
            # If the resource has particular items in it...
            if self.uri_object_key:
                base_regex = r'^(?P<%s>%s)/' % (self.uri_object_key,
                                                self.uri_object_key_regex)
            elif self.singleton:
                base_regex = r'^'

            urlpatterns += never_cache_patterns('',
                url(base_regex + '$', self,
                    name=self._build_named_url(self.name))
            )

            for resource in self.item_child_resources:
                resource._parent_resource = self
                child_regex = base_regex + resource.uri_name + '/'
                urlpatterns += patterns('',
                    url(child_regex, include(resource.get_url_patterns())),
                )

        return urlpatterns
Example #3
0
from djblets.util.misc import never_cache_patterns

from reviewboard.reviews.models import ReviewRequest


urlpatterns = never_cache_patterns('djblets.webapi.auth',
    # Accounts
    (r'^accounts/login/$', 'account_login'),
    (r'^accounts/logout/$', 'account_logout'),
)


urlpatterns += never_cache_patterns('reviewboard.webapi.json',
    # Server information
    (r'^info/$', 'server_info'),

    # Repositories
    (r'^repositories/$', 'repository_list'),
    (r'^repositories/(?P<repository_id>[0-9]+)/info/$', 'repository_info'),

    # Users
    (r'^users/$', 'user_list'),

    # Groups
    (r'^groups/$', 'group_list'),
    (r'^groups/(?P<group_name>[A-Za-z0-9_-]+)/users/$', 'users_in_group'),

    # Review groups
    (r'^groups/(?P<group_name>[A-Za-z0-9_-]+)/star/$',
     'group_star'),
    (r'^groups/(?P<group_name>[A-Za-z0-9_-]+)/unstar/$',