Browse Source

Extension du rapport d'activité

omassot 7 years ago
parent
commit
d2d9ee3e94
2 changed files with 62 additions and 17 deletions
  1. 42 9
      main/templates/reports/report_activity.html
  2. 20 8
      main/views.py

+ 42 - 9
main/templates/reports/report_activity.html

@@ -15,16 +15,23 @@
 <section id="backlog">
 	<header>
 		<div class="flex-row">
-			<h2 class="flex-extend">Les Sprints</h2>
+			<h2 class="flex-extend">Rapport d'activité</h2>
 		</div>
 	</header>
 	
 	<h2>Activité par projets</h2>
 	<h4>Sprint courant</h4>
-	<canvas id="chart-activity-current" width="400" height="160"></canvas>
+	<canvas id="chart-activity-current" width="600" height="300"></canvas>
 
 	<h4>Sur les 6 derniers mois</h4>
-	<canvas id="chart-activity-sixmonths" width="400" height="160"></canvas>
+	<canvas id="chart-activity-sixmonths" width="600" height="300"></canvas>
+	
+	<h2>Activité par epic</h2>
+	<h4>Sprint courant</h4>
+	<canvas id="chart-epics-activity-current" width="600" height="300"></canvas>
+
+	<h4>Sur les 6 derniers mois</h4>
+	<canvas id="chart-epics-activity-sixmonths" width="600" height="300"></canvas>
 	
 </section>
 
@@ -34,11 +41,11 @@ var myChart = new Chart(ctx, {
 	type: 'polarArea',
     
     data: {
-        labels: [{% for project in activity %}"{{ project.name }}",{% endfor %}],
+        labels: [{% for project in projects_activity %}"{{ project.name }}",{% endfor %}],
         datasets: [{
 	            label: 'Activité',
-	            data: [{% for project, act in activity.items %}"{{ act.current }}",{% endfor %}],
-	            backgroundColor: [{% for project in activity %}'{{ project.color }}',{% endfor %}]
+	            data: [{% for project, act in projects_activity.items %}"{{ act.current }}",{% endfor %}],
+	            backgroundColor: [{% for project in projects_activity %}'{{ project.color }}',{% endfor %}]
             }]
     }
 });
@@ -47,11 +54,37 @@ var myChart = new Chart(ctx, {
 	type: 'polarArea',
     
     data: {
-        labels: [{% for project in activity %}"{{ project.name }}",{% endfor %}],
+        labels: [{% for project in projects_activity %}"{{ project.name }}",{% endfor %}],
+        datasets: [{
+	            label: 'Activité',
+	            data: [{% for project, act in projects_activity.items %}"{{ act.sixmonths }}",{% endfor %}],
+	            backgroundColor: [{% for project in projects_activity %}'{{ project.color }}',{% endfor %}]
+            }]
+    }
+});
+var ctx = document.getElementById("chart-epics-activity-current").getContext('2d');
+var myChart = new Chart(ctx, {
+	type: 'polarArea',
+    
+    data: {
+        labels: [{% for epic in epics_activity %}"{{ epic.name }}",{% endfor %}],
+        datasets: [{
+	            label: 'Activité',
+	            data: [{% for epic, act in epics_activity.items %}"{{ act.current }}",{% endfor %}],
+	            backgroundColor: [{% for epic in epics_activity %}'{{ epic.project.color }}',{% endfor %}]
+            }]
+    }
+});
+var ctx = document.getElementById("chart-epics-activity-sixmonths").getContext('2d');
+var myChart = new Chart(ctx, {
+	type: 'polarArea',
+    
+    data: {
+        labels: [{% for epic in epics_activity %}"{{ epic.name }}",{% endfor %}],
         datasets: [{
 	            label: 'Activité',
-	            data: [{% for project, act in activity.items %}"{{ act.sixmonths }}",{% endfor %}],
-	            backgroundColor: [{% for project in activity %}'{{ project.color }}',{% endfor %}]
+	            data: [{% for epic, act in epics_activity.items %}"{{ act.sixmonths }}",{% endfor %}],
+	            backgroundColor: [{% for epic in epics_activity %}'{{ epic.project.color }}',{% endfor %}]
             }]
     }
 });

+ 20 - 8
main/views.py

@@ -283,22 +283,34 @@ def report_projects(request):
 
 def report_activity(request):
     
-    activity = {}
+    projects_activity = {}
     for project in Project.objects.all():
-        activity[project] = {}
-        activity[project]["current"] = 0
-        activity[project]["sixmonths"] = 0
+        projects_activity[project] = {}
+        projects_activity[project]["current"] = 0
+        projects_activity[project]["sixmonths"] = 0
+        
+    epics_activity = {}
+    for epic in Epic.objects.all():
+        epics_activity[epic] = {}
+        epics_activity[epic]["current"] = 0
+        epics_activity[epic]["sixmonths"] = 0
         
     current = True
     for sprint in Sprint.objects.filter(date_end__lt = datetime.today()).order_by('-date_start')[:12]:
         for story in sprint.stories.all():
+            if not story.epic:
+                continue
             if current:
-                activity[story.epic.project]["current"] += story.weight
-            activity[story.epic.project]["sixmonths"] += story.weight
+                projects_activity[story.epic.project]["current"] += story.weight
+                epics_activity[story.epic]["current"] += story.weight
+            projects_activity[story.epic.project]["sixmonths"] += story.weight
+            epics_activity[story.epic]["sixmonths"] += story.weight
         
         current = False
-        
-    return render(request, 'reports/report_activity.html', {'activity': activity})
+    
+    epics_activity_cleaned = {epic: act for epic, act in epics_activity.items() if act["sixmonths"] > 0 }
+    
+    return render(request, 'reports/report_activity.html', {'projects_activity': projects_activity, 'epics_activity': epics_activity_cleaned})
         
 def com_pack(obj):
     pack = {}