Commit Graph

84 Commits

Author SHA1 Message Date
Oliver 27aa16d55d
[Feature] Add RMA support (#4488)
* Adds ReturnOrder and ReturnOrderAttachment models

* Adds new 'role' specific for return orders

* Refactor total_price into a mixin

- Required for PurchaseOrder and SalesOrder
- May not be required for ReturnOrder (remains to be seen)

* Adds API endpoints for ReturnOrder

- Add list endpoint
- Add detail endpoint
- Adds required serializer models

* Adds basic "index" page for Return Order model

* Update API version

* Update navbar text

* Add db migration for new "role"

* Add ContactList and ContactDetail API endpoints

* Adds template and JS code for manipulation of contacts

- Display a table
- Create / edit / delete

* Splits order.js into multiple files

- Javascript files was becoming extremely large
- Hard to debug and find code
- Split into purchase_order / return_order / sales_order

* Fix role name (change 'returns' to 'return_order')

- Similar to existing roles for purchase_order and sales_order

* Adds detail page for ReturnOrder

* URL cleanup

- Use <int:pk> instead of complex regex

* More URL cleanup

* Add "return orders" list to company detail page

* Break JS status codes into new javascript file

- Always difficult to track down where these are rendered
- Enough to warrant their own file now

* Add ability to edit return order from detail page

* Database migrations

- Add new ReturnOrder modeles
- Add new 'contact' field to external orders

* Adds "contact" to ReturnOrder

- Implement check to ensure that the selected "contact" matches the selected "company"

* Adjust filters to limit contact options

* Fix typo

* Expose 'contact' field for PurchaseOrder model

* Render contact information

* Add "contact" for SalesOrder

* Adds setting to enable / disable return order functionality

- Simply hides the navigation elements
- API is not disabled

* Support filtering ReturnOrder by 'status'

- Refactors existing filter into the OrderFilter class

* js linting

* More JS linting

* Adds ReturnOrderReport model

* Add serializer for the ReturnOrderReport model

- A little bit of refactoring along the way

* Admin integration for new report model

* Refactoring for report.api

- Adds generic mixins for filtering queryset (based on updates to label.api)
- Reduces repeated code a *lot*

* Exposes API endpoints for ReturnOrderReport

* Adds default example report file for ReturnOrder

- Requires some more work :)

* Refactor report printing javascript code

- Replace all existing functions with 'printReports'

* Improvements for default StockItem test report template

- Fix bug in template
- Handle potential errors in template tags
- Add more helpers to report tags
- Improve test result rendering

* Reduce logging verbosity from weasyprint

* Refactor javascript for label printing

- Consolidate into a single function
- Similar to refactor of report functions

* Add report print button to return order page

* Record user reference when creating via API

* Refactor order serializers

- Move common code into AbstractOrderSerializer class

* Adds extra line item model for the return order

- Adds serializer and API endpoints as appropriate

* Render extra line table for return order

- Refactor existing functions into a single generic function
- Reduces repeated JS code a lot

* Add ability to create a new extra line item

* Adds button for creating a new lien item

* JS linting

* Update test

* Typo fix

(cherry picked from commit 28ac2be35b)

* Enable search for return order

* Don't do pricing (yet) for returnorder extra line table

- Fixes an uncaught error

* Error catching for api.js

* Updates for order models:

- Add 'target_date' field to abstract Order model
- Add IN_PROGRESS status code for return order
- Refactor 'overdue' and 'outstanding' API queries
- Refactor OVERDUE_FILTER on order models
- Refactor is_overdue on order models
- More table filters for return order model

* JS cleanup

* Create ReturnOrderLineItem model

- New type of status label
- Add TotalPriceMixin to ReturnOrder model

* Adds an API serializer for the ReturnOrderLineItem model

* Add API endpoints for ReturnOrderLineItem model

- Including some refactoring along the way

* javascript: refactor loadTableFilters function

- Pass enforced query through to the filters
- Call Object.assign() to construct a superset query
- Removes a lot of code duplication

* Refactor hard-coded URLS to use {% url %} lookup

- Forces error if the URL is wrong
- If we ever change the URL, will still work

* Implement creation of new return order line items

* Adds 'part_detail' annotation to ReturnOrderLineItem serializer

- Required for rendering part information

* javascript: refactor method for creating a group of buttons in a table

* javascript: refactor common buttons with helper functions

