483 lines
25 KiB
HTML
483 lines
25 KiB
HTML
{% extends "ereuse_devicehub/base_site.html" %}
|
|
{% block main %}
|
|
|
|
<div class="pagetitle">
|
|
<h1>{{ page_title }}</h1>
|
|
<nav>
|
|
<ol class="breadcrumb">
|
|
<li class="breadcrumb-item"><a href="{{ url_for('inventory.devicelist')}}">Inventory</a></li>
|
|
<li class="breadcrumb-item">{{ page_title }}</li>
|
|
</ol>
|
|
</nav>
|
|
</div><!-- End Page Title -->
|
|
|
|
<section class="section profile">
|
|
<div class="row">
|
|
<div class="col-xl-8">
|
|
|
|
<div class="card">
|
|
<div class="card-body">
|
|
|
|
<div class="pt-4 pb-2">
|
|
{% if form.form_errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.form_errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<form method="post" class="row g-3 needs-validation" novalidate>
|
|
{{ form.csrf_token }}
|
|
|
|
<div>
|
|
<div class="form-group has-validation mb-2">
|
|
<label for="name" class="form-label">Type *</label>
|
|
<select id="type" class="form-control" name="type" required="" {% if form.type.render_kw.disabled %}disabled="disabled"{% endif %}>
|
|
<option value="">Select one Type</option>
|
|
<optgroup label="Computer">
|
|
<option value="Laptop"
|
|
{% if form.type.data == 'Laptop' %} selected="selected"{% endif %}>Laptop</option>
|
|
<option value="Desktop"
|
|
{% if form.type.data == 'Desktop' %} selected="selected"{% endif %}>Desktop</option>
|
|
<option value="Server"
|
|
{% if form.type.data == 'Server' %} selected="selected"{% endif %}>Server</option>
|
|
</optgroup>
|
|
<optgroup label="Monitor">
|
|
<option value="ComputerMonitor"
|
|
{% if form.type.data == 'ComputerMonitor' %} selected="selected"{% endif %}>Computer Monitor</option>
|
|
<option value="Monitor"
|
|
{% if form.type.data == 'Monitor' %} selected="selected"{% endif %}>Monitor</option>
|
|
<option value="TelevisionSet"
|
|
{% if form.type.data == 'TelevisionSet' %} selected="selected"{% endif %}>TelevisionSet</option>
|
|
<option value="Projector"
|
|
{% if form.type.data == 'Projector' %} selected="selected"{% endif %}>Projector</option>
|
|
</optgroup>
|
|
<optgroup label="Mobile">
|
|
<option value="Smartphone"
|
|
{% if form.type.data == 'Smartphone' %} selected="selected"{% endif %}>Smartphone</option>
|
|
<option value="Tablet"
|
|
{% if form.type.data == 'Tablet' %} selected="selected"{% endif %}>Tablet</option>
|
|
<option value="Cellphone"
|
|
{% if form.type.data == 'Cellphone' %} selected="selected"{% endif %}>Cellphone</option>
|
|
</optgroup>
|
|
<optgroup label="Computer Accessory">
|
|
<option value="Mouse"
|
|
{% if form.type.data == 'Mouse' %} selected="selected"{% endif %}>Mouse</option>
|
|
<option value="MemoryCardReader"
|
|
{% if form.type.data == 'MemoryCardReader' %} selected="selected"{% endif %}>Memory card reader</option>
|
|
<option value="SAI"
|
|
{% if form.type.data == 'SAI' %} selected="selected"{% endif %}>SAI</option>
|
|
<option value="Keyboard"
|
|
{% if form.type.data == 'Keyboard' %} selected="selected"{% endif %}>Keyboard</option>
|
|
</optgroup>
|
|
</select>
|
|
<small class="text-muted form-text">Type of devices</small>
|
|
{% if form.type.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.type.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="form-group mb-2">
|
|
<label for="label" class="form-label">{{ form.amount.label }} *</label>
|
|
{{ form.amount(class_="form-control") }}
|
|
<small class="text-muted form-text">Number of devices you want to create of this type</small>
|
|
{% if form.amount.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.amount.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="form-group mb-2" id="Id_device_supplier">
|
|
<label for="label" class="form-label">{{ form.id_device_supplier.label }}</label>
|
|
{{ form.id_device_supplier(class_="form-control") }}
|
|
<small class="text-muted form-text">Identity of device for the Supplier</small>
|
|
{% if form.id_device_supplier.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.id_device_supplier.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="form-group mb-2" id="Id_device_internal">
|
|
<label for="label" class="form-label">{{ form.id_device_internal.label }}</label>
|
|
{{ form.id_device_internal(class_="form-control") }}
|
|
<small class="text-muted form-text">Identity of device for the internal</small>
|
|
{% if form.id_device_internal.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.id_device_internal.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="form-group mb-2">
|
|
<label for="label" class="form-label">{{ form.pallet.label }}</label>
|
|
{{ form.pallet(class_="form-control") }}
|
|
<small class="text-muted form-text">Identity of pallet</small>
|
|
{% if form.pallet.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.pallet.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="form-group mb-2">
|
|
<label for="label" class="form-label">{{ form.info.label }}</label>
|
|
{{ form.info(class_="form-control") }}
|
|
<small class="text-muted form-text">Info extra</small>
|
|
{% if form.info.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.info.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="form-group mb-2">
|
|
<label for="label" class="form-label">{{ form.components.label }}</label>
|
|
{{ form.components(class_="form-control") }}
|
|
<small class="text-muted form-text">Description of components</small>
|
|
{% if form.components.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.components.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2" id="Part_number">
|
|
<label for="partNumber" class="form-label">{{ form.part_number.label }}</label>
|
|
{{ form.part_number(class_="form-control") }}
|
|
<small class="text-muted form-text">Part number of this device</small>
|
|
{% if form.part_number.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.part_number.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2" id="Serial_number">
|
|
<label for="serialNumber" class="form-label">{{ form.serial_number.label }}</label>
|
|
{{ form.serial_number(class_="form-control") }}
|
|
<small class="text-muted form-text">Serial number of this device</small>
|
|
{% if form.serial_number.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.serial_number.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2">
|
|
<label for="model" class="form-label">{{ form.model.label }}</label>
|
|
{{ form.model(class_="form-control") }}
|
|
<small class="text-muted form-text">Name of model</small>
|
|
{% if form.model.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.model.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2">
|
|
<label for="model" class="form-label">{{ form.manufacturer.label }}</label>
|
|
{{ form.manufacturer(class_="form-control") }}
|
|
<small class="text-muted form-text">Name of manufacturer</small>
|
|
{% if form.manufacturer.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.manufacturer.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2">
|
|
<label for="model" class="form-label">{{ form.appearance.label }}</label>
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="radio" name="appearance" value="Z"
|
|
{% if form.appearance.data == 'Z' %}checked="cheked"{% endif %}>
|
|
<label class="form-check-label">0. The device is new.</label>
|
|
</div>
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="radio" name="appearance" value="A"
|
|
{% if form.appearance.data == 'A' %}checked="checked"{% endif %}>
|
|
<label class="form-check-label">A. Like new (no visual damage))</label>
|
|
</div>
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="radio" name="appearance" value="B"
|
|
{% if form.appearance.data == 'B' %}checked="checked"{% endif %}>
|
|
<label class="form-check-label">B. In very good condition (small visual damage to hard-to-detect parts)</label>
|
|
</div>
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="radio" name="appearance" value="C"
|
|
{% if form.appearance.data == 'C' %}checked="checked"{% endif %}>
|
|
<label class="form-check-label">C. In good condition (small visual damage to easy-to-detect parts, not the screen))</label>
|
|
</div>
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="radio" name="appearance" value="D"
|
|
{% if form.appearance.data == 'D' %}checked="checked"{% endif %}>
|
|
<label class="form-check-label">D. It is acceptable (visual damage to visible parts, not on the screen)</label>
|
|
</div>
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="radio" name="appearance" value="E"
|
|
{% if form.appearance.data == 'E' %}checked="checked"{% endif %}>
|
|
<label class="form-check-label">E. It is unacceptable (substantial visual damage that may affect use)</label>
|
|
</div>
|
|
<small class="text-muted form-text">Rate the imperfections that affect the device aesthetically, but not its use.</small>
|
|
{% if form.appearance.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.appearance.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2">
|
|
<label for="model" class="form-label">{{ form.functionality.label }}</label>
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="radio" name="functionality" value="A"
|
|
{% if form.functionality.data == 'A' %}checked="checked"{% endif %}>
|
|
<label class="form-check-label">A. Everything works perfectly (buttons, and no scratches on the screen)</label>
|
|
</div>
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="radio" name="functionality" value="B"
|
|
{% if form.functionality.data == 'B' %}checked="checked"{% endif %}>
|
|
<label class="form-check-label">B. There is a hard to press button or small scratches on the corners of the screen</label>
|
|
</div>
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="radio" name="functionality" value="C"
|
|
{% if form.functionality.data == 'C' %}checked="checked"{% endif %}>
|
|
<label class="form-check-label">C. A non-essential button does not work; the screen has multiple scratches on the corners</label>
|
|
</div>
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="radio" name="functionality" value="D"
|
|
{% if form.functionality.data == 'D' %}checked="checked"{% endif %}>
|
|
<label class="form-check-label">D. Multiple buttons do not work properly; the screen has severe damage that may affect use</label>
|
|
</div>
|
|
<small class="text-muted form-text">It qualifies the defects of a device that affect its use.</small>
|
|
{% if form.functionality.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.functionality.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2">
|
|
<label for="model" class="form-label">{{ form.brand.label }}</label>
|
|
{{ form.brand(class_="form-control") }}
|
|
<small class="text-muted form-text">A naming for consumers. This field can represent several models, so it can be ambiguous, and it is not used to identify the product.</small>
|
|
{% if form.brand.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.brand.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2">
|
|
<label for="model" class="form-label">{{ form.version.label }}</label>
|
|
{{ form.version(class_="form-control") }}
|
|
<small class="text-muted form-text">The version code o fthis device, like 'v1' or 'A001'.</small>
|
|
{% if form.version.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.version.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2">
|
|
<label for="model" class="form-label">{{ form.weight.label }}</label>
|
|
{{ form.weight(class_="form-control") }}
|
|
<small class="text-muted form-text">The weight of the device in Kg.</small>
|
|
{% if form.weight.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.weight.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2">
|
|
<label for="model" class="form-label">{{ form.width.label }}</label>
|
|
{{ form.width(class_="form-control") }}
|
|
<small class="text-muted form-text">The width of the device in meters.</small>
|
|
{% if form.width.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.width.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2">
|
|
<label for="model" class="form-label">{{ form.height.label }}</label>
|
|
{{ form.height(class_="form-control") }}
|
|
<small class="text-muted form-text">The height of the device in meters.</small>
|
|
{% if form.height.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.height.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2">
|
|
<label for="model" class="form-label">{{ form.depth.label }}</label>
|
|
{{ form.depth(class_="form-control") }}
|
|
<small class="text-muted form-text">The depth of the device in meters.</small>
|
|
{% if form.depth.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.depth.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2">
|
|
<label for="model" class="form-label">{{ form.variant.label }}</label>
|
|
{{ form.variant(class_="form-control") }}
|
|
<small class="text-muted form-text">A variant or sub-model of the device.</small>
|
|
{% if form.variant.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.variant.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2" id="Sku">
|
|
<label for="model" class="form-label">{{ form.sku.label }}</label>
|
|
{{ form.sku(class_="form-control") }}
|
|
<small class="text-muted form-text">The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service.</small>
|
|
{% if form.sku.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.sku.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="from-group has-validation mb-2">
|
|
<label for="image" class="form-label">{{ form.image.label }}</label>
|
|
{{ form.image(class_="form-control") }}
|
|
<small class="text-muted form-text">An URL containing an image of the device.</small>
|
|
{% if form.image.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.image.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div id="imei" class="from-group has-validation mb-2">
|
|
<label for="imei" class="form-label">{{ form.imei.label }}</label>
|
|
{{ form.imei(class_="form-control") }}
|
|
<small class="text-muted form-text">A number from 14 to 16 digits.</small>
|
|
{% if form.imei.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.imei.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div id="meid" class="from-group has-validation mb-2">
|
|
<label for="meid" class="form-label">{{ form.meid.label }}</label>
|
|
{{ form.meid(class_="form-control") }}
|
|
<small class="text-muted form-text">14 hexadecimal digits.</small>
|
|
{% if form.meid.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.meid.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div id="resolution" class="from-group has-validation mb-2">
|
|
<label for="resolution" class="form-label">{{ form.resolution.label }}</label>
|
|
{{ form.resolution(class_="form-control") }}
|
|
<small class="text-muted form-text">The resolution width of the screen.</small>
|
|
{% if form.resolution.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.resolution.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div id="screen" class="from-group has-validation mb-2">
|
|
<label for="screen" class="form-label">{{ form.screen.label }}</label>
|
|
{{ form.screen(class_="form-control") }}
|
|
<small class="text-muted form-text">The size of the screen.</small>
|
|
{% if form.screen.errors %}
|
|
<p class="text-danger">
|
|
{% for error in form.screen.errors %}
|
|
{{ error }}<br/>
|
|
{% endfor %}
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
{% if lot_id %}
|
|
<a href="{{ url_for('inventory.lotdevicelist', lot_id=lot_id) }}" class="btn btn-danger">Cancel</a>
|
|
{% else %}
|
|
<a href="{{ url_for('inventory.devicelist') }}" class="btn btn-danger">Cancel</a>
|
|
{% endif %}
|
|
<button class="btn btn-primary" type="submit">Save</button>
|
|
</div>
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="col-xl-8">
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<script src="{{ url_for('static', filename='js/create_device.js') }}"></script>
|
|
{% endblock main %}
|