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

Data import API #5125

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions InvenTree/InvenTree/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,10 @@
# Admin site integration
'django.contrib.admin',

# Data import
'data_wizard',
'data_wizard.sources',

# InvenTree apps
'build.apps.BuildConfig',
'common.apps.CommonConfig',
Expand Down
2 changes: 2 additions & 0 deletions InvenTree/InvenTree/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,8 @@

re_path(r'^api/', include(apipatterns)),
re_path(r'^api-doc/', SpectacularRedocView.as_view(url_name='schema'), name='api-doc'),

re_path(r'^import/', include('data_wizard.urls')),
]

frontendpatterns = [
Expand Down
32 changes: 32 additions & 0 deletions InvenTree/InvenTree/wizard.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"""Target model definitions for django-data-wizard import tool:

- Any model which supports direct data import must be registered here
"""

import data_wizard

import order.models
import order.serializers
import part.models
import part.serializers
import stock.models
import stock.serializers

# Register Part models
data_wizard.register(part.models.Part, part.serializers.PartSerializer)
data_wizard.register(part.models.PartCategory, part.serializers.CategorySerializer)
data_wizard.register(part.models.PartParameterTemplate, part.serializers.PartParameterTemplateSerializer)
data_wizard.register(part.models.PartParameter, part.serializers.PartParameterSerializer)
data_wizard.register(part.models.BomItem, part.serializers.BomItemSerializer)

# Register Order models
data_wizard.register(order.models.SalesOrder, order.serializers.SalesOrderSerializer)
data_wizard.register(order.models.SalesOrderLineItem, order.serializers.SalesOrderLineItemSerializer)
data_wizard.register(order.models.PurchaseOrder, order.serializers.PurchaseOrderSerializer)
data_wizard.register(order.models.PurchaseOrderLineItem, order.serializers.PurchaseOrderLineItemSerializer)
data_wizard.register(order.models.ReturnOrder, order.serializers.ReturnOrderSerializer)
data_wizard.register(order.models.ReturnOrderLineItem, order.serializers.ReturnOrderLineItemSerializer)

# Register Stock models
data_wizard.register(stock.models.StockItem, stock.serializers.StockItemSerializer)
data_wizard.register(stock.models.StockLocation, stock.serializers.LocationSerializer)
1 change: 1 addition & 0 deletions requirements.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Django>=3.2.14,<4 # Django package
coreapi # API documentation for djangorestframework
cryptography>=40.0.0,!=40.0.2 # Core cryptographic functionality
data-wizard # Data import wizard
django-allauth # SSO for external providers via OpenID
django-allauth-2fa # MFA / 2FA
django-cleanup # Automated deletion of old / unused uploaded files
Expand Down
19 changes: 18 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ cffi==1.15.1
# weasyprint
charset-normalizer==3.1.0
# via requests
click==8.1.3
# via itertable
coreapi==2.3.3
# via -r requirements.in
coreschema==0.0.4
Expand All @@ -39,6 +41,8 @@ cryptography==41.0.1
# pyjwt
cssselect2==0.7.0
# via weasyprint
data-wizard==2.0.0
# via -r requirements.in
defusedxml==0.7.1
# via
# odfpy
Expand Down Expand Up @@ -145,6 +149,7 @@ django-xforwardedfor-middleware==2.0
djangorestframework==3.14.0
# via
# -r requirements.in
# data-wizard
# dj-rest-auth
# djangorestframework-simplejwt
# drf-spectacular
Expand All @@ -162,6 +167,10 @@ fonttools[woff]==4.39.4
# via weasyprint
gunicorn==20.1.0
# via -r requirements.in
html-json-forms==1.1.1
# via
# data-wizard
# natural-keys
html5lib==1.1
# via weasyprint
icalendar==5.0.7
Expand All @@ -172,6 +181,8 @@ importlib-metadata==6.6.0
# via markdown
inflection==0.5.1
# via drf-spectacular
itertable==2.2.0
# via data-wizard
itypes==1.2.0
# via coreapi
jinja2==3.1.2
Expand All @@ -184,12 +195,16 @@ markuppy==1.14
# via tablib
markupsafe==2.1.3
# via jinja2
natural-keys==2.1.0
# via data-wizard
oauthlib==3.2.2
# via requests-oauthlib
odfpy==1.4.1
# via tablib
openpyxl==3.1.2
# via tablib
# via
# itertable
# tablib
pdf2image==1.16.3
# via -r requirements.in
pillow==9.5.0
Expand Down Expand Up @@ -225,6 +240,7 @@ python-barcode[images]==0.14.0
python-dateutil==2.8.2
# via
# arrow
# data-wizard
# django-recurrence
# icalendar
python-dotenv==1.0.0
Expand Down Expand Up @@ -259,6 +275,7 @@ requests==2.31.0
# via
# coreapi
# django-allauth
# itertable
# requests-oauthlib
requests-oauthlib==1.3.1
# via django-allauth
Expand Down
Loading