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
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
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/$',