コード例 #1
0
ファイル: urls.py プロジェクト: wechange-eg/cosinnus-core
 def register(self, app, root_patterns=None, group_patterns=None,
              api_patterns=None, url_app_name_override=None):
     with self.lock:
         try:
             app_name = app_registry.get_name(app)
         except KeyError:
             raise ImproperlyConfigured('You need to register the app "%s" '
                 'before you can use it to build URLs.' % app)
         if app in self._apps:
             return
         self._apps.add(app)
         
         # group patterns are added for each group model, using the url key of the group model,
         # setting to the group base url of that model,
         # and modifying the URL pattern name with the registered group model prefix!
         if group_patterns:
             url_app_name = url_app_name_override or app_name
             patterns_copy = []
             for url_key in group_model_registry:
                 url_base = r'^%s/(?P<group>[^/]+)/%s/' % (url_key, url_app_name)
                 for patt in group_patterns:
                     patterns_copy.append(url(url_base+patt.pattern._regex[1:], patt.callback, patt.default_args, name=group_model_registry.get_url_name_prefix(url_key, '') + patt.name))
             
             self._urlpatterns += [
                 url('', include((patterns_copy, app_name), namespace=app_name)),
             ]
         if root_patterns:
             self._urlpatterns += [
                 url(r'', include(root_patterns))
             ]
         if api_patterns:
             self._api_urlpatterns += [
                 url(r'^', include((api_patterns, app_name), namespace=app_name)),
             ]
コード例 #2
0
ファイル: urls.py プロジェクト: ecobasa/cosinnus-core
 def register(self,
              app,
              root_patterns=None,
              group_patterns=None,
              api_patterns=None):
     with self.lock:
         try:
             app_name = app_registry.get_name(app)
         except KeyError:
             raise ImproperlyConfigured(
                 'You need to register the app "%s" '
                 'before you can use it to build URLs.' % app)
         if app in self._apps:
             return
         self._apps.add(app)
         if root_patterns:
             self._urlpatterns += patterns(
                 '',
                 url(
                     r'',
                     include(root_patterns,
                             namespace=app_name,
                             app_name=app)))
         if group_patterns:
             url_app_name = app_name
             url_base = r'^group/(?P<group>[^/]+)/%s/' % url_app_name
             self._urlpatterns += patterns(
                 '',
                 url(
                     url_base,
                     include(group_patterns,
                             namespace=app_name,
                             app_name=app)),
             )
         if api_patterns:
             self._api_urlpatterns += patterns(
                 '',
                 url(
                     r'^',
                     include(api_patterns, namespace=app_name,
                             app_name=app)),
             )
コード例 #3
0
    def get_context_data(self, **kwargs):
        context = super(GroupObjectCountMixin, self).get_context_data(**kwargs)

        object_counts = {}
        for app in app_registry:
            app_name = app_registry.get_name(app)
            if self.group.is_app_deactivated(app):
                continue
            if app in self.app_object_count_mappings:
                model = resolve_class(self.app_object_count_mappings[app])
                # only for counting the objects, we use a fake superuser, so we get the actual
                # counts of the contents, and not the visible ones for current user
                fake_admin = AnonymousUser()
                fake_admin.is_superuser = True
                object_counts[app_name] = model.get_current(
                    self.group, fake_admin).count()
        context.update({
            'object_counts': object_counts,
        })
        return context