Commit 9f9ec792e0621aa1ca01b242f0ed32527ad15d5b
1 parent
bf11cf83
Exists in
master
and in
2 other branches
improved tag cloud collision system as well as calculation code
Showing
8 changed files
with
37 additions
and
40 deletions
Show diff stats
analytics/static/.sass-cache/01cecb7b42e56765f6ed49ed3c70281ebdc742c7/general.sassc
No preview for this file type
analytics/static/analytics/general.css
analytics/static/analytics/general.css.map
1 | 1 | { |
2 | 2 | "version": 3, |
3 | -"mappings": "AAEA,YAAY;EACR,MAAM,EAAE,iBAAiB;EACzB,aAAa,EAAE,IAAI;EACnB,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,IAAI;EACd,KAAK,EAAE,IAAI;EACX,gBAAgB,EAAE,OAAO;;AAE7B,sBAAsB;EAClB,MAAM,EAAE,GAAG;EACX,OAAO,EAAE,KAAK;EACd,yBAAE;IACE,KAAK,EAdC,OAAO;EAgBjB,yBAAE;IACE,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,GAAG;IACV,aAAa,EAAE,GAAG;IAElB,4BAAE;MACE,YAAY,EAAE,EAAE;MAChB,KAAK,EAAE,GAAG;MACV,KAAK,EAAE,KAAK;MACZ,SAAS,EAAE,IAAI;MACf,gBAAgB,EAAE,OAAO;MACzB,KAAK,EAAE,IAAI;MACX,UAAU,EAAE,MAAM;MAClB,aAAa,EAAE,IAAI;MACnB,MAAM,EAAE,IAAI;IAGhB,qCAAW;MACP,gBAAgB,EAAE,OAAO;MACzB,KAAK,EAAE,IAAI;MACX,UAAU,EAAE,MAAM;MAClB,aAAa,EAAE,IAAI;;AAM/B,sBAAsB;EAClB,UAAU,EAAE,2CAA2C;EACvD,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,IAAI;EACnB,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,GAAG;EAChB,UAAU,EAAE,IAAI;EAEhB,yBAAE;IACE,WAAW,EAAE,EAAE;;AAGvB,UAAU;EACN,aAAa,EAAE,IAAI;EACnB,KAAK,EAAE,OAAO;;AAKlB,SAAS;EACL,KAAK,EAAE,OAAO;EACd,SAAS,EAAE,IAAI;;AAGnB,mBAAmB;EACf,UAAU,EAAE,iCAAmC;EAC/C,UAAU,EAAE,EAAE;EACd,WAAW,EAAE,EAAE;EACf,cAAc,EAAE,EAAE;;AAEtB,MAAM;EACF,KAAK,EAAE,GAAG;EACV,KAAK,EAAE,IAAI;EACX,SAAE;IACE,KAAK,EA9EC,OAAO;;AAgFrB,SAAS;EACL,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,KAAK;EACZ,YAAY,EAAE,GAAG;EACjB,gBAAgB,EAAE,OAAO;EACzB,UAAU,EAAE,GAAG;EACf,aAAa,EAAE,iBAAiB;EAChC,WAAC;IACG,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;;AAInB,qBAAO;EACH,UAAU,EAAE,MAAM;;AAE1B,aAAa;EACT,UAAU,EAAE,iCAAkC;EAC9C,KAAK,EAAE,KAAK;EACZ,aAAa,EAAE,IAAI;EACnB,OAAO,EAAE,GAAG;;AAEhB,mBAAmB;EACf,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,GAAG;EACV,WAAW,EAAE,EAAE;EACf,UAAU,EAAE,EAAE;EACd,QAAQ,EAAE,QAAQ;EAClB,YAAY,EAAE,CAAC;EACf,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,iBAAiB;EACzB,UAAU,EAAE,sDAAsD;EAElE,sBAAE;IACE,YAAY,EAAE,EAAE;;AAExB,qDAAqD;EACjD,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,GAAG;EACT,MAAM,EAAE,iBAAiB;EACzB,OAAO,EAAE,GAAG;EACZ,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,CAAC;EACR,QAAQ,EAAE,QAAQ;EAClB,cAAc,EAAE,IAAI;;AAGxB,0BAA0B;EACtB,YAAY,EAAE,IAAI;EAClB,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,sBAAsB;EACpC,mBAAmB,EAAE,OAAO;;AAEhC,yBAAyB;EACrB,gBAAgB,EAAE,OAAO", | |
3 | +"mappings": "AAEA,YAAY;EACR,MAAM,EAAE,iBAAiB;EACzB,aAAa,EAAE,IAAI;EACnB,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,IAAI;EACd,KAAK,EAAE,IAAI;EACX,gBAAgB,EAAE,OAAO;;AAE7B,sBAAsB;EAClB,MAAM,EAAE,GAAG;EACX,OAAO,EAAE,KAAK;EACd,yBAAE;IACE,KAAK,EAdC,OAAO;EAgBjB,yBAAE;IACE,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,GAAG;IACV,aAAa,EAAE,GAAG;IAElB,4BAAE;MACE,YAAY,EAAE,EAAE;MAChB,KAAK,EAAE,GAAG;MACV,KAAK,EAAE,KAAK;MACZ,SAAS,EAAE,IAAI;MACf,gBAAgB,EAAE,OAAO;MACzB,KAAK,EAAE,IAAI;MACX,UAAU,EAAE,MAAM;MAClB,aAAa,EAAE,IAAI;MACnB,MAAM,EAAE,IAAI;IAGhB,qCAAW;MACP,gBAAgB,EAAE,OAAO;MACzB,KAAK,EAAE,IAAI;MACX,UAAU,EAAE,MAAM;MAClB,aAAa,EAAE,IAAI;;AAM/B,sBAAsB;EAClB,UAAU,EAAE,2CAA2C;EACvD,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,IAAI;EACnB,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,GAAG;EAChB,UAAU,EAAE,IAAI;EAEhB,yBAAE;IACE,WAAW,EAAE,EAAE;;AAGvB,UAAU;EACN,aAAa,EAAE,IAAI;EACnB,KAAK,EAAE,OAAO;;AAKlB,SAAS;EACL,KAAK,EAAE,OAAO;;AAGlB,mBAAmB;EACf,UAAU,EAAE,iCAAmC;EAC/C,UAAU,EAAE,EAAE;EACd,WAAW,EAAE,EAAE;EACf,cAAc,EAAE,EAAE;;AAEtB,MAAM;EACF,KAAK,EAAE,GAAG;EACV,KAAK,EAAE,IAAI;EACX,SAAE;IACE,KAAK,EA7EC,OAAO;;AA+ErB,SAAS;EACL,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,KAAK;EACZ,YAAY,EAAE,GAAG;EACjB,gBAAgB,EAAE,OAAO;EACzB,UAAU,EAAE,GAAG;EACf,aAAa,EAAE,iBAAiB;EAChC,WAAC;IACG,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;;AAInB,qBAAO;EACH,UAAU,EAAE,MAAM;;AAE1B,aAAa;EACT,UAAU,EAAE,iCAAkC;EAC9C,KAAK,EAAE,KAAK;EACZ,aAAa,EAAE,IAAI;EACnB,OAAO,EAAE,GAAG;;AAEhB,mBAAmB;EACf,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,GAAG;EACV,WAAW,EAAE,EAAE;EACf,UAAU,EAAE,EAAE;EACd,QAAQ,EAAE,QAAQ;EAClB,YAAY,EAAE,CAAC;EACf,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,iBAAiB;EACzB,UAAU,EAAE,sDAAsD;EAElE,sBAAE;IACE,YAAY,EAAE,EAAE;;AAExB,qDAAqD;EACjD,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,GAAG;EACT,MAAM,EAAE,iBAAiB;EACzB,OAAO,EAAE,GAAG;EACZ,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,CAAC;EACR,QAAQ,EAAE,QAAQ;EAClB,cAAc,EAAE,IAAI;;AAGxB,0BAA0B;EACtB,YAAY,EAAE,IAAI;EAClB,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,sBAAsB;EACpC,mBAAmB,EAAE,OAAO;;AAEhC,yBAAyB;EACrB,gBAAgB,EAAE,OAAO", | |
4 | 4 | "sources": ["general.sass"], |
5 | 5 | "names": [], |
6 | 6 | "file": "general.css" | ... | ... |
analytics/static/analytics/general.sass
analytics/static/analytics/js/behavior.js
1 | 1 | |
2 | + | |
3 | + | |
2 | 4 | $(document).ready(function(){ |
3 | 5 | selectors_options.init(); |
4 | 6 | |
... | ... | @@ -6,12 +8,14 @@ $(document).ready(function(){ |
6 | 8 | |
7 | 9 | $('#month_selector').change(function(){ |
8 | 10 | $.get('/analytics/amount_active_users_per_day', {month: $(this).val() }).done(function(data){ |
9 | - console.log(data); | |
10 | 11 | charts.month_heatmap(data); |
11 | 12 | |
12 | 13 | }); |
13 | 14 | }); |
14 | 15 | |
16 | + | |
17 | + $('#datetimepicker1').datetimepicker(); | |
18 | + | |
15 | 19 | |
16 | 20 | }); |
17 | 21 | ... | ... |
analytics/static/analytics/js/charts.js
... | ... | @@ -348,27 +348,7 @@ var charts = { |
348 | 348 | var width = 800; |
349 | 349 | var height = 300; |
350 | 350 | |
351 | - function min(){ | |
352 | - minimum = 100000000000; | |
353 | - for(var i = 0; i < dataset.length; i++){ | |
354 | - if (dataset[i]['count'] < min){ | |
355 | - minimum = dataset[i]['count']; | |
356 | - } | |
357 | - } | |
358 | - | |
359 | - return minimum | |
360 | - } | |
361 | - | |
362 | - function max(){ | |
363 | - maximum = 0; | |
364 | - for(var i = 0; i < dataset.length; i++){ | |
365 | - if (dataset[i]['count'] > max){ | |
366 | - maximum = dataset[i]['count']; | |
367 | - } | |
368 | - } | |
369 | - | |
370 | - return maximum | |
371 | - } | |
351 | + | |
372 | 352 | |
373 | 353 | |
374 | 354 | var container_div = d3.select("#most-used-tags-body"); |
... | ... | @@ -378,8 +358,8 @@ var charts = { |
378 | 358 | .style("background","#ddf8e7") |
379 | 359 | .append('g') |
380 | 360 | .attr("transform", "translate(0,0)") |
381 | - .style("width", width) | |
382 | - .attr("height", height); | |
361 | + .attr("width", "100%") | |
362 | + .attr("height", height - 60); | |
383 | 363 | |
384 | 364 | |
385 | 365 | var color = d3.scaleLinear() |
... | ... | @@ -392,7 +372,8 @@ var charts = { |
392 | 372 | return Math.floor(Math.random() * (max - min)) + min; |
393 | 373 | } |
394 | 374 | |
395 | - var xScale = d3.scaleSqrt().domain([min(), max()]).range([10,80]); | |
375 | + var xScale = d3.scaleSqrt().domain([d3.min(dataset, function(d){ return d['count']}), | |
376 | + d3.max(dataset, function(d){ return d.count; })]).range([100,200]); | |
396 | 377 | var tag_cloud = svg.selectAll('.tag-cloud-div') |
397 | 378 | .data(dataset) |
398 | 379 | .enter() |
... | ... | @@ -420,23 +401,29 @@ var charts = { |
420 | 401 | .text(function(d){ |
421 | 402 | return d['name']; |
422 | 403 | }) |
404 | + .attr("text-anchor", "middle") | |
423 | 405 | .attr("x", function(d){ |
424 | - return xScale(d['count'])*0.2; | |
406 | + return xScale(d['count'])*1.2/2; | |
425 | 407 | }) |
426 | 408 | .attr("y", function(d){ |
427 | - return xScale(d["count"])*0.2; | |
409 | + return xScale(d["count"])*0.4/2; | |
428 | 410 | }) |
429 | 411 | .attr("class", "tag-name") |
430 | - .attr("fill", "#ffffff"); | |
412 | + .attr("fill", "#ffffff") | |
413 | + .style("font-size", function(d){ | |
414 | + return xScale(d["count"])*0.1 + "px"; | |
415 | + }); | |
431 | 416 | |
432 | 417 | |
433 | 418 | var simulation = d3.forceSimulation() |
434 | 419 | .force("x", d3.forceX(width/2).strength(0.05)) |
435 | 420 | .force("y", d3.forceY(height/2).strength(0.05)) |
436 | - .force("collide", d3.forceCollide(function(d){ | |
437 | - return xScale(d['count'])*0.4; | |
438 | - })); | |
439 | - | |
421 | + .force("charge", d3.forceManyBody().strength(-120).distanceMax(300) | |
422 | + .distanceMin(0)); | |
423 | + /* | |
424 | + .force("collide", d3.forceCollide(function(d){ | |
425 | + return xScale(d['count'])*0.3; | |
426 | + }))*/ | |
440 | 427 | //simulation |
441 | 428 | simulation.nodes(dataset) |
442 | 429 | .on('tick', ticked); //so all data points are attached to it | ... | ... |
analytics/templates/analytics/general.html
... | ... | @@ -7,6 +7,7 @@ |
7 | 7 | {% endblock style %} |
8 | 8 | |
9 | 9 | {% block javascript %} |
10 | + | |
10 | 11 | <script type="text/javascript" src="{% static "analytics/js/charts.js" %}"></script> |
11 | 12 | <script type="text/javascript" src=" {% static "analytics/js/behavior.js" %} "></script> |
12 | 13 | {% endblock javascript %} |
... | ... | @@ -102,9 +103,19 @@ |
102 | 103 | |
103 | 104 | </select> |
104 | 105 | </div> |
106 | + | |
105 | 107 | <div id="right-chart-body"> |
106 | 108 | |
107 | 109 | </div> |
110 | + | |
111 | + <div class="form-group"> | |
112 | + <div class='input-group date' id='datetimepicker1'> | |
113 | + <input type='text' class="form-control" /> | |
114 | + <span class="input-group-addon"> | |
115 | + <span class="glyphicon glyphicon-calendar"></span> | |
116 | + </span> | |
117 | + </div> | |
118 | + </div> | |
108 | 119 | </div> |
109 | 120 | </section> |
110 | 121 | ... | ... |
analytics/views.py
... | ... | @@ -57,14 +57,13 @@ def most_used_tags(request): |
57 | 57 | data[tag.name]['count'] = resources_count |
58 | 58 | |
59 | 59 | data = sorted(data.values(), key = lambda x: x['count'], reverse=True ) |
60 | - data = data[:30] #get top 30 tags | |
60 | + data = data[:15] #get top 30 tags | |
61 | 61 | return JsonResponse(data, safe= False) |
62 | 62 | |
63 | 63 | |
64 | 64 | def most_active_users_in_a_month(request): |
65 | 65 | params = request.GET |
66 | 66 | days = get_days_of_the_month(params['month']) |
67 | - print(days) | |
68 | 67 | data = {} |
69 | 68 | mappings = {_('January'): 1, _('February'): 2, _('March'): 3, _('April'): 4, _('May'): 5, _('June'): 6, _('July'): 7 |
70 | 69 | , _('August'): 8, _('September'): 9, _('October'): 10, _('November'): 11, _('December'): 12} |
... | ... | @@ -164,8 +163,6 @@ def get_days_of_the_month(month): |
164 | 163 | |
165 | 164 | #get current year |
166 | 165 | year = date.today().year |
167 | - print(year) | |
168 | - print(month) | |
169 | 166 | mappings = {_('January'): 1, _('February'): 2, _('March'): 3, _('April'): 4, _('May'): 5, _('June'): 6, _('July'): 7 |
170 | 167 | , _('August'): 8, _('September'): 9, _('October'): 10, _('November'): 11, _('December'): 12} |
171 | 168 | ... | ... |