Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Treemap #128

Merged
merged 10 commits into from
Dec 2, 2020
Merged

Treemap #128

merged 10 commits into from
Dec 2, 2020

Conversation

nichtsfrei
Copy link
Member

What:
To have more control and to spare the creation of a squarify debian
package a simplified fork of https://github.com/laserson/squarify
is created to enable creation of treemaps in svg directly without
using matplotlib or alike.

Why:

To have an rough overview of scanned hosts a treemap was wanted i the overview page.

How:

Create a template, e.g:

<!doctype html>
{% load charts %}
<html>


<body>
<article id="overview">
    <div class="content">
        <div class="container">
            <h3>Vulnerable Equipment</h3>
            {{ overview.hosts | treemap }}
            <h3>Total NVT</h3>
            {{ overview.nvts | pie_chart }}
            <h3>Top 10 Hosts</h3>
            {{ overview.hosts | h_bar_chart  }}
        </div>
    </div>
</article>
</body>

</html>

and create a html report.

Checklist:

To have more control and to spare the creation of a squarify debian
package a simplified fork of https://github.com/laserson/squarify
is created to enable creation of treemaps in svg directly without
using matplotlib or alike.
Due to version switch from 3 to 2 asgi is not supported and is removed.

Add doctests to treemap.py for demonstration purpose, add doc test
execution to pytest due to that.
The bar chart is missing an closing g element and the svg image
replacement worked just for the first svg and will then produce
gibberish since the index has changed on html change.

In the moment it is using recursion, which should be replaced because
python does not nor will ever optimize tail recursion.
to reduce te overhead on a recurision it replace_inline_svg is using a
while loop to find all svgs if no svg was found than it returns the
html.
@nichtsfrei nichtsfrei marked this pull request as ready for review December 1, 2020 15:48
@nichtsfrei nichtsfrei requested a review from a team as a code owner December 1, 2020 15:48
pheme/templatetags/charts/treemap.py Outdated Show resolved Hide resolved
pheme/templatetags/charts/treemap.py Outdated Show resolved Hide resolved
pheme/templatetags/charts/treemap.py Outdated Show resolved Hide resolved
pheme/templatetags/charts/treemap.py Outdated Show resolved Hide resolved
pheme/templatetags/charts/treemap.py Outdated Show resolved Hide resolved
nichtsfrei and others added 3 commits December 2, 2020 07:53
use Rect class instead of x, y, dx, dy as parameter

Co-authored-by: Jaspar L. <jstach@uos.de>
instead of using 4 parameter everywhere use the data class Rect for it.
To be more consistent and easier to read svg templates are using just
named form parameter instead of only when > 3 and reusing.
pheme/templatetags/charts/treemap.py Outdated Show resolved Hide resolved
pheme/templatetags/charts/treemap.py Outdated Show resolved Hide resolved
indicate Rect return value

Co-authored-by: Jaspar L. <jstach@uos.de>
@y0urself y0urself merged commit faa50b8 into greenbone:master Dec 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants