django-bom 1.237__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- bom/__init__.py +1 -0
- bom/admin.py +161 -0
- bom/apps.py +8 -0
- bom/base_classes.py +31 -0
- bom/constants.py +210 -0
- bom/context_processors.py +9 -0
- bom/csv_headers.py +274 -0
- bom/decorators.py +32 -0
- bom/form_fields.py +59 -0
- bom/forms.py +1400 -0
- bom/helpers.py +292 -0
- bom/local_settings.py +35 -0
- bom/migrations/0001_initial.py +135 -0
- bom/migrations/0002_auto_20180908_2151.py +24 -0
- bom/migrations/0003_sellerpart_data_source.py +18 -0
- bom/migrations/0004_auto_20180911_0011.py +18 -0
- bom/migrations/0005_auto_20181007_1934.py +56 -0
- bom/migrations/0006_auto_20181007_1949.py +41 -0
- bom/migrations/0007_auto_20181009_0256.py +19 -0
- bom/migrations/0008_auto_20181030_0427.py +19 -0
- bom/migrations/0009_subpart_reference.py +18 -0
- bom/migrations/0010_auto_20181202_0733.py +23 -0
- bom/migrations/0011_auto_20181202_2113.py +22 -0
- bom/migrations/0012_partchangehistory.py +30 -0
- bom/migrations/0013_auto_20190222_1631.py +19 -0
- bom/migrations/0014_auto_20190223_2353.py +18 -0
- bom/migrations/0015_auto_20190303_1915.py +136 -0
- bom/migrations/0016_auto_20190405_2308.py +58 -0
- bom/migrations/0017_auto_20190616_1912.py +19 -0
- bom/migrations/0018_auto_20190616_2143.py +24 -0
- bom/migrations/0019_auto_20190624_1246.py +45 -0
- bom/migrations/0020_auto_20190627_0207.py +38 -0
- bom/migrations/0021_auto_20190627_0428.py +23 -0
- bom/migrations/0022_auto_20190811_2140.py +35 -0
- bom/migrations/0023_auto_20191205_2351.py +255 -0
- bom/migrations/0024_auto_20191214_1342.py +89 -0
- bom/migrations/0025_auto_20191221_1907.py +38 -0
- bom/migrations/0026_auto_20191222_2258.py +22 -0
- bom/migrations/0027_auto_20191222_2347.py +17 -0
- bom/migrations/0028_partrevision_displayable_synopsis.py +74 -0
- bom/migrations/0029_auto_20191231_1630.py +23 -0
- bom/migrations/0030_auto_20200101_2253.py +22 -0
- bom/migrations/0031_auto_20200104_1352.py +38 -0
- bom/migrations/0032_auto_20200126_1806.py +27 -0
- bom/migrations/0033_auto_20200203_0618.py +29 -0
- bom/migrations/0034_auto_20200222_0359.py +30 -0
- bom/migrations/0035_auto_20200303_0111.py +34 -0
- bom/migrations/0036_auto_20200303_0538.py +17 -0
- bom/migrations/0037_auto_20200405_1642.py +44 -0
- bom/migrations/0038_auto_20200422_0504.py +19 -0
- bom/migrations/0039_auto_20200929_2315.py +41 -0
- bom/migrations/0040_alter_organization_currency.py +19 -0
- bom/migrations/0041_organization_subscription_quantity.py +18 -0
- bom/migrations/0042_auto_20210720_2137.py +23 -0
- bom/migrations/0043_auto_20211123_0157.py +24 -0
- bom/migrations/0044_auto_20220831_1241.py +23 -0
- bom/migrations/0045_sellerpart_link.py +18 -0
- bom/migrations/0046_alter_sellerpart_unique_together.py +17 -0
- bom/migrations/0047_sellerpart_seller_part_number.py +18 -0
- bom/migrations/0048_rename_part_organization_number_class_bom_part_organiz_b333d6_idx_and_more.py +1017 -0
- bom/migrations/0049_alter_assembly_id_alter_assemblysubparts_id_and_more.py +99 -0
- bom/migrations/__init__.py +0 -0
- bom/models.py +757 -0
- bom/part_bom.py +192 -0
- bom/settings.py +264 -0
- bom/static/bom/css/dashboard.css +17 -0
- bom/static/bom/css/jquery.treetable.css +28 -0
- bom/static/bom/css/materialize.min.css +13 -0
- bom/static/bom/css/part-info.css +15 -0
- bom/static/bom/css/style.css +319 -0
- bom/static/bom/css/tablesorter-theme.materialize.css +176 -0
- bom/static/bom/css/treetable-theme.css +42 -0
- bom/static/bom/doc/sample_part_classes.csv +38 -0
- bom/static/bom/doc/test_bom.csv +6 -0
- bom/static/bom/doc/test_bom_5_intelligent.csv +4 -0
- bom/static/bom/doc/test_full_bom.csv +37 -0
- bom/static/bom/doc/test_new_parts.csv +5 -0
- bom/static/bom/doc/test_new_parts_5_intelligent.csv +5 -0
- bom/static/bom/img/_ionicons_svg_md-arrow-dropdown.svg +1 -0
- bom/static/bom/img/_ionicons_svg_md-arrow-dropright.svg +1 -0
- bom/static/bom/img/favicon.ico +0 -0
- bom/static/bom/img/google/web/1x/btn_google_signin_dark_disabled_web.png +0 -0
- bom/static/bom/img/google/web/1x/btn_google_signin_dark_focus_web.png +0 -0
- bom/static/bom/img/google/web/1x/btn_google_signin_dark_normal_web.png +0 -0
- bom/static/bom/img/google/web/1x/btn_google_signin_dark_pressed_web.png +0 -0
- bom/static/bom/img/google/web/1x/btn_google_signin_light_disabled_web.png +0 -0
- bom/static/bom/img/google/web/1x/btn_google_signin_light_focus_web.png +0 -0
- bom/static/bom/img/google/web/1x/btn_google_signin_light_normal_web.png +0 -0
- bom/static/bom/img/google/web/1x/btn_google_signin_light_pressed_web.png +0 -0
- bom/static/bom/img/google/web/2x/btn_google_signin_dark_disabled_web@2x.png +0 -0
- bom/static/bom/img/google/web/2x/btn_google_signin_dark_focus_web@2x.png +0 -0
- bom/static/bom/img/google/web/2x/btn_google_signin_dark_normal_web@2x.png +0 -0
- bom/static/bom/img/google/web/2x/btn_google_signin_dark_pressed_web@2x.png +0 -0
- bom/static/bom/img/google/web/2x/btn_google_signin_light_disabled_web@2x.png +0 -0
- bom/static/bom/img/google/web/2x/btn_google_signin_light_focus_web@2x.png +0 -0
- bom/static/bom/img/google/web/2x/btn_google_signin_light_normal_web@2x.png +0 -0
- bom/static/bom/img/google/web/2x/btn_google_signin_light_pressed_web@2x.png +0 -0
- bom/static/bom/img/google/web/vector/btn_google_dark_disabled_ios.eps +814 -0
- bom/static/bom/img/google/web/vector/btn_google_dark_disabled_ios.svg +24 -0
- bom/static/bom/img/google/web/vector/btn_google_dark_focus_ios.eps +1866 -0
- bom/static/bom/img/google/web/vector/btn_google_dark_focus_ios.svg +51 -0
- bom/static/bom/img/google/web/vector/btn_google_dark_normal_ios.eps +1031 -0
- bom/static/bom/img/google/web/vector/btn_google_dark_normal_ios.svg +50 -0
- bom/static/bom/img/google/web/vector/btn_google_dark_pressed_ios.eps +1031 -0
- bom/static/bom/img/google/web/vector/btn_google_dark_pressed_ios.svg +50 -0
- bom/static/bom/img/google/web/vector/btn_google_light_disabled_ios.eps +814 -0
- bom/static/bom/img/google/web/vector/btn_google_light_disabled_ios.svg +24 -0
- bom/static/bom/img/google/web/vector/btn_google_light_focus_ios.eps +1837 -0
- bom/static/bom/img/google/web/vector/btn_google_light_focus_ios.svg +44 -0
- bom/static/bom/img/google/web/vector/btn_google_light_normal_ios.eps +1002 -0
- bom/static/bom/img/google/web/vector/btn_google_light_normal_ios.svg +43 -0
- bom/static/bom/img/google/web/vector/btn_google_light_pressed_ios.eps +1002 -0
- bom/static/bom/img/google/web/vector/btn_google_light_pressed_ios.svg +43 -0
- bom/static/bom/img/google_drive_logo.svg +1 -0
- bom/static/bom/img/indabom.png +0 -0
- bom/static/bom/img/mouser.png +0 -0
- bom/static/bom/img/octopart_blue.svg +19 -0
- bom/static/bom/js/jquery-3.4.1.min.js +2 -0
- bom/static/bom/js/jquery.ba-floatingscrollbar.min.js +10 -0
- bom/static/bom/js/jquery.treetable.js +629 -0
- bom/static/bom/js/materialize.min.js +6 -0
- bom/templates/bom/account-delete.html +23 -0
- bom/templates/bom/add-manufacturer-part.html +66 -0
- bom/templates/bom/add-sellerpart.html +93 -0
- bom/templates/bom/base-menu.html +16 -0
- bom/templates/bom/base.html +129 -0
- bom/templates/bom/bom-action-btn.html +23 -0
- bom/templates/bom/bom-action-table.html +57 -0
- bom/templates/bom/bom-base-menu.html +6 -0
- bom/templates/bom/bom-base.html +24 -0
- bom/templates/bom/bom-form-modal.html +36 -0
- bom/templates/bom/bom-form.html +30 -0
- bom/templates/bom/bom-signup.html +12 -0
- bom/templates/bom/components/bom-flat.html +131 -0
- bom/templates/bom/components/bom-indented.html +237 -0
- bom/templates/bom/components/manufacturer-part-list.html +270 -0
- bom/templates/bom/components/seller-part-list.html +62 -0
- bom/templates/bom/create-part.html +65 -0
- bom/templates/bom/dashboard-menu.html +15 -0
- bom/templates/bom/dashboard.html +303 -0
- bom/templates/bom/edit-manufacturer-part.html +72 -0
- bom/templates/bom/edit-part-class.html +33 -0
- bom/templates/bom/edit-part.html +67 -0
- bom/templates/bom/edit-user-meta.html +38 -0
- bom/templates/bom/help.html +1356 -0
- bom/templates/bom/manufacturer-info.html +82 -0
- bom/templates/bom/manufacturers.html +97 -0
- bom/templates/bom/nothing-to-see.html +15 -0
- bom/templates/bom/organization-create.html +132 -0
- bom/templates/bom/part-info.html +439 -0
- bom/templates/bom/part-revision-display.html +184 -0
- bom/templates/bom/part-revision-edit.html +39 -0
- bom/templates/bom/part-revision-manage-bom.html +115 -0
- bom/templates/bom/part-revision-new.html +57 -0
- bom/templates/bom/part-revision-release.html +41 -0
- bom/templates/bom/search-help.html +101 -0
- bom/templates/bom/seller-info.html +82 -0
- bom/templates/bom/sellers.html +97 -0
- bom/templates/bom/settings.html +408 -0
- bom/templates/bom/signup.html +28 -0
- bom/templates/bom/table_of_contents.html +47 -0
- bom/templates/bom/upload-bom.html +111 -0
- bom/templates/bom/upload-parts-help.html +103 -0
- bom/templates/bom/upload-parts.html +50 -0
- bom/templates/registration/login.html +39 -0
- bom/tests.py +1506 -0
- bom/third_party_apis/__init__.py +0 -0
- bom/third_party_apis/base_api.py +51 -0
- bom/third_party_apis/google_drive.py +166 -0
- bom/third_party_apis/mouser.py +132 -0
- bom/third_party_apis/test_apis.py +24 -0
- bom/urls.py +94 -0
- bom/utils.py +228 -0
- bom/validators.py +23 -0
- bom/views/__init__.py +0 -0
- bom/views/json_views.py +55 -0
- bom/views/views.py +1620 -0
- bom/wsgi.py +16 -0
- django_bom-1.237.dist-info/METADATA +206 -0
- django_bom-1.237.dist-info/RECORD +183 -0
- django_bom-1.237.dist-info/WHEEL +5 -0
- django_bom-1.237.dist-info/licenses/LICENSE +674 -0
- django_bom-1.237.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{% extends 'bom/bom-base.html' %}
|
|
2
|
+
|
|
3
|
+
{% load static %}
|
|
4
|
+
{% load materializecss %}
|
|
5
|
+
|
|
6
|
+
{% block head-title %}{{ title }}{% endblock %}
|
|
7
|
+
|
|
8
|
+
{% block bom-menu %}
|
|
9
|
+
<li><a href="{% url 'bom:home' %}">Home</a></li>
|
|
10
|
+
{% endblock %}
|
|
11
|
+
|
|
12
|
+
{% block content %}
|
|
13
|
+
<div class="container">
|
|
14
|
+
|
|
15
|
+
<h5>Help For Uploading Parts</h5>
|
|
16
|
+
<p>To batch create parts, upload a csv that contains columns with the headers
|
|
17
|
+
{% if organization.number_scheme == 'S' %}<b>'part_class'</b> or {% endif %}<b>'part_number'</b>, <b>'description'</b> or <b>'value'</b>
|
|
18
|
+
along with <b>'value_units'</b>, and <b>'revision'</b>.{% if organization.number_scheme == 'S' %} If you specify a part number
|
|
19
|
+
then it must be one that is not already being used. If you don't specify a part number
|
|
20
|
+
then IndaBOM will create one for you.{% endif %}</p>
|
|
21
|
+
|
|
22
|
+
<p>If you specify <b>'value_units'</b> then valid choices are:
|
|
23
|
+
Ohms, mOhms, kOhms, F, pF, nF, uF, V, uV, mV, A, uA, mA, C, F, Other
|
|
24
|
+
<p>
|
|
25
|
+
You may optionally specify a manufacturer and manufacturer's part number using
|
|
26
|
+
columns with the headers <b>'manufacturer'</b> and a <b>'manufacturer_part_number'</b>.
|
|
27
|
+
<p>
|
|
28
|
+
If you specify a part number that is already in use then the part will not be uploaded.
|
|
29
|
+
Similarly, other errors may prevent a part from being uploaded{% if organization.number_scheme == 'S' %}, for example, an improperly
|
|
30
|
+
formatted IndaBOM part number or the use of an unknown IndaBOM part class{% endif %}. The
|
|
31
|
+
uploading will continue with the next valid part in the file.
|
|
32
|
+
</p>
|
|
33
|
+
<p>
|
|
34
|
+
Any optional information that you can enter manually about a part via the
|
|
35
|
+
Create Part page may also be submitted via the part list CSV file.
|
|
36
|
+
Below is the complete list of the additional items you can upload for each part in
|
|
37
|
+
the file.
|
|
38
|
+
</p>
|
|
39
|
+
|
|
40
|
+
<h5>Optional Part Properties</h5>
|
|
41
|
+
<p/>
|
|
42
|
+
<p>
|
|
43
|
+
Optional part properties are listed below. Some properties requires that you also
|
|
44
|
+
specify units of measure.
|
|
45
|
+
</p>
|
|
46
|
+
<p>
|
|
47
|
+
Valid choices for part properties and units appear below.
|
|
48
|
+
</p>
|
|
49
|
+
<p><b>'tolerance'</b></p>
|
|
50
|
+
<p><b>'package'</b> (See choices below)</p>
|
|
51
|
+
<p><b>'pin_count'</b></p>
|
|
52
|
+
<p><b>'supply_voltage'</b> and <b>'supply_voltage_units'</b> (See choices below)</p>
|
|
53
|
+
<p><b>'power_rating'</b> and <b>'power_rating_units'</b> (See choices below)</p>
|
|
54
|
+
<p><b>'voltage_rating'</b> and <b>'voltage_rating_units'</b> (See choices below)</p>
|
|
55
|
+
<p><b>'current_rating'</b> and <b>'current_rating_units'</b> (See choices below)</p>
|
|
56
|
+
<p><b>'temperature_rating'</b> and <b>'temperature_rating_units'</b> (See choices below)</p>
|
|
57
|
+
<p><b>'memory'</b> and <b>'memory_units'</b> (See choices below)</p>
|
|
58
|
+
<p><b>'interface'</b> (See choices below)</p>
|
|
59
|
+
<p><b>'frequency'</b> and <b>'frequency_units'</b> (See choices below)</p>
|
|
60
|
+
<p><b>'wavelength'</b> and <b>'wavelength_units'</b> (See choices below)</p>
|
|
61
|
+
<p><b>'color'</b></p>
|
|
62
|
+
<p><b>'material'</b></p>
|
|
63
|
+
<p><b>'finish'</b></p>
|
|
64
|
+
<p><b>'length'</b> and <b>'length_units'</b> (See choices below)</p>
|
|
65
|
+
<p><b>'width'</b> and <b>'width_units'</b> (See choices below)</p>
|
|
66
|
+
<p><b>'height'</b> and <b>'height_units'</b> (See choices below)</p>
|
|
67
|
+
<p><b>'weight'</b> and <b>'weight_units'</b> (See choices below)</p>
|
|
68
|
+
<p><b>'attribute'</b></p>
|
|
69
|
+
<p/>
|
|
70
|
+
|
|
71
|
+
<h5>Valid Choices for Part Properties or Units</h5>
|
|
72
|
+
<p/>
|
|
73
|
+
<p><b>'package'</b> = 0201 smd, 0402 smd, 0603 smd, 0805 smd, 1206 smd, 1210 smd, 1812 smd,
|
|
74
|
+
2010 smd, 2512 smd, 1/8 radial, 1/4 radial, 1/2 radial, Size A, Size B, Size C, Size D, Size E, SOT-23,
|
|
75
|
+
SOT-223, DIL, SOP, SOIC, QFN, QFP, QFT, PLCCP, VGA, BGA, CSP</p>
|
|
76
|
+
<p><b>'power_rating'</b> = W, uW, mW, kW, MW</p>
|
|
77
|
+
<p><b>'supply_voltage'</b>, <b>'voltage_rating'</b> = V, uV, mV, kV, MV</p>
|
|
78
|
+
<p><b>'current_rating'</b> = A, uA, mA, kA, MA</p>
|
|
79
|
+
<p><b>'temperature_rating'</b> = C, F</p>
|
|
80
|
+
<p><b>'memory'</b> = KB, MB, GB, TB</p>
|
|
81
|
+
<p><b>'interface'</b> = I2C, SPI, CAN, One-Wire, RS485, RS232, WiFi, 4G, BT, Z_Wave, Zigbee, LAN, USB, HDMI, Other</p>
|
|
82
|
+
<p><b>'frequency'</b> = Hz, kHz MHz, GHz</p>
|
|
83
|
+
<p><b>'wavelength'</b> = km, m, cm, um, nm, A (where A means Angstrom)</p>
|
|
84
|
+
<p><b>'length'</b>, <b>'width'</b>, <b>'height'</b> = mil, in, ft, yd, km, m, cm, um, nm</p>
|
|
85
|
+
<p><b>'weight'</b> = mg, g, kb, oz, lb</p>
|
|
86
|
+
</p>
|
|
87
|
+
|
|
88
|
+
<h5>Manufacturers and sellers</h5>
|
|
89
|
+
<p/>
|
|
90
|
+
<p>
|
|
91
|
+
Manufacturers and sellers informations can be directly imported. Sellers data can be imported only when manufacturer data are present. Seller information must contains at least the seller name, unit cost and nre cost.
|
|
92
|
+
</p>
|
|
93
|
+
<p><b>'manufacturer_name'</b> Manufacturer name. Will be created if not exists</p>
|
|
94
|
+
<p><b>'manufacturer_part_number'</b></p>
|
|
95
|
+
<p><b>'seller'</b> Seller name. Will be created if not exists</p>
|
|
96
|
+
<p><b>'seller_part_number'</b> Optional seller part number</p>
|
|
97
|
+
<p><b>'unit_cost'</b></p>
|
|
98
|
+
<p><b>'part_nre_cost'</b></p>
|
|
99
|
+
<p><b>'moq'</b></p>
|
|
100
|
+
<p><b>'mpq</b></p>
|
|
101
|
+
</p>
|
|
102
|
+
</div>
|
|
103
|
+
{% endblock %}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{% extends 'bom/bom-base.html' %}
|
|
2
|
+
|
|
3
|
+
{% load static %}
|
|
4
|
+
|
|
5
|
+
{% block head-title %}{{ title }}{% endblock %}
|
|
6
|
+
|
|
7
|
+
{% block bom-menu %}
|
|
8
|
+
<li><a href="{% url 'bom:home' %}">Cancel</a></li>
|
|
9
|
+
{% endblock %}
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
{% block content %}
|
|
13
|
+
<div class="container-app">
|
|
14
|
+
{% if profile.role == 'A' %}
|
|
15
|
+
<h5>Upload Parts</h5>
|
|
16
|
+
<p>To batch create parts, upload a csv that contains columns with the headers
|
|
17
|
+
{% if organization.number_scheme == 'S' %}<b>'part_class'</b> or {% endif %}<b>'part_number'</b>, <b>'description'</b> or <b>'value'</b>
|
|
18
|
+
along with <b>'value_units'</b>, and <b>'revision'</b>. {% if organization.number_scheme == 'S' %}If you specify a part number
|
|
19
|
+
then it must be one that is not already being used. If you don't specify a part number
|
|
20
|
+
then IndaBOM will create one for you.{% endif %}
|
|
21
|
+
</p>
|
|
22
|
+
</p>
|
|
23
|
+
You may optionally specify a manufacturer and manufacturer's part number using
|
|
24
|
+
columns with the headers <b>'manufacturer'</b> and a <b>'manufacturer_part_number'</b>.
|
|
25
|
+
For the names of other optional columns click <a href="{% url 'bom:upload-parts-help' %}">here</a>.
|
|
26
|
+
</p>
|
|
27
|
+
<form action="{% url 'bom:upload-parts' %}" method="post" enctype="multipart/form-data">
|
|
28
|
+
{% csrf_token %}
|
|
29
|
+
<div class="row">
|
|
30
|
+
<div class="col m10 s12 file-field input-field">
|
|
31
|
+
<div class="green lighten-1 btn">
|
|
32
|
+
<span>File</span>
|
|
33
|
+
{{ form.file }}
|
|
34
|
+
</div>
|
|
35
|
+
<div class="file-path-wrapper">
|
|
36
|
+
<input class="file-path validate" type="text" placeholder="Upload a file.">
|
|
37
|
+
{{ form.file.errors }}
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="col m2 s12 text-center input-field">
|
|
41
|
+
<input class="green lighten-1 btn" type="submit" value="Upload"/>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</form>
|
|
45
|
+
{% else %}
|
|
46
|
+
{% include 'bom/nothing-to-see.html' with required_privilege='Admin' %}
|
|
47
|
+
{% endif %}
|
|
48
|
+
</div>
|
|
49
|
+
{% endblock %}
|
|
50
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{% extends BASE_TEMPLATE %}
|
|
2
|
+
|
|
3
|
+
{% load static %}
|
|
4
|
+
|
|
5
|
+
{% block head-title %}Login!{% endblock %}
|
|
6
|
+
|
|
7
|
+
{% block title %}
|
|
8
|
+
<link rel="stylesheet" type="text/css" href="{% static 'bom/style.css' %}" />
|
|
9
|
+
|
|
10
|
+
<div class="text-center">Login...</div>
|
|
11
|
+
|
|
12
|
+
{% endblock %}
|
|
13
|
+
|
|
14
|
+
{% block menu %}
|
|
15
|
+
{% endblock%}
|
|
16
|
+
{% block content %}
|
|
17
|
+
<div class="section center">
|
|
18
|
+
<h5 class="">Login into your BOM account</h5>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<div class="section center">
|
|
22
|
+
<div class="container ">
|
|
23
|
+
<div class="row" style="display: inline-block; ">
|
|
24
|
+
<form method="post">
|
|
25
|
+
{% csrf_token %}
|
|
26
|
+
<div class="row">
|
|
27
|
+
<div class="col s12">
|
|
28
|
+
{{ form }}
|
|
29
|
+
<div class="center">
|
|
30
|
+
<button class="waves-effect waves-light btn green lighten-1" style="min-width:150px" type="submit">Login</button>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</form>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
{% endblock %}
|
|
39
|
+
|