From 956b3d39dfdea49cd4cbb85c38ca17044e2a3422 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Wed, 27 Jun 2012 09:48:04 +0000 Subject: [PATCH] Changes to the rule specifications for document tracking lists: Simplify the filter rules, show acronym in wg and area selection lists, list only ADs of active areas. - Legacy-Id: 4527 --- ietf/community/rules.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/ietf/community/rules.py b/ietf/community/rules.py index e04472771..4cf5cc904 100644 --- a/ietf/community/rules.py +++ b/ietf/community/rules.py @@ -31,10 +31,10 @@ class WgAsociatedRule(RuleManager): description = 'All I-Ds associated with a particular WG' def get_documents(self): - return Document.objects.filter(Q(type__name='Draft') | Q(states__name='rfc')).filter(group__acronym=self.value).distinct() + return Document.objects.filter(type='draft').filter(group__acronym=self.value).distinct() def options(self): - return [(i.acronym, i.name) for i in Group.objects.filter(type='wg', state='active').distinct().order_by('name')] + return [(i.acronym, "%s — %s"%(i.acronym, i.name)) for i in Group.objects.filter(type='wg', state='active').distinct().order_by('name')] def show_value(self): try: @@ -48,10 +48,10 @@ class AreaAsociatedRule(RuleManager): description = 'All I-Ds associated with all WGs in a particular Area' def get_documents(self): - return Document.objects.filter(Q(type__name='Draft') | Q(states__name='rfc')).filter(group__parent__acronym=self.value, group__parent__type='area').distinct() + return Document.objects.filter(type='draft').filter(group__parent__acronym=self.value, group__parent__type='area').distinct() def options(self): - return [(i.acronym, i.name) for i in Group.objects.filter(type='area', state='active').distinct().order_by('name')] + return [(i.acronym, "%s — %s"%(i.acronym, i.name)) for i in Group.objects.filter(type='area', state='active').distinct().order_by('name')] def show_value(self): try: @@ -65,10 +65,10 @@ class AdResponsibleRule(RuleManager): description = 'All I-Ds with a particular responsible AD' def get_documents(self): - return Document.objects.filter(Q(type__name='Draft') | Q(states__name='rfc')).filter(ad=self.value).distinct() + return Document.objects.filter(type='draft').filter(ad=self.value).distinct() def options(self): - return [(i.pk, i.name) for i in Person.objects.filter(role__name='ad').distinct().order_by('name')] + return [(i.pk, i.name) for i in Person.objects.filter(role__name='ad',group__state='active').distinct().order_by('name')] def show_value(self): try: @@ -82,7 +82,7 @@ class AuthorRule(RuleManager): description = 'All I-Ds with a particular author' def get_documents(self): - return Document.objects.filter(Q(type__name='Draft') | Q(states__name='rfc')).filter(authors__person__name__icontains=self.value).distinct() + return Document.objects.filter(type='draft').filter(authors__person__name__icontains=self.value).distinct() class ShepherdRule(RuleManager): @@ -90,7 +90,7 @@ class ShepherdRule(RuleManager): description = 'All I-Ds with a particular document shepherd' def get_documents(self): - return Document.objects.filter(Q(type__name='Draft') | Q(states__name='rfc')).filter(shepherd__name__icontains=self.value).distinct() + return Document.objects.filter(type='draft').filter(shepherd__name__icontains=self.value).distinct() class ReferenceToRFCRule(RuleManager): @@ -98,7 +98,7 @@ class ReferenceToRFCRule(RuleManager): description = 'All I-Ds that have a reference to a particular RFC' def get_documents(self): - return Document.objects.filter(Q(type__name='Draft') | Q(states__name='rfc')).filter(relateddocument__target__document__states__name='rfc', relateddocument__target__document__name__icontains=self.value).distinct() + return Document.objects.filter(type='draft').filter(relateddocument__target__document__states='rfc', relateddocument__target__document__name__icontains=self.value).distinct() class ReferenceToIDRule(RuleManager): @@ -106,7 +106,7 @@ class ReferenceToIDRule(RuleManager): description = 'All I-Ds that have a reference to a particular I-D' def get_documents(self): - return Document.objects.filter(Q(type__name='Draft') | Q(states__name='rfc')).filter(relateddocument__target__document__type__name='Draft', relateddocument__target__document__name__icontains=self.value).distinct() + return Document.objects.filter(type='draft').filter(relateddocument__target__document__type='draft', relateddocument__target__document__name__icontains=self.value).distinct() class ReferenceFromRFCRule(RuleManager): @@ -114,7 +114,7 @@ class ReferenceFromRFCRule(RuleManager): description = 'All I-Ds that are referenced by a particular RFC' def get_documents(self): - return Document.objects.filter(Q(type__name='Draft') | Q(states__name='rfc')).filter(relateddocument__source__states__name='rfc', relateddocument__source__name__icontains=self.value).distinct() + return Document.objects.filter(type='draft').filter(relateddocument__source__states='rfc', relateddocument__source__name__icontains=self.value).distinct() @@ -123,7 +123,7 @@ class ReferenceFromIDRule(RuleManager): description = 'All I-Ds that are referenced by a particular I-D' def get_documents(self): - return Document.objects.filter(Q(type__name='Draft') | Q(states__name='rfc')).filter(relateddocument__source__type__name='Draft', relateddocument__source__name__icontains=self.value).distinct() + return Document.objects.filter(type='draft').filter(relateddocument__source__type='draft', relateddocument__source__name__icontains=self.value).distinct() class WithTextRule(RuleManager): @@ -131,7 +131,7 @@ class WithTextRule(RuleManager): description = 'All I-Ds that contain a particular text string in the name' def get_documents(self): - return Document.objects.filter(type__name='Draft').filter(name__icontains=self.value).distinct() + return Document.objects.filter(type='draft').filter(name__icontains=self.value).distinct() TYPES_OF_RULES = [(i.codename, i.description) for i in RuleManager.__subclasses__()]