* Allow edit and delete of return order line items

* Add form option to automatically reload a table on success

- Pass table name to options.refreshTable

* JS linting

* Add common function for createExtraLineItem

* Refactor loading of attachment tables

- Setup drag-and-drop as part of core function

* CI fixes

* Refactoring out some more common API endpoint code

* Update migrations

* Fix permission typo

* Refactor for unit testing code

* Add unit tests for Contact model

* Tests for returnorder list API

* Annotate 'line_items' to ReturnOrder serializer

* Driving the refactor tractor

* More unit tests for the ReturnOrder API endpoints

* Refactor "print orders" button for various order tables

- Move into "setupFilterList" code (generic)

* add generic 'label printing' button to table actions buttons

* Refactor build output table

* Refactoring icon generation for js

* Refactoring for Part API

* Fix database model type for 'received_date'

* Add API endpoint to "issue" a ReturnOrder

* Improvements for stock tracking table

- Add new status codes
- Add rendering for SalesOrder
- Add rendering for ReturnOrder
- Fix status badges

* Adds functionality to receive line items against a return order

* Add endpoints for completing and cancelling orders

* Add option to allow / prevent editing of ReturnOrder after completed

* js linting

* Wrap "add extra line" button in setting check

* Updates to order/admin.py

* Remove inline admin for returnorderline model

* Updates to pass CI

* Serializer fix

* order template fixes

* Unit test fix

* Fixes for ReturnOrder.receive_line_item

* Unit testing for receiving line items against an RMA

* Improve example report for return order

* Extend unit tests for reporting

* Cleanup here and there

* Unit testing for order views

* Clear "sales_order" field when returning against ReturnOrder

* Add 'location' to deltas when returning from customer

