--- a/web/hdalab/management/commands/query_category_inclusion.py Tue Jul 03 17:50:26 2012 +0200
+++ b/web/hdalab/management/commands/query_category_inclusion.py Wed Jul 04 10:31:59 2012 +0200
@@ -38,11 +38,6 @@
dest='force',
default=False,
help='ask no questions'),
- make_option('--random',
- action='store_true',
- dest='random',
- default=False,
- help='randomize query on categories'),
make_option('--site',
action='store',
type='string',
@@ -117,28 +112,21 @@
site_url = options.get('site_url', settings.WIKIPEDIA_API_URL)
- random = options.get('random', False)
-
types_mask = 0
if self.verbosity > 2:
print "option passed : " + repr(options)
- queryset = WpCategory.objects
+ queryset = WpCategory.objects.filter(tags__hidden = False).distinct()
cat_list = options.get("category", []);
if cat_list:
queryset = queryset.filter(label__in=cat_list)
elif not options.get('all',False):
- queryset = queryset.annotate(wpc=Count('child_categories')).filter(wpc = 0)
- #else:
- # queryset = Tag.objects.filter(url_status=None)
+ queryset = queryset.annotate(wpc=Count('child_categories')).filter(wpc = 0)
- if random:
- queryset = queryset.order_by("?")
- else:
- queryset = queryset.order_by("label")
+ queryset = queryset.order_by("label")
if limit >= 0:
queryset = queryset[start:limit]
--- a/web/hdalab/models/categories.py Tue Jul 03 17:50:26 2012 +0200
+++ b/web/hdalab/models/categories.py Wed Jul 04 10:31:59 2012 +0200
@@ -19,7 +19,7 @@
class TagWpCategory(models.Model):
tag = models.ForeignKey(Tag, related_name="wp_categories")
- wp_category = models.ForeignKey(WpCategory)
+ wp_category = models.ForeignKey(WpCategory, related_name="tags")
hidden = models.BooleanField(blank=False, null=False)
class Meta:
--- a/web/hdalab/views/ajax.py Tue Jul 03 17:50:26 2012 +0200
+++ b/web/hdalab/views/ajax.py Wed Jul 04 10:31:59 2012 +0200
@@ -230,10 +230,15 @@
q = request.GET.get('term',None)
- qs = WpCategory.objects.filter( Q(label__icontains = ' ' + q ) | Q(label__istartswith = q))
+ qs = WpCategory.objects.filter(tags__hidden = False).distinct().filter(Q(label__icontains = ' ' + q ) | Q(label__istartswith = q))
+
+# qs = WpCategory.objects.filter(label__istartswith = q).order_by('label')[:40]
res = [{'value':t.label} for t in qs]
+# qs = WpCategory.objects.filter(label__icontains = ' ' + q).order_by('label')[:30]
+# res += [{'value':t.label} for t in qs]
+
return HttpResponse(content=json.dumps(res), mimetype='application/json')
def filter(request):