Skip to content

Commit 1ec4b42

Browse files
committed
Show dependency stats in project detail #447
Signed-off-by: Jono Yang <[email protected]>
1 parent 8e618de commit 1ec4b42

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

scanpipe/templates/scanpipe/project_detail.html

+28
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,25 @@ <h3 class="title is-4 has-text-centered">
120120
</div>
121121
{% endif %}
122122

123+
{% if project.dependency_count %}
124+
<hr class="mx-5">
125+
<h3 class="title is-4 has-text-centered">
126+
Discovered Dependencies
127+
<span class="tag is-link is-light is-rounded ml-1">{{ project.dependency_count|intcomma }}</span>
128+
</h3>
129+
<div class="columns">
130+
<div class="column">
131+
<div id="dependency_is_runtime_chart" data-url="{% url 'project_dependencies' project.uuid %}" data-lookup_field="is_runtime"></div>
132+
</div>
133+
<div class="column">
134+
<div id="dependency_is_optional_chart" data-url="{% url 'project_dependencies' project.uuid %}" data-lookup_field="is_optional"></div>
135+
</div>
136+
<div class="column">
137+
<div id="dependency_is_resolved_chart" data-url="{% url 'project_dependencies' project.uuid %}" data-lookup_field="is_resolved"></div>
138+
</div>
139+
</div>
140+
{% endif %}
141+
123142
{% if project.resource_count %}
124143
<hr class="mx-5">
125144
<h3 id="resource-charts" class="title is-4 has-text-centered mb-3">
@@ -174,6 +193,11 @@ <h3 class="title is-4 has-text-centered mb-3">
174193
{{ package_licenses|json_script:"package_licenses" }}
175194
{{ package_types|json_script:"package_types" }}
176195
{% endif %}
196+
{% if project.dependency_count %}
197+
{{ dependency_is_runtime|json_script:"dependency_is_runtime" }}
198+
{{ dependency_is_optional|json_script:"dependency_is_optional" }}
199+
{{ dependency_is_resolved|json_script:"dependency_is_resolved" }}
200+
{% endif %}
177201
<script>
178202
hljs.highlightAll();
179203

@@ -244,6 +268,10 @@ <h3 class="title is-4 has-text-centered mb-3">
244268
// Packages
245269
makeChart("package_types", "#package_type_chart", "Package\nType");
246270
makeChart("package_licenses", "#package_license_chart", "Package\nLicense\nExpression");
271+
// Dependencies
272+
makeChart("dependency_is_runtime", "#dependency_is_runtime_chart", "Dependency\nis_runtime");
273+
makeChart("dependency_is_optional", "#dependency_is_optional_chart", "Dependency\nis_optional");
274+
makeChart("dependency_is_resolved", "#dependency_is_resolved_chart", "Dependency\nis_resolved");
247275
// Resources
248276
makeChart("programming_languages", "#programming_language_chart", "Programming\nLanguage");
249277
makeChart("mime_types", "#mime_type_chart", "Mime\nType");

scanpipe/views.py

+12
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,11 @@ def get_context_data(self, **kwargs):
306306
"type",
307307
"license_expression",
308308
)
309+
dependencies = project.discovereddependencys.all().only(
310+
"is_runtime",
311+
"is_optional",
312+
"is_resolved",
313+
)
309314

310315
file_languages = files.values_list("programming_language", flat=True)
311316
file_mime_types = files.values_list("mime_type", flat=True)
@@ -323,6 +328,10 @@ def get_context_data(self, **kwargs):
323328
package_licenses = packages.values_list("license_expression", flat=True)
324329
package_types = packages.values_list("type", flat=True)
325330

331+
dependency_is_runtime = dependencies.values_list("is_runtime", flat=True)
332+
dependency_is_optional = dependencies.values_list("is_optional", flat=True)
333+
dependency_is_resolved = dependencies.values_list("is_resolved", flat=True)
334+
326335
inputs, missing_inputs = project.inputs_with_source
327336
if missing_inputs:
328337
missing_files = "\n- ".join(missing_inputs.keys())
@@ -358,6 +367,9 @@ def get_context_data(self, **kwargs):
358367
"file_compliance_alert": self.get_summary(file_compliance_alert),
359368
"package_licenses": self.get_summary(package_licenses),
360369
"package_types": self.get_summary(package_types),
370+
"dependency_is_runtime": self.get_summary(dependency_is_runtime),
371+
"dependency_is_optional": self.get_summary(dependency_is_optional),
372+
"dependency_is_resolved": self.get_summary(dependency_is_resolved),
361373
"file_filter": file_filter,
362374
"add_pipeline_form": AddPipelineForm(),
363375
"add_inputs_form": AddInputsForm(),

0 commit comments

Comments
 (0)