| - {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} - | {% dojo_sort request 'Engagement' 'name' 'asc' %} | - {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} -{% dojo_sort request 'Period' 'target_start' 'asc' %} | -Status | - {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} -{% dojo_sort request labels.ASSET_LABEL 'product__name' 'asc' %} | - {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} -{% dojo_sort request labels.ORG_LABEL 'product__prod_type__name' %} | - {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} -{% dojo_sort request 'Lead' 'lead__first_name' %} | -Tests | - {% if system_settings.enable_jira %} -Jira | - {% endif %} -
|---|---|---|---|---|---|---|---|---|
| - | -
- {% if e.name %}{{ e.name }}{% endif %}
-
- {% include "dojo/snippets/tags.html" with tags=e.tags.all %}
-
- |
- {{ e.target_start }} - {{ e.target_end }} - {% if e.is_overdue and e.status != 'Completed' %} - - {{ e.target_end|overdue }} overdue - - {% endif %} - | -{{ e.status }} | -- - {{ e.product.name }} - - {{ e.product|jira_project_tag }} - {% include "dojo/snippets/tags.html" with tags=e.product.tags.all %} - | -- - {{ e.product.prod_type.name }} - - | -{{ e.lead.first_name }} {{ e.lead.last_name }} | -- - {{ e.test_count|default:0 }} - - | - {% if system_settings.enable_jira %} -- {{ e|jira_project_tag }} - | - {% endif %} -
| + {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} + | ID | +{% dojo_sort request .Engagement. .name. .asc. %} | + {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} +{% dojo_sort request 'Period' 'target_start' 'asc' %} | +Status | + {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} +{% dojo_sort request labels.ASSET_LABEL 'product__name' 'asc' %} | + {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} +{% dojo_sort request labels.ORG_LABEL 'product__prod_type__name' %} | + {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} +{% dojo_sort request 'Lead' 'lead__first_name' %} | +Tests | + {% if system_settings.enable_jira %} +Jira | + {% endif %} +
|---|---|---|---|---|---|---|---|---|---|
| + | ++ {% if e.engagement_id %} + {{ e.engagement_id }} + {% endif %} + | +
+ {% if e.name %}{{ e.name }}{% endif %}
+
+ {% include "dojo/snippets/tags.html" with tags=e.tags.all %}
+
+ |
+ {{ e.target_start }} - {{ e.target_end }} + {% if e.is_overdue and e.status != 'Completed' %} + + {{ e.target_end|overdue }} overdue + + {% endif %} + | +{{ e.status }} | ++ + {{ e.product.name }} + + {{ e.product|jira_project_tag }} + {% include "dojo/snippets/tags.html" with tags=e.product.tags.all %} + | ++ + {{ e.product.prod_type.name }} + + | +{{ e.lead.first_name }} {{ e.lead.last_name }} | ++ + {{ e.test_count|default:0 }} + + | + {% if system_settings.enable_jira %} ++ {{ e|jira_project_tag }} + | + {% endif %} +
| - | {{ labels.ASSET_LABEL }} | -{{ labels.ASSET_LABEL }} | -Engagement Name | - {% if system_settings.enable_jira %} -JIRA | - {% endif %} -Status | -Period | -Lead | -Tests | -Engagement | -
|---|
| + | {{ labels.ASSET_LABEL }} | +{{ labels.ASSET_LABEL }} | +ID | +Engagement Name | + {% if system_settings.enable_jira %} +JIRA | + {% endif %} +Status | +Period | +Lead | +Tests | +Engagement | +
|---|---|---|---|---|---|---|---|---|---|---|
| - | -{{ p.name }} - {% include "dojo/snippets/tags.html" with tags=p.tags.all %} - | -- {{ p.prod_type.name }} - | -
- {% if e.name %}{{ e.name }}{% endif %}
- {% include "dojo/snippets/tags.html" with tags=e.tags.all %}
- - |
- {% if system_settings.enable_jira %}
- - {{ e|jira_project_tag }} - | - {% endif %} -{{ e.status }} | - {{ e.target_start }} - {{ e.target_end }}
- {% if e.is_overdue and e.active and e.status != 'Completed' %}
- {{ e.target_end|overdue }} overdue
+ | ||||
| + | -{{ e.lead.first_name }} {{ e.lead.last_name }} | -- - {{ e.test_count }} - - | -
- {% if p|has_object_permission:"Engagement_Add" %}
-
- Add
-
+ {% if e|has_object_permission:"Import_Scan_Result" %}
+ |
- {{ p.name }} + {% include "dojo/snippets/tags.html" with tags=p.tags.all %} + | ++ {{ p.prod_type.name }} + | ++ {% if e.engagement_id %} + {{ e.engagement_id }} + {% endif %} + | +
+ {% if e.name %}{{ e.name }}{% endif %}
+ {% include "dojo/snippets/tags.html" with tags=e.tags.all %}
+ + |
+ {% if system_settings.enable_jira %}
+ + {{ e|jira_project_tag }} + | + {% endif %} +{{ e.status }} | + {{ e.target_start }} - {{ e.target_end }}
+ {% if e.is_overdue and e.active and e.status != 'Completed' %}
+
+ {{ e.target_end|overdue }} overdue
+
+ {% endif %}
+ |
+ {{ e.lead.first_name }} {{ e.lead.last_name }} | ++ + {{ e.test_count }} + + | ++ {% if p|has_object_permission:"Engagement_Add" %} + + Add + + {% endif %} + | + - {% endfor %} - {% endfor %} - -
|
-
-
-
-
- |
- {% endif %}
- - | - {% dojo_sort request 'Severity' 'numerical_severity' %} - | -- {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} - {% dojo_sort request 'Name' 'title' %} - | -- {% dojo_sort request 'CWE' 'cwe' %} - | -- {% trans "Vulnerability Id" %} - | -- {% trans "EPSS Score" %} - | -- {% trans "EPSS Percentile" %} - | -- {% trans "Known Exploited" %} - | -- {% trans "Used in Ransomware" %} - | -- {% trans "Date Added to KEV" %} - | -- {% if filter_name == 'Closed' %} - {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} - {% dojo_sort request 'Closed Date' 'mitigated' %} - {% else %} - {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} - {% dojo_sort request 'Date' 'date' %} - {% endif %} - | -- {% dojo_sort request 'Age' 'date' %} - | - {% if system_settings.enable_finding_sla %} -- {% dojo_sort request 'SLA' 'sla_age_days' %} - | - {% endif %} -- {% trans "Reporter" %} - | -- {% trans "Found By" %} - | -- {% trans "Status" %} - | - {% if system_settings.enable_jira %} - {% if jira_project and product_tab or not product_tab %} -- {% trans "Jira" %} - | -- {% trans "JIRA Age" %} - | -- {% trans "JIRA Change" %} - | - {% endif %} - {% endif %} - {% if 'is_finding_groups_enabled'|system_setting_enabled %} -- {% trans "Group" %} - | - {% endif %} - {% if show_product_column and product_tab is None %} -- {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} - {% dojo_sort request labels.ASSET_LABEL 'test__engagement__product__name' %} - | - {% endif %} -- {% dojo_sort request 'Service' 'service' %} - | -- {% dojo_sort request 'Planned Remediation' 'planned_remediation_date' %} - | - {% if filter_name != 'Closed' %} -- {% trans "Reviewers" %} - | - {% endif %} - {% endblock header %} -||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| - - | - {% endif %} -- - | -- - {{ finding.severity_display }} - - | -- {% if finding.title %} - {{ finding.title|truncatechars_html:60 }} - {% else %} - {{ finding.id }} - {% endif %} - {% if finding.file_path %} - - {% endif %} - {% if finding.endpoints.all %} - - {% endif %} - {% if finding.component_name %} - - {% endif %} - {% if finding.notes.all %} - - - ({{ finding.notes.count }}) - - {% endif %} - {% include "dojo/snippets/tags.html" with tags=finding.tags.all %} - | -- {% if finding.cwe > 0 %} - - {{ finding.cwe|default:"" }} - - {% endif %} - | -- {% with finding|first_vulnerability_id as first_vulnerability_id %} - {% if first_vulnerability_id %} - {% if first_vulnerability_id|has_vulnerability_url %} - - {{ first_vulnerability_id }} - - {% else %} - {{ first_vulnerability_id }} - {% endif %} - {% endif %} - {% endwith %} - | -- {{ finding.epss_score|format_epss }} - | -- {{ finding.epss_percentile|format_epss }} - | -- {{ finding.known_exploited|yesno|capfirst }} - | -- {{ finding.ransomware_used|yesno|capfirst }} - | -- {{ finding.kev_date|date }} - | - {% if filter_name == 'Closed' %} -- {{ finding.mitigated|date }} - {% else %} - | - {{ finding.date }} - {% endif %} - | -- {{ finding.age }} - | - {% if system_settings.enable_finding_sla %} -- {{ finding|finding_sla }} - | - {% endif %} -- {% if finding.reporter.get_full_name and finding.reporter.get_full_name.strip %} - {{ finding.reporter.get_full_name }} - {% else %} - {{ finding.reporter }} - {% endif %} - | -- {% if finding.found_by %} - {{ finding.found_by.all|join:", " }} - {% else %} - {{ finding.test.test_type }} - {% endif %} - | -- {{ finding|finding_display_status|safe }} {{ finding|import_history }} - | - {% if system_settings.enable_jira %} - {% if jira_project and product_tab or not product_tab %} -- {% if finding.has_jira_group_issue %} - {{ finding.finding_group | jira_key }} - {% elif finding.has_jira_issue %} - {{ finding | jira_key }} - {% endif %} - | -- {% if finding.has_jira_group_issue %} - {{ finding.finding_group | jira_creation | timesince }} - {% else %} - {{ finding | jira_creation | timesince }} - {% endif %} - | -- {% if finding.has_jira_group_issue %} - {{ finding.finding_group | jira_change | timesince }} - {% else %} - {{ finding | jira_change | timesince }} - {% endif %} - | - {% endif %} - {% endif %} - {% if 'is_finding_groups_enabled'|system_setting_enabled %} -- {% if finding.has_finding_group %} - {{ finding.finding_group.name }} - {% endif %} - | - {% endif %} - {% if show_product_column and product_tab is None %} -- {{ finding.test.engagement.product }} - | - {% endif %} -- {% if finding.service %}{{ finding.service }}{% endif %} - | -- {% if finding.planned_remediation_date %}{{ finding.planned_remediation_date }}{% endif %} - | -- {% if finding.planned_remediation_version %}{{ finding.planned_remediation_version }}{% endif %} - | - {% if filter_name != 'Closed' %} -
- {% if finding.reviewers %}
- {% for reviewer in finding.reviewers.all %}
- {{reviewer.get_full_name}}
- {% if not forloop.last %} {% endif %} - {% endfor %} - {% endif %} - |
- {% endif %}
- {% endblock body %}
-
- {% trans "No findings found." %} -
-|
+
+
+
+
+ |
+ {% endif %}
+ + | + {% dojo_sort request 'Severity' 'numerical_severity' %} + | ++ {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} + {% dojo_sort request 'Name' 'title' %} + | ++ {% dojo_sort request 'CWE' 'cwe' %} + | ++ {% trans "Vulnerability Id" %} + | ++ {% trans "EPSS Score" %} + | ++ {% trans "EPSS Percentile" %} + | ++ {% trans "Known Exploited" %} + | ++ {% trans "Used in Ransomware" %} + | ++ {% trans "Date Added to KEV" %} + | ++ {% if filter_name == 'Closed' %} + {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} + {% dojo_sort request 'Closed Date' 'mitigated' %} + {% else %} + {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} + {% dojo_sort request 'Date' 'date' %} + {% endif %} + | ++ {% dojo_sort request 'Age' 'date' %} + | + {% if system_settings.enable_finding_sla %} ++ {% dojo_sort request 'SLA' 'sla_age_days' %} + | + {% endif %} ++ {% trans "Reporter" %} + | ++ {% trans "Found By" %} + | ++ {% trans "Status" %} + | + {% if system_settings.enable_jira %} + {% if jira_project and product_tab or not product_tab %} ++ {% trans "Jira" %} + | ++ {% trans "JIRA Age" %} + | ++ {% trans "JIRA Change" %} + | + {% endif %} + {% endif %} + {% if 'is_finding_groups_enabled'|system_setting_enabled %} ++ {% trans "Group" %} + | + {% endif %} + {% if show_product_column and product_tab is None %} ++ {% comment %} The display field is translated in the function. No need to translate here as well{% endcomment %} + {% dojo_sort request labels.ASSET_LABEL 'test__engagement__product__name' %} + | + {% endif %} ++ {% dojo_sort request 'Service' 'service' %} + | ++ {% dojo_sort request 'Planned Remediation' 'planned_remediation_date' %} + | + {% if filter_name != 'Closed' %} ++ {% trans "Reviewers" %} + | + {% endif %} + {% endblock header %} +||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + + | + {% endif %} ++ + | ++ + {{ finding.severity_display }} + + | ++ {% if finding.title %} + {{ finding.title|truncatechars_html:60 }} + {% else %} + {{ finding.id }} + {% endif %} + {% if finding.file_path %} + + {% endif %} + {% if finding.endpoints.all %} + + {% endif %} + {% if finding.component_name %} + + {% endif %} + {% if finding.notes.all %} + + + ({{ finding.notes.count }}) + + {% endif %} + {% include "dojo/snippets/tags.html" with tags=finding.tags.all %} + | ++ {% if finding.cwe > 0 %} + + {{ finding.cwe|default:"" }} + + {% endif %} + | ++ {% with finding|first_vulnerability_id as first_vulnerability_id %} + {% if first_vulnerability_id %} + {% if first_vulnerability_id|has_vulnerability_url %} + + {{ first_vulnerability_id }} + + {% else %} + {{ first_vulnerability_id }} + {% endif %} + {% endif %} + {% endwith %} + | ++ {{ finding.epss_score|format_epss }} + | ++ {{ finding.epss_percentile|format_epss }} + | ++ {{ finding.known_exploited|yesno|capfirst }} + | ++ {{ finding.ransomware_used|yesno|capfirst }} + | ++ {{ finding.kev_date|date }} + | + {% if filter_name == 'Closed' %} ++ {{ finding.mitigated|date }} + {% else %} + | + {{ finding.date }} + {% endif %} + | ++ {{ finding.age }} + | + {% if system_settings.enable_finding_sla %} ++ {{ finding|finding_sla }} + | + {% endif %} ++ {% if finding.reporter.get_full_name and finding.reporter.get_full_name.strip %} + {{ finding.reporter.get_full_name }} + {% else %} + {{ finding.reporter }} + {% endif %} + | ++ {% if finding.found_by %} + {{ finding.found_by.all|join:", " }} + {% else %} + {{ finding.test.test_type }} + {% endif %} + | ++ {{ finding|finding_display_status|safe }} {{ finding|import_history }} + | + {% if system_settings.enable_jira %} + {% if jira_project and product_tab or not product_tab %} ++ {% if finding.has_jira_group_issue %} + {{ finding.finding_group | jira_key }} + {% elif finding.has_jira_issue %} + {{ finding | jira_key }} + {% endif %} + | ++ {% if finding.has_jira_group_issue %} + {{ finding.finding_group | jira_creation | timesince }} + {% else %} + {{ finding | jira_creation | timesince }} + {% endif %} + | ++ {% if finding.has_jira_group_issue %} + {{ finding.finding_group | jira_change | timesince }} + {% else %} + {{ finding | jira_change | timesince }} + {% endif %} + | + {% endif %} + {% endif %} + {% if 'is_finding_groups_enabled'|system_setting_enabled %} ++ {% if finding.has_finding_group %} + {{ finding.finding_group.name }} + {% endif %} + | + {% endif %} + {% if show_product_column and product_tab is None %} ++ {{ finding.test.engagement.product }} + | + {% endif %} ++ {% if finding.service %}{{ finding.service }}{% endif %} + | ++ {% if finding.planned_remediation_date %}{{ finding.planned_remediation_date }}{% endif %} + | ++ {% if finding.planned_remediation_version %}{{ finding.planned_remediation_version }}{% endif %} + | + {% if filter_name != 'Closed' %} +
+ {% if finding.reviewers %}
+ {% for reviewer in finding.reviewers.all %}
+ {{reviewer.get_full_name}}
+ {% if not forloop.last %} {% endif %} + {% endfor %} + {% endif %} + |
+ {% endif %}
+ {% endblock body %}
+
+ {% trans "No findings found." %} +
+| - | Name | -Type | -Lead | -Date | -Length | - {% if system_settings.enable_jira %} -JIRA | - {% endif %} -Tests | -Active (Verified / Fixable) | -Mitigated | -Accepted | -All | -Duplicates | - {% if status == "paused" or status == "closed" %} -Status | - {% endif %} -||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| - | -- - {{ eng.name|truncatechars_html:35|default:"N/A" }} - {% if eng.version %} - - - {{ eng.version }} - - {% endif %} - {% include "dojo/snippets/tags.html" with tags=eng.tags.all %} - | -{{ eng.engagement_type }} | -- {% if eng.lead.get_full_name and eng.lead.get_full_name.strip %} - {{ eng.lead.get_full_name }} - {% else %} - {{ eng.lead |default_if_none:""}} - {% endif %} - | -
-
- {{ eng.target_start|date:"jS F" }} {% if eng.target_start|datediff_time:eng.target_end != "1 day" %} - {{ eng.target_end|date:"jS F" }}{% endif %}
+
+ {% include "dojo/paging_snippet.html" with page=engs prefix=prefix page_size=True %}
+
+ {% if engs %}
+
-
+ {% else %}
+ {{ eng.count_tests }}
+ {% endif %}
- {% endif %}
+ No {% if status == "open" %}active{% elif status == "paused" %}paused{% else %}closed{% endif %} engagements found. + (last {{recent_test_day_count}} day{{recent_test_day_count|pluralize}}) + + + {% for test in eng.test_set.all %} + |
+ {{ eng.count_findings_open }} ({{ + eng.count_findings_open_verified}}/{{ eng.count_findings_fix_available}}) | +{{ eng.count_findings_close }} | +{{ eng.count_findings_accepted }} | +{{ eng.count_findings_all }} | +{{ eng.count_findings_duplicate }} | + {% if status == "paused" or status == "closed" %} ++ {% if eng.status == "Blocked" %} + + {% elif eng.status == "On Hold" %} + + {% else %} + + {% endif %} + {{ eng.status }} + + | + {% endif %} + {% endfor %} +
No {% if status == "open" %}active{% elif status == "paused" %}paused{% else %}closed{% + endif %} engagements found.
+