def get_queryset(self): self.category_slug = self.kwargs.get('category_slug', 'all') all_category_slugs = settings_registry.get_registered_categories( features_enabled=get_licensed_features()).keys() for slug_to_delete in VERSION_SPECIFIC_CATEGORIES_TO_EXCLUDE[ get_request_version(self.request)]: all_category_slugs.remove(slug_to_delete) if self.request.user.is_superuser or getattr( self.request.user, 'is_system_auditor', False): category_slugs = all_category_slugs else: category_slugs = {'user'} if self.category_slug not in all_category_slugs: raise Http404 if self.category_slug not in category_slugs: raise PermissionDenied() registered_settings = settings_registry.get_registered_settings( category_slug=self.category_slug, read_only=False, features_enabled=get_licensed_features(), slugs_to_ignore=VERSION_SPECIFIC_CATEGORIES_TO_EXCLUDE[ get_request_version(self.request)]) if self.category_slug == 'user': return Setting.objects.filter(key__in=registered_settings, user=self.request.user) else: return Setting.objects.filter(key__in=registered_settings, user__isnull=True)
def get_queryset(self): setting_categories = [] categories = settings_registry.get_registered_categories() if self.request.user.is_superuser or self.request.user.is_system_auditor: pass # categories = categories elif 'user' in categories: categories = {'user', _('User')} else: categories = {} for category_slug in sorted(categories.keys()): url = reverse('api:setting_singleton_detail', kwargs={'category_slug': category_slug}, request=self.request) setting_categories.append( SettingCategory(url, category_slug, categories[category_slug])) return setting_categories
def get_queryset(self): setting_categories = [] categories = settings_registry.get_registered_categories( features_enabled=get_licensed_features()) if self.request.user.is_superuser or self.request.user.is_system_auditor: pass # categories = categories elif 'user' in categories: categories = {'user', _('User')} else: categories = {} for category_slug in sorted(categories.keys()): if category_slug in VERSION_SPECIFIC_CATEGORIES_TO_EXCLUDE[ get_request_version(self.request)]: continue url = reverse('api:setting_singleton_detail', kwargs={'category_slug': category_slug}, request=self.request) setting_categories.append( SettingCategory(url, category_slug, categories[category_slug])) return setting_categories
def handle(self, *args, **options): self.verbosity = int(options.get('verbosity', 1)) self.dry_run = bool(options.get('dry_run', False)) self.skip_errors = bool(options.get('skip_errors', False)) self.no_comment = bool(options.get('no_comment', False)) self.comment_only = bool(options.get('comment_only', False)) self.backup_suffix = options.get('backup_suffix', '') self.categories = options.get('category', None) or ['all'] self.style.HEADING = self.style.MIGRATE_HEADING self.style.LABEL = self.style.MIGRATE_LABEL self.style.OK = self.style.SQL_FIELD self.style.SKIP = self.style.WARNING self.style.VALUE = self.style.SQL_KEYWORD # Determine if any categories provided are invalid. category_slugs = [] invalid_categories = [] for category in self.categories: category_slug = slugify(category) if category_slug in settings_registry.get_registered_categories(): if category_slug not in category_slugs: category_slugs.append(category_slug) else: if category not in invalid_categories: invalid_categories.append(category) if len(invalid_categories) == 1: raise CommandError('Invalid setting category: {}'.format( invalid_categories[0])) elif len(invalid_categories) > 1: raise CommandError('Invalid setting categories: {}'.format( ', '.join(invalid_categories))) # Build a list of all settings to be migrated. registered_settings = [] for category_slug in category_slugs: for registered_setting in settings_registry.get_registered_settings( category_slug=category_slug, read_only=False): if registered_setting not in registered_settings: registered_settings.append(registered_setting) self._migrate_settings(registered_settings)
def get_queryset(self): self.category_slug = self.kwargs.get('category_slug', 'all') all_category_slugs = list( settings_registry.get_registered_categories().keys()) if self.request.user.is_superuser or getattr( self.request.user, 'is_system_auditor', False): category_slugs = all_category_slugs else: category_slugs = {'user'} if self.category_slug not in all_category_slugs: raise Http404 if self.category_slug not in category_slugs: raise PermissionDenied() registered_settings = settings_registry.get_registered_settings( category_slug=self.category_slug, read_only=False) if self.category_slug == 'user': return Setting.objects.filter(key__in=registered_settings, user=self.request.user) else: return Setting.objects.filter(key__in=registered_settings, user__isnull=True)