[extensions-web] popularity: properly update extension field. Clean old popularity items.



commit 5b32f00f22026957aaeed55ed3df9457e53b2d17
Author: Yuri Konotopov <ykonotopov gnome org>
Date:   Sun Dec 4 03:21:50 2016 +0400

    popularity: properly update extension field. Clean old popularity items.

 bin/sweettooth-cron-update |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)
---
diff --git a/bin/sweettooth-cron-update b/bin/sweettooth-cron-update
index 12080f1..9f3f379 100755
--- a/bin/sweettooth-cron-update
+++ b/bin/sweettooth-cron-update
@@ -18,9 +18,13 @@ from sweettooth.extensions.models import Extension
 django.setup()
 
 for ext in Extension.objects.all():
-    data = (ext.popularity_items
-            .filter(date__gt=(datetime.datetime.now()-datetime.timedelta(days=7)))
-            .aggregate(popularity=Sum('offset')))
-    if data['popularity'] is not None:
-        ext.popularity = data['popularity']
+    date = datetime.datetime.now()-datetime.timedelta(days=7)
+    popularity_data = ext.popularity_items.filter(date__gt=date).aggregate(popularity=Sum('offset'))
+
+    popularity_data['popularity'] = popularity_data['popularity'] or 0
+
+    if popularity_data['popularity'] != ext.popularity:
+        ext.popularity = popularity_data['popularity']
         ext.save(replace_metadata_json=False)
+
+    ext.popularity_items.filter(date__lte=date).delete()


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]