def init_with_context(self, context): """ Initializes the link list. """ super(PersonalModule, self).init_with_context(context) current_user = context['request'].user if django.VERSION < (1, 5): current_username = current_user.first_name or current_user.username else: current_username = current_user.get_short_name( ) or current_user.get_username() site_name = get_admin_site_name(context) # Personalize self.title = _('Welcome,') + ' ' + (current_username) # Expose links self.pages_link = None self.pages_title = None self.password_link = reverse('{0}:password_change'.format(site_name)) self.logout_link = reverse('{0}:logout'.format(site_name)) if self.cms_page_model: try: app_label, model_name = self.cms_page_model model = get_model(app_label, model_name) pages_title = model._meta.verbose_name_plural.lower() pages_link = reverse('{site}:{app}_{model}_changelist'.format( site=site_name, app=app_label.lower(), model=model_name.lower())) except AttributeError: raise ImproperlyConfigured( "The value {0} of FLUENT_DASHBOARD_CMS_PAGE_MODEL setting (or cms_page_model value) does not reffer to an existing model." .format(self.cms_page_model)) except NoReverseMatch: pass else: # Also check if the user has permission to view the module. # TODO: When there are modules that use Django 1.8's has_module_permission, add the support here. permission_name = 'change_{0}'.format( get_meta_model_name(model._meta).lower()) if current_user.has_perm('{0}.{1}'.format( model._meta.app_label, permission_name)): self.pages_title = pages_title self.pages_link = pages_link
def init_with_context(self, context): """ Initializes the link list. """ super(PersonalModule, self).init_with_context(context) current_user = context['request'].user if django.VERSION < (1, 5): current_username = current_user.first_name or current_user.username else: current_username = current_user.get_short_name() or current_user.get_username() site_name = get_admin_site_name(context) # Personalize self.title = _('Welcome,') + ' ' + (current_username) # Expose links self.pages_link = None self.pages_title = None self.password_link = reverse('{0}:password_change'.format(site_name)) self.logout_link = reverse('{0}:logout'.format(site_name)) if self.cms_page_model: try: app_label, model_name = self.cms_page_model model = get_model(app_label, model_name) pages_title = model._meta.verbose_name_plural.lower() pages_link = reverse('{site}:{app}_{model}_changelist'.format(site=site_name, app=app_label.lower(), model=model_name.lower())) except AttributeError: raise ImproperlyConfigured("The value {0} of FLUENT_DASHBOARD_CMS_PAGE_MODEL setting (or cms_page_model value) does not reffer to an existing model.".format(self.cms_page_model)) except NoReverseMatch: pass else: # Also check if the user has permission to view the module. # TODO: When there are modules that use Django 1.8's has_module_permission, add the support here. permission_name = 'change_{0}'.format(get_meta_model_name(model._meta).lower()) if current_user.has_perm('{0}.{1}'.format(model._meta.app_label, permission_name)): self.pages_title = pages_title self.pages_link = pages_link
def init_with_context(self, context): """ Initialize the menu. """ # Apply the include/exclude patterns: listitems = self._visible_models(context['request']) # Convert to a similar data structure like the dashboard icons have. # This allows sorting the items identically. models = [{ 'name': get_meta_model_name(model._meta), 'app_name': model._meta.app_label, 'title': capfirst(model._meta.verbose_name_plural), 'url': self._get_admin_change_url(model, context) } for model, perms in listitems if self.is_item_visible(model, perms)] # Sort models. sort_cms_models(models) # Convert to items for model in models: self.children.append( items.MenuItem(title=model['title'], url=model['url']))
def init_with_context(self, context): """ Initialize the menu. """ # Apply the include/exclude patterns: listitems = self._visible_models(context['request']) # Convert to a similar data structure like the dashboard icons have. # This allows sorting the items identically. models = [ { 'name': get_meta_model_name(model._meta), 'app_name': model._meta.app_label, 'title': capfirst(model._meta.verbose_name_plural), 'url': self._get_admin_change_url(model, context) } for model, perms in listitems if self.is_item_visible(model, perms) ] # Sort models. sort_cms_models(models) # Convert to items for model in models: self.children.append(items.MenuItem(title=model['title'], url=model['url']))