Skip to content

Commit

Permalink
Add inline help in the headers of the Dependencies tab #138
Browse files Browse the repository at this point in the history
Add filter on package relationships

Signed-off-by: tdruez <tdruez@nexb.com>
  • Loading branch information
tdruez committed Jul 18, 2024
1 parent 6d0bca9 commit ce7faf7
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 12 deletions.
4 changes: 3 additions & 1 deletion dje/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,9 @@ def pull_project_data_from_scancodeio(scancodeproject_uuid):
scancode_project.status = ScanCodeProject.Status.SUCCESS

for object_type, values in created.items():
msg = f"- Imported {len(values)} {object_type}{pluralize(values)}."
object_type_plural = f"{object_type}{pluralize(values)}"
object_type_plural = object_type_plural.replace("dependencys", "dependencies")
msg = f"- Imported {len(values)} {object_type_plural}."
scancode_project.append_to_log(msg)

for object_type, values in existing.items():
Expand Down
8 changes: 8 additions & 0 deletions product_portfolio/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,12 @@ class DependencyFilterSet(DataspacedFilterSet):
"resolved_to_package__version",
],
)
for_package = HasRelationFilter(
widget=DropDownWidget(anchor="#dependencies"),
)
resolved_to_package = HasRelationFilter(
widget=DropDownWidget(anchor="#dependencies"),
)
is_runtime = BooleanChoiceFilter(
widget=DropDownWidget(anchor="#dependencies"),
)
Expand All @@ -349,6 +355,8 @@ class DependencyFilterSet(DataspacedFilterSet):
class Meta:
model = ProductDependency
fields = [
"for_package",
"resolved_to_package",
"scope",
"datasource_id",
"is_runtime",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,31 +34,52 @@
<thead>
<tr>
<th>
{% trans 'Package URL' %}
{% trans 'Package URL' %}
</th>
<th>
{% trans 'For package' %}
<span class="help_text" data-bs-toggle="tooltip" data-bs-placement="top" title="{{ help_texts.for_package }}">
{% trans 'For package' %}
</span>
{{ filter_dependency.form.for_package }}
</th>
<th>
{% trans 'Resolved to package' %}
<span class="help_text" data-bs-toggle="tooltip" data-bs-placement="top" title="{{ help_texts.resolved_to_package }}">
{% trans 'Resolved to package' %}
</span>
{{ filter_dependency.form.resolved_to_package }}
</th>
<th>
{% trans 'Scope' %}
<span class="help_text" data-bs-toggle="tooltip" data-bs-placement="top" title="{{ help_texts.scope }}">
{% trans 'Scope' %}
</span>
</th>
<th>
{% trans 'Runtime' %}
<span class="help_text" data-bs-toggle="tooltip" data-bs-placement="top" title="{{ help_texts.extracted_requirement }}">
{% trans 'Extracted requirement' %}
</span>
</th>
<th style="min-width: 100px">
<span class="help_text" data-bs-toggle="tooltip" data-bs-placement="top" title="{{ help_texts.is_runtime }}">
{% trans 'Runtime' %}
</span>
{{ filter_dependency.form.is_runtime }}
</th>
<th>
{% trans 'Optional' %}
<th style="min-width: 100px">
<span class="help_text" data-bs-toggle="tooltip" data-bs-placement="top" title="{{ help_texts.is_optional }}">
{% trans 'Optional' %}
</span>
{{ filter_dependency.form.is_optional }}
</th>
<th>
{% trans 'Resolved' %}
<th style="min-width: 105px">
<span class="help_text" data-bs-toggle="tooltip" data-bs-placement="top" title="{{ help_texts.is_resolved }}">
{% trans 'Resolved' %}
</span>
{{ filter_dependency.form.is_resolved }}
</th>
<th>
{% trans 'Direct' %}
<th style="min-width: 82px">
<span class="help_text" data-bs-toggle="tooltip" data-bs-placement="top" title="{{ help_texts.is_direct }}">
{% trans 'Direct' %}
</span>
{{ filter_dependency.form.is_direct }}
</th>
</tr>
Expand Down Expand Up @@ -92,6 +113,9 @@
<td>
{{ dependency.scope }}
</td>
<td>
{{ dependency.extracted_requirement }}
</td>
<td>
{{ dependency.is_runtime|as_icon }}
</td>
Expand Down
8 changes: 8 additions & 0 deletions product_portfolio/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@
from product_portfolio.models import CodebaseResource
from product_portfolio.models import Product
from product_portfolio.models import ProductComponent
from product_portfolio.models import ProductDependency
from product_portfolio.models import ProductPackage
from product_portfolio.models import ScanCodeProject

Expand Down Expand Up @@ -970,12 +971,19 @@ def get_context_data(self, **kwargs):
page_number = self.request.GET.get(self.query_dict_page_param)
page_obj = paginator.get_page(page_number)

help_texts = {
field.name: field.help_text
for field in ProductDependency._meta.get_fields()
if hasattr(field, "help_text")
}

context_data.update(
{
"filter_dependency": filter_dependency,
"page_obj": page_obj,
"total_count": self.object.dependencies.count(),
"search_query": self.request.GET.get("dependencies-q", ""),
"help_texts": help_texts,
}
)

Expand Down

0 comments on commit ce7faf7

Please sign in to comment.