@@ -127,6 +127,7 @@ class ProjectSpamThreshold(admin.SimpleListFilter):
127
127
title = 'Spam Threshold'
128
128
parameter_name = 'spam_threshold'
129
129
130
+ NOT_ENOUGH_SCORE = 'not_enough_score'
130
131
DONT_SHOW_ADS = 'dont_show_ads'
131
132
DENY_ON_ROBOTS = 'deny_on_robots'
132
133
DONT_SERVE_DOCS = 'dont_serve_docs'
@@ -135,50 +136,79 @@ class ProjectSpamThreshold(admin.SimpleListFilter):
135
136
136
137
def lookups (self , request , model_admin ):
137
138
return (
139
+ (
140
+ self .NOT_ENOUGH_SCORE ,
141
+ _ ("Not spam (1-{})" ).format (
142
+ settings .RTD_SPAM_THRESHOLD_DONT_SHOW_ADS ,
143
+ ),
144
+ ),
138
145
(
139
146
self .DONT_SHOW_ADS ,
140
- _ ("Don't show Ads ({})" ).format (
147
+ _ ("Don't show Ads ({}-{} )" ).format (
141
148
settings .RTD_SPAM_THRESHOLD_DONT_SHOW_ADS ,
149
+ settings .RTD_SPAM_THRESHOLD_DENY_ON_ROBOTS ,
142
150
),
143
151
),
144
152
(
145
153
self .DENY_ON_ROBOTS ,
146
- _ ('Deny on robots ({})' ).format (
154
+ _ ('Deny on robots ({}-{} )' ).format (
147
155
settings .RTD_SPAM_THRESHOLD_DENY_ON_ROBOTS ,
156
+ settings .RTD_SPAM_THRESHOLD_DONT_SHOW_DASHBOARD ,
148
157
),
149
158
),
150
159
(
151
160
self .DONT_SHOW_DASHBOARD ,
152
- _ ("Don't show dashboard ({})" ).format (
161
+ _ ("Don't show dashboard ({}-{} )" ).format (
153
162
settings .RTD_SPAM_THRESHOLD_DONT_SHOW_DASHBOARD ,
163
+ settings .RTD_SPAM_THRESHOLD_DONT_SERVE_DOCS ,
154
164
),
155
165
),
156
166
(
157
167
self .DONT_SERVE_DOCS ,
158
- _ ("Don't serve docs ({})" ).format (
168
+ _ ("Don't serve docs ({}-{} )" ).format (
159
169
settings .RTD_SPAM_THRESHOLD_DONT_SERVE_DOCS ,
170
+ settings .RTD_SPAM_THRESHOLD_DELETE_PROJECT ,
160
171
),
161
172
),
162
173
(
163
174
self .DELETE_PROJECT ,
164
- _ ('Delete project ({})' ).format (
175
+ _ ('Delete project (>= {})' ).format (
165
176
settings .RTD_SPAM_THRESHOLD_DELETE_PROJECT ,
166
177
),
167
178
),
168
179
)
169
180
170
181
def queryset (self , request , queryset ):
171
182
queryset = queryset .annotate (spam_score = Sum ('spam_rules__value' ))
183
+ if self .value () == self .NOT_ENOUGH_SCORE :
184
+ return queryset .filter (
185
+ spam_score__gte = 1 ,
186
+ spam_score__lt = settings .RTD_SPAM_THRESHOLD_DONT_SHOW_ADS ,
187
+ )
172
188
if self .value () == self .DONT_SHOW_ADS :
173
- return queryset .filter (spam_score__gte = settings .RTD_SPAM_THRESHOLD_DONT_SHOW_ADS )
189
+ return queryset .filter (
190
+ spam_score__gte = settings .RTD_SPAM_THRESHOLD_DONT_SHOW_ADS ,
191
+ spam_score__lt = settings .RTD_SPAM_THRESHOLD_DENY_ON_ROBOTS ,
192
+ )
174
193
if self .value () == self .DENY_ON_ROBOTS :
175
- return queryset .filter (spam_score__gte = settings .RTD_SPAM_THRESHOLD_DENY_ON_ROBOTS )
194
+ return queryset .filter (
195
+ spam_score__gte = settings .RTD_SPAM_THRESHOLD_DENY_ON_ROBOTS ,
196
+ spam_score__lt = settings .RTD_SPAM_THRESHOLD_DONT_SERVE_DOCS ,
197
+ )
176
198
if self .value () == self .DONT_SERVE_DOCS :
177
- return queryset .filter (spam_score__gte = settings .RTD_SPAM_THRESHOLD_DONT_SERVE_DOCS )
199
+ return queryset .filter (
200
+ spam_score__gte = settings .RTD_SPAM_THRESHOLD_DONT_SERVE_DOCS ,
201
+ spam_score__lt = settings .RTD_SPAM_THRESHOLD_DONT_SHOW_DASHBOARD ,
202
+ )
178
203
if self .value () == self .DONT_SHOW_DASHBOARD :
179
- return queryset .filter (spam_score__gte = settings .RTD_SPAM_THRESHOLD_DONT_SHOW_DASHBOARD )
204
+ return queryset .filter (
205
+ spam_score__gte = settings .RTD_SPAM_THRESHOLD_DONT_SHOW_DASHBOARD ,
206
+ spam_score__lt = settings .RTD_SPAM_THRESHOLD_DELETE_PROJECT ,
207
+ )
180
208
if self .value () == self .DELETE_PROJECT :
181
- return queryset .filter (spam_score__gte = settings .RTD_SPAM_THRESHOLD_DELETE_PROJECT )
209
+ return queryset .filter (
210
+ spam_score__gte = settings .RTD_SPAM_THRESHOLD_DELETE_PROJECT ,
211
+ )
182
212
return queryset
183
213
184
214
0 commit comments