* Bug fix for unit test
2023-03-29 10:35:43 +11:00
Oliver cde2050236
Client side QR Codes (#4357)
* Add JS for qrcodejs

Ref: https://davidshimjs.github.io/qrcodejs/

* Simple function for rendering a QR code

* Refactor QR code view for Part

* Replace QR code view for SupplierPart

* Refactor QR codes for stock item and stock location models

* Remove base QRCodeView entirely
2023-02-17 13:33:36 +11:00
Oliver 8b464e4397
Migrate "Convert to Variant" form to the API (#3183)
* Adds a Part API filter to limit query to valid conversion options for the specified part

* Refactor 'exclude_tree' filter to use django-filter framework

* Refactor the 'ancestor' filter

* Refactoring more API filtering fields:

- variant_of
- in_bom_for

* Adds API endpoint / view / serializer for converting a StockItem to variant

* stock item conversion now perfomed via the API

* Bump API version

* Add unit tests for new filtering option on the Part list API endpoint

* Adds  unit test for "convert" API endpoint functionality
2022-06-12 16:06:11 +10:00
Oliver 090f4f4387
Converting more forms to the API (#3181)
* Delete category via the API

* Delete StockLocation via the API

* Delete StockItem via the API

- Removes the final instance of AjaxDelete

* Remove URL path

* Add missing code
2022-06-11 21:53:26 +10:00
Oliver ea83d4b290
Refactor stock item test result form for API (#3143)
* Fix "polarity" of modal form submit button

(cherry picked from commit 0e4550f288)

* Use existing API functionality to delete all test results for a particular StockItem

* Remove outdated forms / views
2022-06-06 21:27:19 +10:00
Oliver ebca787f71
Remove outdated forms / views for stock item tracking (#3122)
* Remove outdated forms / views for stock item tracking

- No longer used anywhere
- Manual stock tracking entries are no longer supported anyway

* Futher cleanup:

- Delete unused template
- Remove URL which pointed to a nonexistent template
- Remove button for manually adding stock tracking entries
2022-06-03 12:20:37 +10:00
Oliver 4b3f77763d
Return from customer (#3120)
* Adds ability to return item into stock via the API

* Remove old server-side form / view for returning stock from a customer

* Add unit tests for new API endpoint
2022-06-03 08:36:08 +10:00
Matthias Mair 0c97a50e47
Docstring checks in QC checks (#3089)
* Add pre-commit to the stack

* exclude static

* Add locales to excludes

* fix style errors

* rename pipeline steps

* also wait on precommit

* make template matching simpler

* Use the same code for python setup everywhere

* use step and cache for python setup

* move regular settings up into general envs

* just use full update

* Use invoke instead of static references

* make setup actions more similar

* use python3

* refactor names to be similar

* fix runner version

* fix references

* remove incidential change

* use matrix for os

* Github can't do this right now

* ignore docstyle errors

* Add seperate docstring test

* update flake call

* do not fail on docstring

* refactor setup into workflow

* update reference

* switch to action

* resturcture

* add bash statements

* remove os from cache

* update input checks

* make code cleaner

* fix boolean

* no relative paths

* install wheel by python

* switch to install

* revert back to simple wheel

* refactor import export tests

* move setup keys back to not disturbe tests

* remove docstyle till that is fixed

* update references

* continue on error

* add docstring test

* use relativ action references

* Change step / job docstrings

* update to merge

* reformat comments 1

* fix docstrings 2

* fix docstrings 3

* fix docstrings 4

* fix docstrings 5

* fix docstrings 6

* fix docstrings 7

* fix docstrings 8

* fix docstirns 9

* fix docstrings 10

* docstring adjustments

* update the remaining docstrings

* small docstring changes

* fix function name

* update support files for docstrings

* Add missing args to docstrings

* Remove outdated function

* Add docstrings for the 'build' app

* Make API code cleaner

* add more docstrings for plugin app

* Remove dead code for plugin settings
No idea what that was even intended for

* ignore __init__ files for docstrings

* More docstrings

* Update docstrings for the 'part' directory

* Fixes for related_part functionality

* Fix removed stuff from merge 99676ee

* make more consistent

* Show statistics for docstrings

* add more docstrings

* move specific register statements to make them clearer to understant

* More docstrings for common

* and more docstrings

* and more

* simpler call

* docstrings for notifications

* docstrings for common/tests

* Add docs for common/models

* Revert "move specific register statements to make them clearer to understant"

This reverts commit ca96654622.

* use typing here

* Revert "Make API code cleaner"

This reverts commit 24fb68bd3e.

* docstring updates for the 'users' app

* Add generic Meta info to simple Meta classes

* remove unneeded unique_together statements

* More simple metas

* Remove unnecessary format specifier

* Remove extra json format specifiers

* Add docstrings for the 'plugin' app

* Docstrings for the 'label' app

* Add missing docstrings for the 'report' app

* Fix build test regression

* Fix top-level files

* docstrings for InvenTree/InvenTree

* reduce unneeded code

* add docstrings

* and more docstrings

* more docstrings

* more docstrings for stock

* more docstrings

* docstrings for order/views

* Docstrings for various files in the 'order' app

* Docstrings for order/test_api.py

* Docstrings for order/serializers.py

* Docstrings for order/admin.py

* More docstrings for the order app

* Add docstrings for the 'company' app

* Add unit tests for rebuilding the reference fields

* Prune out some more dead code

* remove more dead code

Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com>
2022-06-02 01:37:39 +10:00
Oliver Walters adbcd68fe8 Refactor "uninstall stock item" form to use the API 2022-05-04 17:25:24 +10:00
Matthias 67ab45bdee
update depreciated paths 2022-05-01 22:00:18 +02:00
Oliver 10cc72910d Remove StockExport view (no longer required!) 2022-03-03 17:25:41 +11:00
Oliver 0604e1a127 Adds API endpoint for installing stock items into other stock items
- Requires more filtering for the Part API
- Adds more BOM related functionality for Part model
- Removes old server-side form
2022-02-17 17:03:17 +11:00
Oliver 96a885e4e1 client side form for assigning stock items to customers 2021-12-09 00:20:45 +11:00
Matthias d884e62be1
[FR] Confirm to W293
Fixes #2335
2021-11-23 00:28:23 +01:00
Oliver 78ac40083a Fixes for stock api unit tests
- Remove old unit tests
- Require quantity when creating a new stock item
2021-11-05 00:27:26 +11:00
Oliver be7b224f14 Adds API endpoint for serialization of stock items 2021-11-03 10:12:42 +11:00
Oliver ef305032c9 Create new stock location via API forms 2021-11-02 20:04:54 +11:00
Oliver 0d9c08b49c StockLocationEdit 2021-11-02 19:58:25 +11:00
Oliver 4c8bc9580c stock-item-edit is looking OK now 2021-11-02 19:51:46 +11:00
Oliver efb4f194b6 Refactor StockExportOptions form 2021-07-19 17:23:18 +10:00
Oliver 533a3aa368 Refactor StockItem pages 2021-07-15 22:19:13 +10:00
Oliver b1640fcc23 Refactor StockLocation pages 2021-07-15 21:38:05 +10:00
Oliver 52eedef820 remove old StockAdjust view 2021-07-12 21:03:28 +10:00
Oliver bb0a72f235 Refactor forms for StockItemTestResult
- Add DETAIL endpoint for model
- Remove old views
- Remove old forms
2021-07-01 14:31:37 +10:00
Oliver 8f47035a7b Refactor delete view for PartAttachment and StockItemAttachment 2021-06-30 12:58:41 +10:00
Oliver 54c9bd25a5 Add detail endpoint for StockItemAttachment 2021-06-30 09:40:54 +10:00
Oliver 87235b7e6f Replace StockItemAttachmentCreate form
- Also replace drag-and-drop
- Add 'hidden' option for form fields
- Adds renderer for StockItem model
2021-06-30 09:17:28 +10:00
Oliver 7d53bcb27c Convert StockItemEditStatus to use API forms 2021-06-30 08:52:53 +10:00
Oliver Walters 03a231bffb Updates
- Add StockHistoryCode to custom context
- Add simple form for editing stock item history
- Add tracking entry when stock status is changed
2021-05-11 23:38:26 +10:00
Matthias f2b0717d10 removes all lines consisting only of spaces
this really bothers me for some reason - nothing technical
2021-05-06 12:11:38 +02:00
Oliver Walters 6986709fb8 Reorganized stock location view 2021-04-20 19:49:07 +10:00
Oliver Walters cd01bb0ad7 Refactor HTML view permission
- Introspect database model from View
- Automatically get the permission from the View class
2021-03-02 21:32:32 +11:00
Oliver Walters ef7cc3f78d Replace existing django form views with API request 2021-01-18 21:33:15 +11:00
Oliver Walters 21d5440f98 Remove unused views 2021-01-09 21:55:05 +11:00
Oliver Walters f04977e7e1 Add form / view for installing a stock item into another stock item 2020-10-04 20:41:28 +11:00
Oliver Walters 39cfe39172 View / form / url for stock-uninstall form 2020-09-28 21:27:27 +10:00
Oliver Walters f253bf1843 Add ability for stock API to be filtered by installed status 2020-09-28 20:07:25 +10:00
Oliver Walters 1807ba4e7b Add form for selecting label template for a StockItem 2020-08-16 12:10:58 +10:00
Oliver Walters cdde0f8c43 Add URL endpoint for downloading PDF labels 2020-08-16 11:12:21 +10:00
Oliver Walters bdea29df04 Add functionality to return stock item from customer 2020-08-08 09:05:33 +10:00
Oliver Walters 80019a3ed8 Add forms/views for manually assigning a stock item to a customer 2020-06-04 19:45:41 +10:00
Oliver Walters d2c1e9e2b0 Type fixes 2020-05-25 14:24:29 +10:00
Oliver Walters fdf57891fc Form / view / etc for performing StockItem conversion 2020-05-25 14:16:38 +10:00
Oliver Walters e6f56cb056 where one or more test report templates exist for a part,
provide a button for all stock-items of that part,
allowing the user to generate and download a test repotr
2020-05-22 22:25:05 +10:00
Oliver Walters fce8e3fe05 add button to delete all test data for a given stock item 2020-05-18 14:29:35 +10:00
Oliver Walters 327682b719 Add forms / views / etc to create / edit / delete test results manually 2020-05-17 00:26:10 +10:00
Oliver Walters a17ab9bfbd Add an (empty) page for dispalying test results 2020-05-16 21:10:27 +10:00
Oliver Walters 14132a6efa Add views / models / etc etc to support StockItem attachment 2020-05-07 09:57:54 +10:00
Oliver Walters ae4ebab957 Display table of StockItems which have been split from the current item
- The StockItem list api now allows filtering by 'ancestor'
- Add 'children' tab for StockItem
- Needed to tweak the unit testing fixtures (yay thanks MPTT)
2020-02-17 22:37:55 +11:00
Oliver Walters 1bdcbd1974 Markdownify the 'notes' field for StockItem
- New tab interface for the StockItem page
- Display / editing of notes field with markdown
2020-02-02 12:11:18 +11:00