Skip to content

Commit e0531de

Browse files
author
Xisco Fauli
committed
Show detail OS in the summary
1 parent a4cb160 commit e0531de

File tree

5 files changed

+51
-4
lines changed

5 files changed

+51
-4
lines changed

django/crashreport/processor/models.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,9 @@ class ProcessedCrash(models.Model):
193193
os_detail = models.CharField(max_length=100,
194194
default='')
195195

196+
os_detail_parsed = models.CharField(max_length=100,
197+
default='')
198+
196199
# CPU info
197200
cpu_architecture = models.CharField(max_length=20)
198201

@@ -236,6 +239,15 @@ def set_view_os_name_to_model(self, view_os_name):
236239
else:
237240
logger.warning("could not determine the os: " + view_is_name)
238241

242+
def set_view_os_detail_parsed_to_model(self, view_os_detail):
243+
if self.os_name == ProcessedCrash.LINUX:
244+
self.os_detail_parsed = self.os_name + ' ' + \
245+
view_os_detail.split('Linux ')[1].split('-')[0]
246+
elif self.os_name == ProcessedCrash.WINDOWS or self.os_name == ProcessedCrash.OSX:
247+
self.os_detail_parsed = self.os_name + ' ' + view_os_detail
248+
else:
249+
self.os_detail_parsed = view_os_detail
250+
239251
def _convert_frames(self, frame_list):
240252
text = ""
241253
for frame in frame_list:

django/crashreport/processor/processor.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ def _parse_os(self, os_version):
8484
os_detail = parsed_line[2]
8585
self.processed_crash.os_detail = os_detail
8686
self.processed_crash.set_view_os_name_to_model(os_name)
87+
self.processed_crash.set_view_os_detail_parsed_to_model(os_detail)
8788

8889
def _parse_frames(self, frames):
8990
threads = {}
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
$(document).ready(function()
2-
{
1+
$(document).ready(function()
2+
{
33
$("#tabs").tabs();
44
$("#os_tab").tabs();
55
$("#cpu_tab").tabs();
6+
$("#os_detail_tab").tabs();
67
$("#version_tab").tabs();
7-
}
8-
);
8+
}
9+
);

django/crashreport/stats/templates/stats/signature.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,30 @@ <h2>CPU architecture</h2>
174174
</div>
175175

176176
</div>
177+
<div class="panel">
178+
<header class="title">
179+
<h2>Detailed Operating System</h2>
180+
</header>
181+
<div class="content">
182+
<table id="os_detail_tab" class="data-table">
183+
<thead>
184+
<tr>
185+
<th class="header">Detail</th>
186+
<th class="header">Count</th>
187+
</tr>
188+
</thead>
189+
<tbody>
190+
{% for os_detail, count in os_detail_info.items %}
191+
<tr>
192+
<td>{{os_detail}}</td>
193+
<td>{{count}}</td>
194+
</tr>
195+
{% endfor %}
196+
</tbody>
197+
</table>
198+
</div>
199+
200+
</div>
177201
</div>
178202
</div>
179203
{% endblock %}

django/crashreport/stats/views.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ def get_os_info(crashes):
8181

8282
return data
8383

84+
def get_os_detail_info(crashes):
85+
detail_info = crashes.values('os_detail_parsed').annotate(Count('os_detail_parsed'))
86+
data = {}
87+
for detail in detail_info:
88+
data[detail['os_detail_parsed']] = detail['os_detail_parsed__count']
89+
90+
return data
91+
8492
def get_cpu_architecture(crashes):
8593
cpu_architecture = crashes.values('cpu_architecture').annotate(Count('cpu_architecture'))
8694

@@ -111,6 +119,7 @@ def get_context_data(self, **kwargs):
111119

112120
crashes = ProcessedCrash.objects.filter(signature = signature_object)
113121
context['os_info'] = get_os_info(crashes)
122+
context['os_detail_info'] = get_os_detail_info(crashes)
114123
context['cpu_info'] = get_cpu_architecture(crashes)
115124
context['version_info'] = get_version_info(crashes)
116125
return context

0 commit comments

Comments
 (0)