2 Commitit adbf588137 ... 9bf0c8b541

Tekijä SHA1 Viesti Päivämäärä
  Mohidul Islam 9bf0c8b541 added link to nav bar 3 vuotta sitten
  Mohidul Islam bbd2ccbad9 Added google and facebook reviewcount in one graph 3 vuotta sitten

+ 23 - 9
manager/analytics.py

@@ -13,7 +13,7 @@ def get_weeks(_year, _week):
         return this_year
 
 
-def weekly_positive_review_count():
+def weekly_google_positive_review_count():
     sql = f'''
             select 
                 week(create_time) as week,
@@ -44,7 +44,7 @@ def weekly_positive_review_count():
         return res, location_dict.values()
 
 
-def weekly_negative_review_count():
+def weekly_google_negative_review_count():
     sql = f'''
             select 
                 week(create_time) as week,
@@ -90,7 +90,7 @@ def weekly_facebook_positive_review_count():
             ORDER BY week DESC;
            '''
     now = timezone.now()
-    location_dict = dict(Location.objects.values_list('location_id', 'care_name'))
+    location_dict = dict(Location.objects.values_list('facebookpage__id', 'care_name'))
     with connection.cursor() as cursor:
         cursor.execute(sql)
         rows = cursor.fetchall()
@@ -106,22 +106,22 @@ def weekly_facebook_positive_review_count():
         return res, location_dict.values()
 
 
-def weekly_negative_review_count():
+def weekly_facebook_negative_review_count():
     sql = f'''
             select 
                 week(create_time) as week,
                 year(create_time) as year,
-                location_id,
+                page_id,
                 count(*) as rev_count
-            from review_review
+            from facebook_app_facebookreview
             where 
                 create_time >= (curdate() - interval 10 week) and
-                star_rating <= 3
-            group by week(create_time), location_id
+                recommendation_type = false
+            group by week(create_time), page_id
             ORDER BY week DESC;
            '''
     now = timezone.now()
-    location_dict = dict(Location.objects.values_list('location_id', 'care_name'))
+    location_dict = dict(Location.objects.values_list('facebookpage__id', 'care_name'))
     with connection.cursor() as cursor:
         cursor.execute(sql)
         rows = cursor.fetchall()
@@ -135,3 +135,17 @@ def weekly_negative_review_count():
             # res[w[0]] = weeks_res
             res.append(weeks_res)
         return res
+
+
+def weekly_positive_review_count():
+    X, loc = weekly_google_positive_review_count()
+    Y, loc = weekly_facebook_positive_review_count()
+    result = [[X[i][j] + Y[i][j] for j in range(len(X[0]))] for i in range(len(X))]
+    return result, loc
+
+
+def weekly_negative_review_count():
+    X = weekly_google_negative_review_count()
+    Y = weekly_facebook_negative_review_count()
+    result = [[X[i][j] + Y[i][j] for j in range(len(X[0]))] for i in range(len(X))]
+    return result

+ 1 - 1
manager/templates/_positive_review_graph.html

@@ -9,7 +9,7 @@
 <script>
   var ctx = document.getElementById("myPosChart");
   var neg_ctx = document.getElementById("myNegChart");
-  var endpoint = 'http://178.128.152.51:8000/managers/graphs/review-analysis';
+  var endpoint = '/managers/graphs/review-analysis';
   $.ajax({
         type: "get",
         url: endpoint,

+ 4 - 1
manager/templates/locations.html

@@ -49,8 +49,11 @@
         </ul>
 
         <ul class="navbar-nav px-3">
-          <li class="nav-item text-nowrap">
+<!--          <li class="nav-item text-nowrap">
               <button style="background: center; border-color: dimgrey; padding: 7px;" type="button" class="nav-link btn btn-primary" data-toggle="modal" data-target="#fileUploadModal">Import staff</button>
+          </li>-->
+          <li class="nav-item text-nowrap">
+            <a class="nav-link" href="/managers/review-analysis/">Review summary</a>
           </li>
         </ul>
 

+ 1 - 1
manager/views.py

@@ -1,5 +1,4 @@
 import datetime
-
 import openpyxl
 from rest_framework import status
 from rest_framework.views import APIView
@@ -285,6 +284,7 @@ class ReviewAnalysis(APIView):
         pos_ratings, labels = weekly_positive_review_count()
         neg_ratings = weekly_negative_review_count()
         weeks = get_weeks(now.year, now.isocalendar()[1])
+        weeks = [datetime.date.fromisocalendar(w[1], w[0], 7) for w in weeks]
         response = {
             "weeks": weeks,
             "pos_data": pos_ratings,