From 7debcb4868b6e3a30ce1b7bf7423350204a3a0dd Mon Sep 17 00:00:00 2001 From: jordan Date: Sat, 19 Mar 2011 09:14:34 +0000 Subject: [PATCH] #OSQAAWS-69, It was not a good idea to make the filtration for the moderation module directly from the Node and Tag managers. This way the moderation module depends on the Modules API and becomes unstable. git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@867 0cfe37f9-358a-4d5e-be75-b63607b5c754 --- forum/models/node.py | 26 +------------------------- forum/models/tag.py | 33 +++------------------------------ 2 files changed, 4 insertions(+), 55 deletions(-) diff --git a/forum/models/node.py b/forum/models/node.py index 98c5383..553b6c2 100644 --- a/forum/models/node.py +++ b/forum/models/node.py @@ -142,36 +142,12 @@ class NodeManager(CachedManager): use_for_related_fields = True def get_query_set(self): - CurrentUserHolder = None - - # We try to import from the moderation module. - try: - moderation_import = 'from %s.moderation.startup import CurrentUserHolder' % MODULES_PACKAGE - exec moderation_import - - moderation_enabled = True - except: - moderation_enabled = False - qs = NodeQuerySet(self.model) + # If the node is an answer, question or comment we filter the Node model by type if self.model is not Node: qs = qs.filter(node_type=self.model.get_type()) - # If the moderation module has been enabled we make the filtration - if CurrentUserHolder is not None and moderation_enabled: - user = CurrentUserHolder.user - - try: - filter_content = not user.is_staff and not user.is_superuser - except: - filter_content = True - - if filter_content: - qs = qs.exclude(state_string__contains="(in_moderation)").exclude(state_string__contains="(deleted)").exclude( - state_string__contains="(rejected)" - ) - return qs def get_for_types(self, types, *args, **kwargs): diff --git a/forum/models/tag.py b/forum/models/tag.py index 5cbaf8a..93d235b 100644 --- a/forum/models/tag.py +++ b/forum/models/tag.py @@ -3,38 +3,11 @@ from base import * from django.utils.translation import ugettext as _ +from forum import modules + class ActiveTagManager(models.Manager): def get_query_set(self): - qs = super(ActiveTagManager, self).get_query_set().exclude(used_count__lt=1) - - CurrentUserHolder = None - - # We try to import the moderation module and if the import is successful we make the filtration - try: - moderation_import = 'from %s.moderation.startup import CurrentUserHolder' % MODULES_PACKAGE - exec moderation_import - - moderation_enabled= True - except: - moderation_enabled = False - - # If the moderation module has been enabled we make the filtration - if CurrentUserHolder is not None and moderation_enabled: - user = CurrentUserHolder.user - - try: - filter_content = not user.is_staff and not user.is_superuser - except: - filter_content = True - - if filter_content: - moderation_import = 'from %s.moderation.hooks import get_tag_ids' % MODULES_PACKAGE - exec moderation_import - qs = qs.exclude(id__in=get_tag_ids('deleted')).exclude(id__in=get_tag_ids('rejected')).exclude( - id__in=get_tag_ids('in_moderation') - ) - - return qs + return super(ActiveTagManager, self).get_query_set().exclude(used_count__lt=1) class Tag(BaseModel): name = models.CharField(max_length=255, unique=True) -- 2.39.5