22from django .db .models .query import QuerySet
33
44
5+ class MixinManager (object ):
6+ def __getattr__ (self , attr , * args ):
7+ try :
8+ return getattr (self .__class__ , attr , * args )
9+ except AttributeError :
10+ return getattr (self .get_query_set (), attr , * args )
11+
12+
513class NomineePositionQuerySet (QuerySet ):
614
715 def get_by_nomcom (self , nomcom ):
@@ -23,16 +31,10 @@ def declined(self):
2331 return self .by_state ('declined' )
2432
2533
26- class NomineePositionManager (models .Manager ):
34+ class NomineePositionManager (models .Manager , MixinManager ):
2735 def get_query_set (self ):
2836 return NomineePositionQuerySet (self .model )
2937
30- def __getattr__ (self , attr , * args ):
31- try :
32- return getattr (self .__class__ , attr , * args )
33- except AttributeError :
34- return getattr (self .get_query_set (), attr , * args )
35-
3638
3739class NomineeManager (models .Manager ):
3840 def get_by_nomcom (self , nomcom ):
@@ -53,12 +55,29 @@ def closed(self):
5355 return self .filter (is_open = False )
5456
5557
56- class PositionManager (models .Manager ):
58+ class PositionManager (models .Manager , MixinManager ):
5759 def get_query_set (self ):
5860 return PositionQuerySet (self .model )
5961
60- def __getattr__ (self , attr , * args ):
61- try :
62- return getattr (self .__class__ , attr , * args )
63- except AttributeError :
64- return getattr (self .get_query_set (), attr , * args )
62+
63+ class FeedbackQuerySet (QuerySet ):
64+
65+ def get_by_nomcom (self , nomcom ):
66+ return self .filter (nomcom = nomcom )
67+
68+ def by_type (self , type ):
69+ return self .filter (type = type )
70+
71+ def comments (self ):
72+ return self .by_type ('comment' )
73+
74+ def questionnaires (self ):
75+ return self .by_type ('questio' )
76+
77+ def nominations (self ):
78+ return self .by_type ('nomina' )
79+
80+
81+ class FeedbackManager (models .Manager , MixinManager ):
82+ def get_query_set (self ):
83+ return FeedbackQuerySet (self .model )
0 commit comments