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

[FR] Import tool refactor #3101

Open
16 of 33 tasks
Tracked by #5212
matmair opened this issue May 30, 2022 · 7 comments
Open
16 of 33 tasks
Tracked by #5212

[FR] Import tool refactor #3101

matmair opened this issue May 30, 2022 · 7 comments
Assignees
Labels
enhancement This is an suggested enhancement or new feature Fund This issue can be specifically funded for development import / export Data importing, exporting and processing roadmap This is a roadmap feature with no immediate plans for implementation
Milestone

Comments

@matmair
Copy link
Member

matmair commented May 30, 2022

Is your feature request the result of a bug?
#2341
#3098
#3097
#6321

Problem
We have several ways to do imports - we should refactor imports out.

Suggested solution
Two principles:

  • API first
  • backend-run first

Backend:

  • Switch to data-wizard
  • Refactor all import code into a seperate app
  • Clean up / limit exposed APIs from data-wizard
  • Create backend worker for django-q
  • Create frontend that consumes the new APIs to build up an import flow

Refactor code base

Unit tests:

  • E2E Tests for import flow
  • E2E for all refactored importers based on static import files that are in git

Describe alternatives you've considered
We should fix this, not sure what release to target though.

Do you want to develop this?
Yes - this will be something for the whole team I think.


Outstanding Tasks

  • Support "default values" when importing dataset
  • Allow user to navigate back to previous data steps
  • Add unit test for cleanup backup task
  • Ensure user has correct permissions before creating a new import session
  • Expose import / export functions to plugins
  • Allow plugins to define custom export fields / processes
  • Allow bulk data export action to django admin interface
  • Replace existing "BOM Import" tool with new importer
  • Replace existing "BOM export" tool with new exporter
  • Replace existing "part import" tool with new importer
  • Replace existing "purchase order import" tool with new importer
  • Remove django-import-export framework entirely
  • Allow bulk "update" via import (override current records, not create new ones)
  • Remove all custom import UI template code (html templates, legacy)
  • Check that all existing "django-import-export" models are covered by new framework
  • Show "original row data" for each row when importing data
  • Allow user to create new related model "in place"
  • Add "context specific" importers for particular tables, rather than just in the admin center
  • Improve efficiency of data import process (currently takes ~1 minute for 1,000 records)
  • Impove user interface for data import - in particular, react hook efficiency
  • Enable per-column specification of "default" values in the admin portal
  • Documentation for new data import process

Upvote & Fund

  • We're using Polar.sh so you can upvote and help fund this issue.
  • We receive the funding once the issue is completed & confirmed by you.
  • Thank you in advance for helping prioritize & fund our backlog.
Fund with Polar
@matmair matmair added enhancement This is an suggested enhancement or new feature import / export Data importing, exporting and processing roadmap This is a roadmap feature with no immediate plans for implementation labels May 30, 2022
@SchrodingersGat
Copy link
Member

This one feels like a high priority once we've got the current backlog of devops stuff out of the way

@lukasbrchl
Copy link

Hi @SchrodingersGat, would it please be possible to have at least the basic functionality of the import tool fixed for 0.8.0? I mean just import the parts from CSV and create orders from them as we had before. I know there is a lot of work for this, but this functionality is really important fur us. Thanks!

@SchrodingersGat
Copy link
Member

Hi @lukasbrchl nothing planned at this stage but maybe your company would be willing to sponsor some development time on this? Please reach out to me if this would be an option for you.

@matmair matmair mentioned this issue Jul 4, 2022
2 tasks
@SchrodingersGat SchrodingersGat modified the milestones: 0.9.0, 0.10.0 Oct 16, 2022
@matmair
Copy link
Member Author

matmair commented Nov 14, 2022

@SchrodingersGat this will be important for #3901 / #2789 - our current functionality is not set up to work through the API so it can not be easily decoupled from the integrated frontend

@SchrodingersGat
Copy link
Member

Yep, the import tool definitely needs to work via the API :)

@matmair
Copy link
Member Author

matmair commented Feb 28, 2023

Would be easier once #4304 is done as there is already a worker for celery.

@matmair
Copy link
Member Author

matmair commented Jun 5, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement This is an suggested enhancement or new feature Fund This issue can be specifically funded for development import / export Data importing, exporting and processing roadmap This is a roadmap feature with no immediate plans for implementation
Projects
Status: In Progress
Development

Successfully merging a pull request may close this issue.

3 participants