소스 검색

selective graphs

tBKwtWS 7 년 전
부모
커밋
3844d37865
3개의 변경된 파일48개의 추가작업 그리고 43개의 파일을 삭제
  1. 6 6
      database.schema.sql
  2. 37 35
      webgui/stats/templates/stats/networks.html
  3. 5 2
      webgui/stats/views.py

+ 6 - 6
database.schema.sql

@@ -505,8 +505,8 @@ ALTER TABLE ONLY users
 
 -- new stuff
 
-CREATE RULE update_username AS ON UPDATE TO users WHERE OLD.name <> NEW.name DO INSTEAD (
-    INSERT INTO users (id, name, network, last_act_type, last_act_datetime, last_act_channel, last_act_channel_network, last_act, last_act_auxiliary, away, away_reason, xp_spent, level, coin, coin_spent, coin_given) VALUES (NEW.id, NEW.name, NEW.network, NEW.last_act_type, NEW.last_act_datetime, NEW.last_act_channel, NEW.last_act_channel_network, NEW.last_act, NEW.last_act_auxiliary, NEW.away, NEW.away_reason, NEW.xp_spent, NEW.level, NEW.coin, NEW.coin_spent, NEW.coin_given);
+CREATE RULE update_user_name AS ON UPDATE TO users WHERE OLD.name <> NEW.name DO INSTEAD (
+    INSERT INTO users (name, network, last_act_type, last_act_datetime, last_act_channel, last_act_channel_network, last_act, last_act_auxiliary, away, away_reason, xp_spent, level, coin, coin_spent, coin_given) VALUES (NEW.name, NEW.network, NEW.last_act_type, NEW.last_act_datetime, NEW.last_act_channel, NEW.last_act_channel_network, NEW.last_act, NEW.last_act_auxiliary, NEW.away, NEW.away_reason, NEW.xp_spent, NEW.level, NEW.coin, NEW.coin_spent, NEW.coin_given);
     UPDATE joins SET "user"=NEW.name WHERE "user"=OLD.name AND user_network=OLD.network;
     UPDATE kicks SET "user"=NEW.name WHERE "user"=OLD.name AND user_network=OLD.network;
     UPDATE messages SET "user"=NEW.name WHERE "user"=OLD.name AND user_network=OLD.network;
@@ -515,10 +515,10 @@ CREATE RULE update_username AS ON UPDATE TO users WHERE OLD.name <> NEW.name DO
     
 
 CREATE RULE update_channel_name AS ON UPDATE TO channels WHERE OLD.name <> NEW.name DO INSTEAD (
-    INSERT INTO channels (id, name, network, autojoin, join_greeting, statistics_commands, games, aggressiveness, chat, key, last_lame) VALUES (NEW.id, NEW.name, NEW.network, NEW.autojoin, NEW.join_greeting, NEW.statistics_commands, NEW.games, NEW.aggressiveness, NEW.chat, NEW.key, NEW.last_lame);
-    UPDATE joins SET "user"=NEW.name WHERE "user"=OLD.name AND user_network=OLD.network;
-    UPDATE kicks SET "user"=NEW.name WHERE "user"=OLD.name AND user_network=OLD.network;
-    UPDATE messages SET "user"=NEW.name WHERE "user"=OLD.name AND user_network=OLD.network;
+    INSERT INTO channels (name, network, autojoin, join_greeting, statistics_commands, games, aggressiveness, chat, key, last_lame) VALUES (NEW.name, NEW.network, NEW.autojoin, NEW.join_greeting, NEW.statistics_commands, NEW.games, NEW.aggressiveness, NEW.chat, NEW.key, NEW.last_lame);
+    UPDATE joins SET channel=NEW.name WHERE channel=OLD.name AND user_network=OLD.network;
+    UPDATE kicks SET channel=NEW.name WHERE channel=OLD.name AND user_network=OLD.network;
+    UPDATE messages SET channel=NEW.name WHERE channel=OLD.name AND user_network=OLD.network;
     UPDATE users SET last_act_channel=NEW.name WHERE last_act_channel=OLD.name AND network=OLD.network;
     DELETE FROM channels WHERE id=OLD.id;
 );

+ 37 - 35
webgui/stats/templates/stats/networks.html

@@ -198,42 +198,44 @@
                     <div id="channelschart"></div>
                 </div>
             </section>
-            {% if isxpspent > 1 %}
-            <script type="text/javascript">
-                google.charts.load("current", {packages:["corechart"]});
-                google.charts.setOnLoadCallback(drawChart2);
-                function drawChart2() {
-                    var data = google.visualization.arrayToDataTable([
-                        ['Network', 'XP spent'],
-                            {% for network in networkslist.items %}
-                                ['{{ network.0|escapejs }}',     {{ network.1.xpspentcount }}],
-                            {% endfor %}
-                        ]);
-                    var options = {
-                        legend: 'none',
-                        pieSliceText: 'label',
-                        height: '275',
-                        pieHole: 0.1,
-                        'chartArea': {'width': '95%', 'height': '100%'},
-                    };
-                    var chart = new google.visualization.PieChart(document.getElementById('xpspentchart'));
-                    chart.draw(data, options);
-                }
-            </script>
-            <section class="ui card">
-                <div class="content" title="XP spent per network">
-                    <div class="header">
-                        <div>
-                            <i class="ui dashboard icon"></i>
-                            /
-                            <i class="ui sitemap icon"></i>
+            {% if isxpspent %}
+                <script type="text/javascript">
+                    google.charts.load("current", {packages:["corechart"]});
+                    google.charts.setOnLoadCallback(drawChart2);
+                    function drawChart2() {
+                        var data = google.visualization.arrayToDataTable([
+                            ['Network', 'XP spent'],
+                                {% for network in networkslist.items %}
+                                    ['{{ network.0|escapejs }}',     {{ network.1.xpspentcount }}],
+                                {% endfor %}
+                            ]);
+                        var options = {
+                            legend: 'none',
+                            pieSliceText: 'label',
+                            height: '275',
+                            pieHole: 0.1,
+                            'chartArea': {'width': '95%', 'height': '100%'},
+                        };
+                        var chart = new google.visualization.PieChart(document.getElementById('xpspentchart'));
+                        chart.draw(data, options);
+                    }
+                </script>
+                <section class="ui card">
+                    <div class="content" title="XP spent per network">
+                        <div class="header">
+                            <div>
+                                <i class="ui dashboard icon"></i>
+                                /
+                                <i class="ui sitemap icon"></i>
+                            </div>
                         </div>
                     </div>
-                </div>
-                <div class="content">
-                    <div id="xpspentchart"></div>
-                </div>
-            </section>
+                    <div class="content">
+                        <div id="xpspentchart"></div>
+                    </div>
+                </section>
+            {% endif %}
+            {% if iscoinspent %}
                 <script type="text/javascript">
                     google.charts.load("current", {packages:["corechart"]});
                     google.charts.setOnLoadCallback(drawChart3);
@@ -241,7 +243,7 @@
                         var data = google.visualization.arrayToDataTable([
                             ['Coin spent', 'Coin given'],
                             {% for network in networkslist.items %}
-                                ['{{ network.0|escapejs }}',     {{ network.1.xpspentcount }}],
+                                ['{{ network.0|escapejs }}',     {{ network.1.coingivencount }}],
                             {% endfor %}
                         ]);
                         var options = {

+ 5 - 2
webgui/stats/views.py

@@ -24,8 +24,10 @@ def networks(request):
     isxpspent = False
     for user in users:
         networkslist[user.network.name]['usercount'] += 1
-        if user.xp_spent > 1: 
+        if user.xp_spent > 1:
             isxpspent = True
+        if user.coin_spent > 1:
+            iscoinspent = True
         networkslist[user.network.name]['xpspentcount'] += user.xp_spent
         networkslist[user.network.name]['coinspentcount'] += user.coin_spent
         networkslist[user.network.name]['coingivencount'] += user.coin_given
@@ -47,7 +49,8 @@ def networks(request):
         'totalusers': totalusers,
         'totalmessages': totalmessages,
         'networkslist': networkslist,
-        'isxpspent': isxpspent, 
+        'isxpspent': isxpspent,
+        'iscoinspent': iscoinspent,
     }
     return render(request, 'stats/networks.html', context)