summaryrefslogtreecommitdiff
path: root/chimere/management/commands/chimere_update_search_engine.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/management/commands/chimere_update_search_engine.py')
-rw-r--r--chimere/management/commands/chimere_update_search_engine.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/chimere/management/commands/chimere_update_search_engine.py b/chimere/management/commands/chimere_update_search_engine.py
new file mode 100644
index 0000000..8ab5aeb
--- /dev/null
+++ b/chimere/management/commands/chimere_update_search_engine.py
@@ -0,0 +1,22 @@
+import sys
+
+from django.core.management.base import BaseCommand
+from chimere import models
+
+
+class Command(BaseCommand):
+ help = "Update internal search engine"
+
+ def handle(self, *args, **options):
+ for model in [models.Marker, models.Route, models.Polygon]:
+ sys.stdout.write("* {}\n".format(model))
+ changed = 0
+ q = model.objects
+ total = q.count()
+ for idx, item in enumerate(q.all()):
+ sys.stdout.write("{}/{}\r".format(idx + 1, total))
+ sys.stdout.flush()
+ changed += 1 if item.update_search_vector() else 0
+ print("{} item(s) updated".format(changed))
+
+