Skip to main content

Wireviz plugin for InvenTree

Project description

License: MIT PyPI PEP

inventree-wireviz

The inventree-wireviz plugin provides direct integration for wireviz, a text-based wiring harness specification tool.

Functionality

The plugin provides a number of key functions:

Harness Diagram Generation

This plugin provides server-side generation of a wiring harness diagram from a .wireviz file. Uploading a simple harness file results in the generation of a wiring diagram:

Note Refer to the wireviz syntax guide for a full description of the file format.

The generated harness diagram is available as a .svg file.

BOM Extraction

Bill of Materials (BOM) information can be extracted directly from the harness description file, allowing for a harness assembly to be fully qualified from the template file.

Report Generation

The generated .svg can be used in report templates, for example as a reference diagram in a Build Order Report

Installation

Installation Requirements

You must have graphviz installed, and accessible by the InvenTree server.

e.g. apt-get install graphviz

If installing in a container environment (e.g. Docker), the dockerfile will need to be extended to install the graphviz binaries

Plugin Installation

The plugin is available via PIP. Follow the InvenTree plugin installation guide to install the plugin on your system

Configuration

Once the plugin is installed, it needs to be enabled before it is available for use. Again, refer to the InvenTree docs for instructions on how to enable the plugin. After the plugin is enabled, the following configuration options are available:

Setting Description
Wireviz Upload Path Directory where wireviz template files can be uploaded, and referenced by wireviz. This is an advanced option. Refer to the wireviz docs for more information on templates.
Delete Old Files Remove old harness diagram files when a new .wireviz file is uploaded
Extract BOM Data Extract BOM data from harness file and generate new BOM entries
Clear BOM Data Remove existing BOM entries first, before creating new ones
Add Part Image Where available, embed part images in the generated harness diagram

Additionally, you must ensure that the Enable event integration setting is enabled in the Plugin Settings view:

Operation

Uploading Wireviz File

To generate a wiring harness diagram for a specific Part, upload a (valid) wireviz yaml file. The file *must have the .wireviz extension to be recognized by the plugin.

When the file is uploaded to the server, the plugin is notified and begins the process of generating the harness diagram. If successful, a .svg file is attached to the part instance:

Harness Diagram Panel

When a Part has a valid harness diagram (i.e. generated without any critical errors), the Harness Diagram panel will be available for that part. This panel displays the diagram image, and a simple Bill of Materials (as defined in the uploaded .wireviz file):

Note You may need to reload the page before this panel is visible

Warning Any warnings or errors which were raised during the process will be displayed here

BOM Extraction

If enabled, the plugin will attempt to generate a linked Bill of Materials based on the data provided in the file. Part linking is performed based on the pn (part number) attribute in the wireviz BOM.

For each line item in the uploaded BOM, the plugin attempts to match the pn field to an existing part in the InvenTree database. If a matching part is not found, this is marked with a warning in the simplified BOM table in the harness diagram panel.

Reports

The generated diagram can be used in certain reports (such as the Build Order Report). If a wiring harness diagram is available for a Part, it is included in the report context as a variable named wireviz_svg_file.

Note The provided variable refers to the filename of the .svg image - not the file itself. Use the {% encode_svg_image %} template tag to render the image file.

A very simple example is shown below:

{% extends "report/inventree_build_order_base.html" %}

{% load report %}

{% block style %}
{{ block.super }}

.harness {
    border: 1px solid #AAA; 
    width: 100%;
    display: inline-block;
}

{% endblock %}

{% block page_content %}

{{ block.super }}

{% if wireviz_svg_file %}

    <h4>Harness Drawing</h4>
    <img class='harness' src='{% encode_svg_image wireviz_svg_file %}'>
{% endif %}

{% endblock page_content %}

The resulting report is rendered as below:

Wireviz Documentation

Documentation on the capabilities of wireviz itself:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inventree-wireviz-plugin-0.4.2.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

inventree_wireviz_plugin-0.4.2-py2.py3-none-any.whl (11.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file inventree-wireviz-plugin-0.4.2.tar.gz.

File metadata

File hashes

Hashes for inventree-wireviz-plugin-0.4.2.tar.gz
Algorithm Hash digest
SHA256 e8fc26e470d41039d108e5fcde431cca228ff3d626e6efc6dd092ebcb61b3d4f
MD5 f6db5d00bd19672a596f91306e0375be
BLAKE2b-256 b2238b0ee464693775c4b843b4749b85d3ecfe1813c4333335faa5354df0b4cd

See more details on using hashes here.

File details

Details for the file inventree_wireviz_plugin-0.4.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for inventree_wireviz_plugin-0.4.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b204dab7e09e3d1ebb9c61b3136a5eabbcc1e24f129ee104d90b2634c74a542b
MD5 165633c2f527ca1fd0122319f27d1973
BLAKE2b-256 197a5cb34099aa48fddc7ab136c0efca1f89ccf9d85d7ff669da295804f68340

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page