Commit Graph

11690 Commits

Author SHA1 Message Date
Oliver
b247aa6062
Fix thumbnail command (#3243)
- New image size "preview" was not being generated
- Check was looking for existance of "thumbnail" (which did exist)
- Updated so that all image sizes are generated on a migration
2022-06-23 13:48:36 +10:00
Matthias Mair
7283197bac
MFA remove improvement (#3239)
* temporary fix for GHSA-8j76-mm54-52xq

* return to setting afterwards
2022-06-23 12:21:10 +10:00
Oliver
4268130669
Small visual tweaks to various auth views (#3238) 2022-06-23 07:09:17 +10:00
Oliver
9b4e443289
Prevent calculation of 'allocation_count' before model is saved (#3235) 2022-06-22 20:50:21 +10:00
Oliver
63b4ff3eb6
Remove reliance on django-markdownx (#3231)
* Remove reliance on django-markdownx

- We are now rendering notes on the client side using easymde
- No longer any need to utilize the markdownx integration
- Adds character limit for notes fields`

* Adjust legacy migrations - remove references to markdownx

* Fix bug for company notes field
2022-06-20 22:20:04 +10:00
Oliver
a8b71d7d9e
New Crowdin updates (#3227)
* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-06-20 11:35:59 +10:00
Oliver
652e6fb83e
Sales order tables (#3225)
* Add buttons to expand / collapse shipment tables

(cherry picked from commit 0af9fc473e)

* Updates for sales order lines table

(cherry picked from commit d99ec062ad)
2022-06-18 22:22:00 +10:00
Oliver
eb255e84d8
Small UI improvements to the settings interface (#3223) 2022-06-18 17:33:59 +10:00
Oliver
eeff6074e7
Adds a simple unit test to ensure that bleach is running on API data (#3222) 2022-06-18 17:08:47 +10:00
Oliver
9ba3fdf23d
Only enable browsable API if in debug mode (#3221)
(cherry picked from commit 6556cbd163)
2022-06-18 16:42:50 +10:00
Oliver
36868ebb4c
Hide buttons for users without required permissions (#3219) 2022-06-18 14:49:46 +10:00
Oliver
12fcccb5a6
Fix API endpoint permission for the "AttachmentMixin" class (#3218)
* Fix API endpoint permission for the "AttachmentMixin" class

- Any authenticated user could perform CREATE and UPDATE operations on attachments
- Could be performed via the browsable DRF API
- Could also be performed via the front-end (with some advaned jiggering of OPTIONS code)

* Show or hide buttons depending on the permissions of the user

* Add shortcut for table permission check
2022-06-18 14:48:09 +10:00
Oliver
18cf92ec8b
Update django-allauth to 0.48.0 (#3217)
* Update django-allauth to 0.48.0

* Update allauth settings
2022-06-18 12:30:59 +10:00
Oliver
74bec86675
Part page loading improvements (#3185)
* Lazy load the pricing bom table when the "pricing" tab is selected

* Update django-debug-toolbar configuration

* Major refactoring for the 'can_build' function

- Use a single annotated query to the db, rather than a for loop (which is what a caveman would use)
- Query performance is greatly improved
- Also refactors existing variant-part-stock subquery code, to make it re-usable

* Use minified JS and CSS where possible

* Render a 'preview' version of each part image

- Saves load time when the image is quite large
- Adds a data migration to render out the new variation

* Adds 'preview' version of company images

* Defer loading of javascript files

Note: some cannot be deferred - jquery in particular

* Crucial bugfix for user roles context

- Previously was *not* being calculated correctly
- A non-superuser role would most likely display pages incorrectly

* Prevent loading of "about" on every page

- Load dynamically when requested
- Takes ~400ms!
- Cuts out a lot of fat

* Match displayed image size to preview image size

* Utilize caching framework for accessing user "role" information

- Reduces number of DB queries required by rendering framework

* Remove redundant query elements

* Remove 'stock' field from PartBrief serializer

- A calculated field on a serializer is a *bad idea* when that calculation requires a DB hit

* Query improvements for StockItem serializer

- Remove calculated fields
- Fix annotations

* Bug fixes

* Remove JS load test

- Loading of JS files is now deferred, so the unit test does not work as it used to

* Fix broken template for "maintenance" page

* Remove thumbnail generation migrations

- Already performed manually as part of ''invoke migrate"
- Running as a migration causes unit test problems
- Not sensible to run this as a data-migration anyway

* tweak for build table
2022-06-17 21:26:28 +10:00
Oliver
0d01ea2f2e
Auth forms fix (#3214)
* Improvement and consolidation of various auth forms

* Update "disable 2FA" page to use form fields

Note: Requires merging of https://github.com/valohai/django-allauth-2fa/pull/135

* Update django-allauth-2fa requirements
2022-06-17 11:33:45 +10:00
Matthias Mair
50a4bda184
Small changes to password changing (#3213)
* fix formatting

* also check for the old password

* validate that password matches the rules
2022-06-17 10:36:36 +10:00
Jonas Otto
136924cd3f
fix docs link for "email settings not configured" warning (#3209) 2022-06-17 08:14:40 +10:00
Oliver
d84b67ddf4
Label dpi config (#3208)
* Updates for label printing settings:

- Make LABEL_ENABLE a global setting
- Add LABEL_DPI setting (default = 300)
- Add new global settings tab

* Use the configured DPI when printing labels
2022-06-16 14:49:17 +10:00
Oliver
9bd62f986f
Sanitize data before displaying in markdown editor (#3205)
* Sanitize data before displaying in markdown editor

* Use the sanitize option provided by easymde

* Spelling fix
2022-06-16 10:57:28 +10:00
Matthias Mair
e83995b4f5
Add bleach (#41) (#3204)
* use shims for API view inheritation

* Add mixin for input sanitation

* fix clean operation to fix all string values

* Also clean up dicts
this is to future-proof this function

* Update docstirng

* proof custom methods against XSS through authenticated users
2022-06-16 10:01:53 +10:00
Oliver
f8a2760955
New Crowdin updates (#3187)
* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-06-16 07:57:23 +10:00
Oliver
7a1869d30c
Fix sanitization for array case - was missing a return value (#3199)
(cherry picked from commit c05ae111d0)
2022-06-15 20:43:32 +10:00
Oliver
cd418d6948
Merge pull request from GHSA-rm89-9g65-4ffr
* Enable HTML escaping for all tables by default

* Enable HTML escaping for all tables by default

* Adds automatic escaping for bootstrap tables where custom formatter function is specified

- Intercept the row data *before* it is provided to the renderer function
- Adds a function for sanitizing nested data structure

* Sanitize form data before processing
2022-06-15 18:33:33 +10:00
Oliver
57563f6b7a
Merge pull request from GHSA-7rq4-qcpw-74gq
* Create custom ModelResource subclass

- Strips illegal starting characters from string cells
- Prevents formula injection

* Update all existing ModelResource classes to base off InvenTreeResource

* Handle more complex case where an illegal char is hidden behind another one
2022-06-15 18:32:35 +10:00
Oliver
76aa3a75f2
Merge pull request from GHSA-fr2w-mp56-g4xp
* Enforce file download for attachments table(s)

* Enforce file download for attachment in 'StockItemTestResult' table
2022-06-15 18:31:56 +10: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
9b86bc6002
New Crowdin updates (#3162)
* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-06-12 14:10:15 +10:00
Oliver
1ae6bde896
Clear cache for more unit tests (#3184) 2022-06-12 12:58:40 +10:00
Oliver
6eddcd3c23
Setting caching (#3178)
* Revert "Remove stat context variables"

This reverts commit 0989c308d0.

* Add a caching framework for inventree settings

- Actions that use "settings" require a DB hit every time
- For example the part.full_name() method looks at the PART_NAME_FORMAT setting
- This means 1 DB hit for every part which is serialized!!

* Fixes for DebugToolbar integration

- Requires different INTERNAL_IPS when running behind docker
- Some issues with TEMPLATES framework

* Revert "Revert "Remove stat context variables""

This reverts commit 52e6359265.

* Add unit tests for settings caching

* Update existing unit tests to handle cache framework

* Fix for unit test

* Re-enable cache for default part values

* Clear cache for further unit tests
2022-06-12 10:56:16 +10:00
Matthias Mair
90aa7b8444
Sentry (#3174)
* Add sentry for optional error reporting
Closes https://github.com/inventreedb/org/issues/3
Heavily inspired by https://github.com/netbox-community/netbox/issues/9340

* do not consider optional stuff in coverage

* Add DSN for inventree org

Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com>
2022-06-11 23:13:13 +10:00
Oliver
5ecba6b13c
Add error handling for case where user does not have git installed (#3179) 2022-06-11 23:11:50 +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
258957c14c
SupplierPart availability (#3148)
* Adds new fields to the SupplierPart model:

- available
- availability_updated

* Allow availability_updated field to be blank

* Revert "Remove stat context variables"

This reverts commit 0989c308d0.

* Increment API version

* Adds availability information to the SupplierPart API serializer

- If the 'available' field is updated, the current date is added to the availability_updated field

* Add 'available' field to SupplierPart table

* More JS refactoring

* Add unit testing for specifying availability via the API

* Display availability data on the SupplierPart detail page

* Add ability to set 'available' quantity from the SupplierPart detail page

* Revert "Revert "Remove stat context variables""

This reverts commit 3f98037f79.
2022-06-08 21:49:07 +10:00
Oliver
b49230b32c
L10 crowdin (#3158)
* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-06-08 08:51:56 +10:00
Oliver
a816c14b95
Allow build orders to be deleted via the API (#3155) 2022-06-08 07:45:42 +10:00
Oliver
403655e3d2
Adding bulk deletion endpoint for notifications (#3154)
* Catch DoesNotExist error

* Move notificationtable function to js file

* Fix for custom metadata class

- Previously only worked if a POST or PUT action was available on the endpoint
- So, a ListAPIView endpoint would not actually work!
- Adding in a BulkDelete mixin to a ListAPIView caused failure

* Add unit test to ensure new OPTIONS metadata updates are checked

* Expand functionality of the existing BulkDelete mixin

- Allow deletion by custom filters
- Allow each implementing class to implement custom filters
- Adds more unit testing for BulkDelete mixin class

* Add bulk delete operation for Notification API

- Ensure users can only delete their *own* notifications

* Improve notification tables / buttons / etc

* Adds unit testing for bulk delete of notifications

- Fixed API permissions for notifications list endpoint

* Update BulkDelete operations for the StockItemTestResult table

* Use filters parameter in attachments table to ensure that only correct attachments are deleted

* JS linting

* Fixes for unit tests
2022-06-08 07:45:30 +10:00
Oliver
c0148c0a38
Ensure an error gets logged when a delivery method fails (#3144)
* Ensure an error gets logged when a delivery method fails

- Refactor existing code to log a custom error to the database
- Limit error notifications to UI

* Adjust unit test

* Clear existing notifications before run

* Add some debug to work out what is going on

* Accommodate extra notification
2022-06-07 08:58:00 +10:00
Oliver
6b038d85b6
Notification on new orders (#3145)
* Trigger a notification when a new SalesOrder is created

- Notify the "responsible" owners (excluding the creator)
- Add unit test for new notification

* Adds notification when a new PurchaseOrder is created

* Add notification when a new build order is created

- Includes unit tests

* Refactor order notification code

- Adds a "exclude users" option for sending notifications

* Fixes for notification refactoring

* make notification a helper

* reduce statements togehter

* make reuse easier

* Add docs

* Make context variables clearer

* fix assertation

* Fix set notation

Co-authored-by: Matthias <code@mjmair.com>
2022-06-07 08:11:11 +10:00
Oliver
00b75d792e
Adds API mixin for "bulk delete" (#3146)
* Introduces a BulkDelete API mixin class

- Allows deletion of multiple items against a single API request

* Bump API version

* Adds BulkDelete mixin to StockItemTestResult API class

* refactor "multi BOM Item delete" to use new approach

* Refactor various attachment API endpoints

* Refactor multi delete for StockItem

* Convert remaining enndpoints over

* Fix for API test code
2022-06-07 07:25:12 +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
Matt Brown
121c5d107e
Separate unit cost and purchase price in BOM (#3141)
It's possible for a part to have purchase price information, but not supplier
pricing (aka unit prices), but the current BOM price display logic will only
show the purchase prices when supplier prices are also available.

It seems reasonable to separate these two pieces of information - even when no
supplier pricing is available, seeing the purchase prices for BOM components is
useful on its own.
2022-06-06 21:03:15 +10:00
Oliver
88a0e38b69
Fix "polarity" of modal form submit button (#3142) 2022-06-06 20:43:50 +10:00
Oliver
1e6bdfbcab
Overdue order notification (#3114)
* Adds a background task to notify users when a PurchaseOrder becomes overdue

* Schedule the overdue purchaseorder check to occur daily

* Allow notifications to be sent to "Owner" instances

- Extract user information from the Owner instance

* add unit test to ensure notifications are sent for overdue purchase orders

* Adds notification for overdue sales orders

* Clean up notification display panel

- Simplify rendering
- Order "newest at top"
- Element alignment tweaks

* style fixes

* More style fixes

* Tweak notification padding

* Fix import order

* Adds task to notify user of overdue build orders

* Adds unit tests for build order notifications

* Refactor subject line for emails:

- Use the configured instance title as a prefix for the subject line

* Add email template for overdue build orders

* Fix unit tests to accommodate new default value

* Logic error fix
2022-06-06 19:12:29 +10:00
Matt Brown
7b4d0605b8
Fix has_complete_bom_pricing logic errors (#3140)
* Fix has_complete_bom_pricing logic errors

There are two logic errors in this property method that have been present since
c6fd228.

1) The get_setting method needs to be called on the InventTreeSetting class in
   common.models, not on the module itself.

2) You cannot call a property method directly passing an argument in Python, so
   the call to has_pricing_info is invalid and always fails. Given that
   has_complete_bom_pricing is/was the only user of that property anyway, fix
   this by just internalising the logic from that property in the method
   directly.

* style nit: use implicit checking for bools

has_complete_bom_pricing is a boolean property, the preferred pythonic style
for if comparisons of this type is not to complete directly to == False, etc
and rely on the implicit truthiness of the type.
2022-06-06 18:57:21 +10:00
Oliver
e85d9aca52
L10 crowdin (#3138)
* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-06-06 16:43:36 +10:00
Oliver
92aa7adfec
Adds callback for creation of an error log (#3136)
* Adds callback for creation of an error log

* Fix unit tests
2022-06-06 15:21:31 +10:00
Oliver
a066fcc909
Add new global setting to control auto-upload of test reports (#3137)
* Add new global setting to control auto-upload of test reports

* Adds callback to attach a copy of the test report when printing

* Fix for all attachment API endpoints

- The AttachmentMixin must come first!
- User was not being set, as the custom 'perform_create' function was never called

* Remove duplicated UserSerializer

* display uploading user in attachment table

* Add unit test to check the test report is automatically uploaded
2022-06-06 15:20:41 +10:00
Oliver
2b1d8f5b79
Set part category (#3134)
* Refactor function to enable / disable submit button on modal forms

* Category selection now just uses the AP

* Remove unused forms / views

* JS linting fixes

* remove outdated unit test
2022-06-06 13:00:30 +10:00
Oliver
fe8f111a63
Delete part via API (#3135)
* Updates for the PartRelated model

- Deleting a part also deletes the relationships
- Add unique_together requirement
- Bug fixes
- Added unit tests

* Adds JS function to delete a part instance

* Remove legacy delete view

* JS linting
2022-06-06 11:42:22 +10:00
Matthias Mair
f38386b13c
Add more checks to pre-commit (#3132)
* Add bandit to pre-commit checks

* fix catchall exceptions

* remove unused definitons

* remove unuseed ariables

* Add docstring

* fix B006, B008 errors

* fix B007 error

* ignore B009

* Add checks for formatting and naming
2022-06-06 08:56:52 +10:00
Oliver
bbbfd003e0
Convert category parameter forms to use the API (#3130)
* Moving PartCategoryParameterTemplate model to the API

- Add detail API endpoint
- Add 'create' action to LIST endpoint

* Update settings page to use the new API forms

* Remove old views / forms

* Update API version

* Fix table buttons

* Add title to deletion form

* Add unit tests for new API views
2022-06-06 00:25:08 +10:00
Oliver
80b10c62f3
Fix behaviour of attachment table for purchase orders (#3127)
- Refresh table, rather than reloading page!

(cherry picked from commit 141c2370e3a19526def9bfcd7ccac50e60e1684a)
2022-06-04 09:11:30 +10:00
Oliver
0c8bb7328a
Change view queryset from .all() to .none() (#3125)
- For some reason, the reverse URL lookups would fail for stock items which were not "in stock"
- e.g. detail pages for stock items would fail to render if the stock item was "destroyed" or "quarantined"
- changing the queryset to .none() fixed this
- I do not know why...
2022-06-03 20:20:21 +10:00
Oliver
b20fa1df9a
L10 crowdin (#3124)
* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-06-03 20:01:38 +10:00
Oliver
2e40f3ccf3
Move PartParameterTemplate model to the API (#3123)
* Adds detail API view for the PartParameterTemplate model

* Use API methods rather than server-side forms

* Remove old views / forms

* Update API version
2022-06-03 17:11: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
Oliver
5fef6563d8
Bug fix for part category view (#3119) 2022-06-03 00:14:36 +10:00
Oliver
e8bf35585a
Ignore auto-creation of shipments under certain conditions (#3118)
- Database is not ready
- Data import is active

Ref: https://github.com/inventree/demo-dataset/pull/23
2022-06-03 00:07:06 +10:00
Oliver
309ed595d7
Queryset annotation refactor (#3117)
* Refactor out 'ordering' serializer annotation field

* Refactor BomItem serializer annotations

* Factor out MPTT OuterRef query

* Add 'available_stock' annotation to SalesOrderLineItem serializer

- Allows for better rendering of stock availability in sales order table

* Improve 'available quantity' rendering of salesorderlineitem table

* Bump API version

* Add docstring
2022-06-02 23:22:47 +10:00
Oliver
2074bf9156
Fix broken delete button (#3116)
* Fix broken delete button

* Fix filtering for purchaseorder table on supplierpart page

(cherry picked from commit 77fb02ff39)
2022-06-02 15:00:09 +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
66a6915213
Adds 'multi delete' for attachment tables (#3111)
* Adds 'multi delete' for attachment tables

- Should roll out seamlessly to any attachment table

* JS linting
2022-06-01 17:23:36 +10:00
Oliver
e174096173
Adds ability to search build API by part parameters (#3110)
* Adds ability to filter build API by part parameters

* Bump API version
2022-06-01 16:52:43 +10:00
Oliver
a129c650fe
Remove unique-together requirement for BomItem model (#3104)
* Remove unique-together requirement for BomItem model

Ref: https://github.com/inventree/InvenTree/issues/1254

* Update unit test

* Remove unused import
2022-05-31 13:33:23 +10:00
Oliver
02607bd854
Search improvements (#3103)
* Allow part list API to be searched by SKU

* Enable manufacturer parts and supplier parts search preview

* Increment API version

* Remove whitespace

* Remove more whitespace
2022-05-31 11:51:22 +10:00
Oliver
9430d1bbbe
L10 crowdin (#3095)
* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-05-29 17:46:29 +10:00
Oliver
b9fd263899
Docker improvements (#3042)
* Simplified dockerfile

- Changed from alpine to python:slim
- Removed some database libs (because we *connect* to a db, not host it)

* - Add gettext as required package
- Only create inventree user as part of production build (leave admin access for dev build)

* Tweaks for tasks.py

* Fix user permissions (drop to inventree user)

* Drop to the 'inventree' user level as part of init.sh

- As we have mounted volumes at 'run time' we need to ensure that the inventree user has correct permissions!
- Ref: https://stackoverflow.com/questions/39397548/how-to-give-non-root-user-in-docker-container-access-to-a-volume-mounted-on-the

* Adjust user setup

- Only drop to non-root user as part of "production" build
- Mounted external volumes make it tricky when in the dev build
- Might want to revisit this later on

* More dockerfile changes

- reduce required system packages
-

* Add new docker github workflow

* Print some more debug

* GITHUB_BASE_REF

* Add gnupg to base requirements

* Improve debug output during testing

* Refactoring updates for label printing API

- Update weasyprint version to 55.0
- Generate labels as pdf files
- Provide filename to label printing plugin
- Additional unit testing
- Improve extraction of some hidden debug data during TESTING
- Fix a spelling mistake (notifaction -> notification)

* Working on github action

* More testing

* Add requirement for pdf2image

* Fix label printing plugin and update unit testing

* Add required packages for CI

* Move docker files to the top level directory

- This allows us to build the production image directly from soure
- Don't need to re-download the source code from github
- Note: The docker install guide will need to be updated!

* Fix for docker ci file

* Print GIT SHA

* Bake git information into the production image

* Add some exta docstrings to dockerfile

* Simplify version check script

* Extract git commit info

* Extract docker tag from check_version.py

* Newline

* More work on the docker workflow

* Dockerfile fixes

- Directory / path issues

* Dockerfile fixes

- Directory / path issues

* Ignore certain steps on a pull request

* Add poppler-utils to CI

* Consolidate version check into existing CI file

* Don't run docker workflow on pull request

* Pass docker image tag through to the build

Also check .j2k files

* Add supervisord.conf example file back in

* Remove --no-cache-dir option from pip install
2022-05-29 09:40:37 +10:00
Matthias Mair
9a2300d920
Add option to also reload plugin mechanisms (#3081) 2022-05-29 08:25:40 +10:00
Matthias Mair
4d8836378b
CI updates (#3087)
* 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

* use relativ action references

* Change step / job docstrings
2022-05-28 10:38:12 +10:00
Oliver
09a4fab0d6
Adds 'quarantine' code for StockItemStatus (#3084)
* Adds 'quarantine' code for StockItemStatus

- Marks item as "unavailable"
- Removes unused code from StockItemStatus class

* Add migration file
2022-05-27 15:12:15 +10:00
Oliver
6c7a80c141
Check user permissions before performing search (#3083)
* Check user permissions before performing search

* JS linting
2022-05-27 13:26:45 +10:00
Oliver
640a5d0f24
Improve error management for order price calculation (#3075)
* Improve error management for order price calculation

- If there are missing exchange rates, it throws an error
- Very much an edge case

* Style fixes

* Add warning message if total order price cannot be calculated

* price -> cost
2022-05-27 13:26:37 +10:00
Oliver
d1c92a9eda
Update version.py
Fix typo?
2022-05-26 18:24:01 +10:00
Oliver
7ccc8ad10d
Update version.py
Bump version number to indicate dev candidate for 0.8.0
2022-05-26 18:23:43 +10:00
Oliver
643df4761d
Enable 'tree view' for build order table (#3070)
* Enable 'tree view' for build order table

* Ensure we pass locale code to the build table

* Adjust button class based on current context

* Fix display of 'child builds' table on build page

* Force a rebuild of the entire table when the filters are refreshed

* Refactor PurchaseOrder table also

* Refactor existing SalesOrder table also

* JS linting
2022-05-26 15:41:53 +10:00
Oliver
2d1776a151
Refactor 'DeleteManufacturerPart' form (#3067)
* Refactor 'DeleteManufacturerPart' form

- Remove duplicated forms
- Update style to match other forms
- Block on each deletion before progressing to the next one

* PEP fix

* Adds deleteSupplierParts function

* Refactor all instances of supplier part deletion

* Refactor tractor : use convenience function for bootstraptable.getSelections

* Add deleter for manufacturerpartparameter.

Refactor existing code into a single function

* Refactor deletion for stock items

* JS linting
2022-05-25 23:35:53 +10:00
Oliver
2378073c61
SalesOrderShipment improvements (#3058)
* Adds two new fields to SalesOrderShipment model:

- Invoice number (char)
- Link (URL)

* Bump API version

* Update API / serializer / JS

- Allow entry of new fields at time of shipping

* PEP fixes

* Actually fix the PEP issues

* Unit testing: check some more fields
2022-05-25 11:00:19 +10:00
Oliver
063375557f
L10 crowdin (#3063)
* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-05-24 20:29:17 +10:00
Oliver
ea9f2f81f1
Stock available (#3057)
* Fix display of stock labels

- If 'shipped' or 'installed', don't display 'allocated' flag

* Switch stock item data around

* Add 'available' and 'allocation' information to the StockItem detail page

- Cache some context data to the view renderer

* Stock table now also displays allocation informatoin
2022-05-24 15:35:04 +10:00
Matthias Mair
1c6e5f0f20
More plugin testing (#3052)
* Add a check of a child panel too

* do not cover error catching

* test for implementation error

* Add warning to test for

* Add test for event_sample

* ignore safety switches

* Add a settings flag to enable event testing

* test if not implemented is raises

* raise plugin specific errors

* use plugin specific error

* fix assertation

* add test for mixin

* this point can't be reached

* add tests for locate plugin

* fix assertations

* fix function call

* refert switch

* this is already caught by the internal API

* also cover mixin redirect
2022-05-24 09:23:06 +10:00
Matthias Mair
a7ef560ee3
remove dead code (#3054)
no references are found in the code
2022-05-24 09:20:59 +10:00
Oliver
c0b74e18ac
L10 crowdin (#3051)
* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-05-23 14:07:08 +10:00
Oliver
3c02b95f85
Shipment date edit (#3050)
* Allow user to select shipment date when shipping a salesorder

- Defaults to 'today'

* Retain the tracking number information through the from

* JS linting

* Add unit testing for the SalesOrderShipmentComplete serializer / API endpoint
2022-05-23 13:57:40 +10:00
Matthias Mair
840ade25cd
Label printing unit test (#3047)
* Adds a very simple sample plugin for label printing

* Test mixin install status and API query

* Better error reporting for label printing API

* pep fixes

* fix assertation

* remove broken assertation

* igonre for coverage

* test the base process of printing

* refactor tests

* clean up basic test

* refactor url

* fix url creation

* test printing multiples

* test all printing endpoints

* test all list options - move api tests

* test for invalid filters

* refactor

* test with no part

* these should not happen
checks are in place upstream

* fix assertation

* do not cover continue parts

* test for wrong implementation

* ignore DB not ready

* remove covage from default parts

* fix url generation

* test debug mode

* fix url assertation

* check that nothing was rendered

Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com>
2022-05-23 08:54:44 +10:00
Matthias Mair
6247eecf69
Exclude testing exceptions from coverage (#3046)
* exclude testing excetions

* check user str

* check related users

* move no coverage marker

* fix assertation

* add test for filters

* do not cover logs
2022-05-22 15:54:13 +10:00
Maksim Stojkovic
0ec067da40
[Feature] Shipment Creation in Stock Allocation Modal (#3024)
* Added order reference to line item options

* Basic working version implemented

* Re-execute fields function in secondary modals

* Added missing argument and parameter

* Added missing parentheses

* Fixed hidden field name for depth > 0
2022-05-22 09:34:38 +10:00
Oliver
40153b94a5
L10 crowdin (#3045)
* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-05-22 09:18:07 +10:00
Matthias Mair
5805685c48 Merge branch 'master' of https://github.com/inventree/InvenTree into style-fixes 2022-05-21 23:57:41 +02:00
Oliver
624a6ebb6c
Merge pull request #3043 from maksimstojkovic/fr-2986-shipment-page-action
Complete Allocated Pending Orders from SO Page Actions Menu
2022-05-21 23:45:29 +10:00
Oliver
8eaf172512
Merge pull request #3040 from matmair/test-simplify
Test simplify
2022-05-21 19:41:23 +10:00
Matthias Mair
22adc37242 fix import 2022-05-21 02:40:45 +02:00
Matthias Mair
e1ff4b6e87 more class use 2022-05-20 23:01:20 +02:00
Matthias Mair
43f714b96c use variable for values and up the all 2022-05-20 19:57:13 +02:00
Matthias Mair
9af0b981e7 fix class to enable userlogin 2022-05-20 19:14:35 +02:00
Matthias Mair
6ef8c3dc83 run as admin 2022-05-20 19:11:21 +02:00
Matthias Mair
b7a501f42c log out first 2022-05-20 19:09:51 +02:00
Matthias Mair
43a2442f02 add usermodel back in 2022-05-20 18:53:33 +02:00
Matthias Mair
556b7036aa remove repo name from assertations
this breaks on other runners (gitlab, azure devops) as they handle repo names in another way
2022-05-20 18:42:41 +02:00
Matthias Mair
9b15d88d5f fix rule assign 2022-05-20 18:34:45 +02:00
Matthias Mair
45a9a4d0c5 add in missing class references 2022-05-20 17:55:11 +02:00
Matthias Mair
799af89312 style fixes 2022-05-20 17:45:04 +02:00
Matthias Mair
a148dbf303 refactor 'all' role 2022-05-20 17:43:51 +02:00
Maksim Stojkovic
f036252fb9 Added completePendingShipments to exported section 2022-05-21 01:31:01 +10:00
Matthias Mair
c50456297e fix assertation 2022-05-20 17:27:08 +02:00
Matthias Mair
e1d22f538d resort imports 2022-05-20 17:24:51 +02:00
Maksim Stojkovic
ac35bd8073
Merge branch 'inventree:master' into fr-2986-shipment-page-action 2022-05-21 01:06:58 +10:00
Maksim Stojkovic
c38862b28c Added page action to process pending shipments 2022-05-21 01:05:54 +10:00
Maksim Stojkovic
3eb4898019 Added support for secondary buttons on modals
Secondary buttons can be added to modal footers beside Close and Submit
Buttons can be linked to callback functions
Callback functions can access options arguments passed to constructForm
2022-05-21 00:52:45 +10:00
Maksim Stojkovic
f1ca9d7aa8 Added div for extra secondary modal buttons 2022-05-20 22:22:49 +10:00
Matthias Mair
74726f0fda fix endline 2022-05-20 13:35:07 +02:00
Matthias Mair
93b6934127 fix trailing 2022-05-20 13:20:55 +02:00
Matthias Mair
9f922f06ff fix more imports 2022-05-20 12:53:04 +02:00
Matthias Mair
a6f7a29817 fix import path 2022-05-20 12:48:03 +02:00
Oliver
bd195105e7
Merge pull request #2991 from matmair/not-working-tests
Static test fixes
2022-05-20 20:46:28 +10:00
Maksim Stojkovic
b99a9306ce Added onSuccess support to completeShipment 2022-05-20 20:37:23 +10:00
Matthias Mair
e8287f02d4 rename 2022-05-20 12:33:51 +02:00
Matthias Mair
42d325e7ca fix spelling 2022-05-20 12:33:28 +02:00
Matthias Mair
3a1996dd48 PEP fix 2022-05-20 12:32:25 +02:00
Matthias Mair
023ff3c85a Merge branch 'master' of https://github.com/inventree/InvenTree into test-simplify 2022-05-20 12:13:31 +02:00
Matthias Mair
0d5dea3e6d refactor test setup 2022-05-20 12:12:32 +02:00
Maksim Stojkovic
af0901d06c Changed complete shipments button to always show 2022-05-20 19:30:19 +10:00
Maksim Stojkovic
c6b9585c02 Fixed typo 2022-05-20 18:28:02 +10:00
Oliver
cc59ef65fc PEP fixes 2022-05-20 17:31:08 +10:00
Oliver
33bab19abb Better reporting of settings errors 2022-05-20 17:29:18 +10:00
Oliver
8da278a072 Adds option to hide unavailable stock items from the search preview window 2022-05-20 17:10:51 +10:00
Oliver
0f4ed55bed JS fixes 2022-05-20 17:02:28 +10:00
Oliver
8ad141f910 Add extra options to control search results in preview window
- Allow user to optionally show / hide inactive purchase orders
- Allow user to optionally show / hide inactive sales orders
2022-05-20 16:57:30 +10:00
Matthias Mair
63c64f9dff
Update apps.py 2022-05-20 08:31:21 +02:00
Maksim Stojkovic
f2a3b4ab1f Changed completeShipment reload to optional 2022-05-20 16:29:59 +10:00
Matthias Mair
c98cae8c1f
switch print with assert 2022-05-20 08:19:14 +02:00
Maksim Stojkovic
b48f8fba2b
Merge branch 'inventree:master' into fr-2986-shipment-page-action 2022-05-20 16:02:45 +10:00
Maksim Stojkovic
239138a1b5 Added page actions menu item 2022-05-20 15:01:45 +10:00
Matthias Mair
e1abdddc4a
Merge branch 'inventree:master' into not-working-tests 2022-05-20 00:28:35 +02:00
Matthias
b87f44dbfc
skip css if not available 2022-05-20 00:10:41 +02:00
Oliver
8385080e4c
Merge pull request #3036 from maksimstojkovic/auto-reload-so
Primitive solution to SO reload on shipment
2022-05-19 21:16:24 +10:00
Maksim Stojkovic
d9beaab92c Primitive solution to SO reload on shipment 2022-05-19 20:31:55 +10:00
Oliver Walters
e93b138de4 Expand unit tests for settings
- Check that name and description are translated
- Check for only allowed keys
- Extend checks to include user settings
- Check default value for boolean setting
2022-05-19 19:49:39 +10:00
Oliver
1bff1868fd
Merge pull request #3034 from SchrodingersGat/plugin-panels-test
Plugin panels test
2022-05-19 14:30:03 +10:00
Oliver
0c02e57b58
Merge pull request #3028 from maksimstojkovic/automatic-shipment-creation
[Feature] Create a default shipment when creating SO
2022-05-19 13:48:33 +10:00
Oliver
2ddaa9c04a
Merge pull request #3020 from SchrodingersGat/download-unit-tests
Download unit tests
2022-05-19 13:34:41 +10:00
Oliver
07319731d2 Validate that errors get logged 2022-05-19 13:20:42 +10:00
Oliver
adaec90909 CI: Allow exchange rate test a few goes 2022-05-19 12:54:07 +10:00
Maksim Stojkovic
140006a4cd
Fix PEP styles 2022-05-19 12:19:55 +10:00
Oliver
80e3d0970a Adds unit tests for the samplepanel plugin 2022-05-19 11:28:18 +10:00
Oliver
11b21a9cca Allow registry.with_mixin to filter by active status 2022-05-19 11:00:31 +10:00
Oliver
ebcb9685b5 Updates to samplepanel plugin
- Enhanced content for "hello world" panel
- Add an optional panel which breaks rendering
2022-05-19 10:04:20 +10:00
Oliver
14b60cdedc Custom panel content gets passed through the templating engine 2022-05-19 10:03:44 +10:00
Oliver
7d9690b974 Add logging message when plugin fails to render custom panels 2022-05-19 09:53:12 +10:00
Matthias
113a10eb8a
disable static test for now 2022-05-19 01:48:58 +02:00
Oliver
9446702d78 Skip plugin loading for various database admin functions 2022-05-19 09:45:16 +10:00
Matthias
890a5cd1e6
rollback testing dsaveguards and add docs 2022-05-19 01:43:28 +02:00
Matthias
c97a2531a0
update check 2022-05-19 01:06:14 +02:00
Matthias
295c849447
and print 2022-05-19 00:26:59 +02:00
Matthias
8dedf95a8d
make 'some' request 2022-05-19 00:25:27 +02:00
Matthias
734affb983
PEP fix 2022-05-19 00:22:00 +02:00
Matthias
254c2ccca0
this should already happen in SetUp 2022-05-19 00:21:33 +02:00
Matthias
99f3fc814d
add warning if DB not ready 2022-05-19 00:20:48 +02:00
Matthias
84871fdc79
remove tries - if we are here the AppReg should be ready or fail 2022-05-19 00:19:14 +02:00
Matthias
d2ea76d350
fix setup 2022-05-19 00:16:03 +02:00
Matthias
5ab4fdeb84
skip tests if no themes are present 2022-05-19 00:14:20 +02:00
Matthias
c0ef12f270
only use the user if authenticated 2022-05-18 23:33:04 +02:00
Matthias
51cd038f04
jump over if static dir does not exsist 2022-05-18 23:31:44 +02:00
Matthias
6a8a5c6bc1
Merge branch 'not-working-tests' of https://github.com/matmair/InvenTree into not-working-tests 2022-05-18 23:23:44 +02:00
Matthias
444c8b871e
create labels on startup 2022-05-18 23:23:34 +02:00
Kálmán Rózsahegyi
9e8da0e8e0 Fix manufacturer part detail template with missing company view tests 2022-05-18 22:20:42 +02:00
Maksim Stojkovic
4dc997c4ae Added unit test 2022-05-19 02:06:43 +10:00
Oliver Walters
0831b85e29 Adding some unit tests for SalesOrderLineItem API 2022-05-19 01:39:16 +10:00
Maksim Stojkovic
276075ce05 PEP styling 2022-05-19 00:33:03 +10:00
Maksim Stojkovic
5ece98ed39
Merge branch 'inventree:master' into automatic-shipment-creation 2022-05-19 00:28:41 +10:00
Maksim Stojkovic
2cf67ea0c9 Create default shipment in backend 2022-05-19 00:10:55 +10:00
Maksim Stojkovic
9ae8a6b219 Revert "Create a default shipment when creating SO"
This reverts commit c7003fbed8.
2022-05-18 23:43:06 +10:00
Oliver
8ceff063f8
Merge pull request #3027 from SchrodingersGat/locate-plugin-fix
Fix broken calls to offload_task
2022-05-18 23:42:26 +10:00
Oliver Walters
c6590066b8 Add tests for successful location
- Sample plugin now updates metadata tag
2022-05-18 22:46:15 +10:00
Oliver Walters
dd476ce796 Add unit tests for the 'locate' plugin
- Test various failure modes
- Some of the failure modes didn't fail - this is also a failure
- Fixing API code accordingly
2022-05-18 22:20:29 +10:00
Maksim Stojkovic
c7003fbed8 Create a default shipment when creating SO 2022-05-18 22:01:47 +10:00
Oliver Walters
0e0ba66b9a Fix broken calls to offload_task 2022-05-18 21:40:53 +10:00
Oliver Walters
aa3a86f372 Exclude metadata from StockLocation and StockItem model resource class 2022-05-18 21:33:40 +10:00
Jakob Haufe
3f67682d53
Increment API version 2022-05-18 13:25:01 +02:00
Jakob Haufe
ed1cc1209e
Add admin class 2022-05-18 13:25:01 +02:00
Jakob Haufe
72f330ab75
Add JS 2022-05-18 13:25:00 +02:00
Jakob Haufe
c6d3cd9bae
Add content panel 2022-05-18 13:25:00 +02:00
Jakob Haufe
fc3e61df24
Add sidebar item 2022-05-18 13:24:59 +02:00
Jakob Haufe
09a7627788
Add API URLs 2022-05-18 13:24:59 +02:00
Jakob Haufe
69ba271bf7
Add API endpoints 2022-05-18 13:24:58 +02:00
Jakob Haufe
3ee32374b4
Add serializer 2022-05-18 13:24:58 +02:00
Jakob Haufe
a373e669cd
Add permission 2022-05-18 13:24:58 +02:00
Jakob Haufe
c608778a1b
Add migration 2022-05-18 13:24:57 +02:00
Jakob Haufe
67c675d1a6
Add ManufacturerPartAttachment class 2022-05-18 13:24:50 +02:00
Oliver
4ceb35a43f Fix PEP issue 2022-05-18 17:00:20 +10:00
Oliver
6147afe35f Catch errors when rendering custom plugin panels 2022-05-18 16:54:57 +10:00
Oliver
810671f423 Yet another fix 2022-05-18 13:40:57 +10:00
Oliver
0f1dd3fe65 Same fix for config file test 2022-05-18 13:02:23 +10:00
Oliver
e57087de63 Fix unit test 2022-05-18 12:19:10 +10:00
Oliver
3b53260d75 Allow some variation in unit test 2022-05-18 11:51:14 +10:00
Matthias
9a0189b6bb
fix env name 2022-05-18 02:30:07 +02:00
Matthias
bdf28b72df
fix default 2022-05-18 02:25:44 +02:00
Matthias
4ac7d9626c
add missing test from merge back in 2022-05-18 02:07:28 +02:00
Matthias
9b37760856
fix assertations 2022-05-18 02:06:00 +02:00
Matthias
a570dab5e5
generalise function to make new methods simpler 2022-05-18 02:04:15 +02:00
Matthias
ca7fb691ac
make change patch simpler 2022-05-18 02:02:14 +02:00
Matthias
9f0b00cc0e
replace old function 2022-05-18 02:01:52 +02:00
Matthias
6e19187929
add missing import 2022-05-18 02:01:25 +02:00
Matthias
dc4affb3c5
Merge branch 'webp-support' of https://github.com/matmair/InvenTree into webp-support 2022-05-18 01:58:44 +02:00
Matthias
278c9dbf05
Merge branch 'master' of https://github.com/inventree/InvenTree into webp-support 2022-05-18 01:55:41 +02:00
Matthias Mair
67733fa37b
Merge branch 'inventree:master' into not-working-tests 2022-05-18 01:54:00 +02:00
Oliver
db75c31f6d
Translation merge (#3022)
* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-05-18 08:27:42 +10:00
Oliver Walters
b6c2ade940 Add unit test for downloading Part data 2022-05-18 07:52:29 +10:00
Oliver Walters
1c6d79451e Don't decode downloaded .xls file 2022-05-18 07:25:43 +10:00
Matthias Mair
a40f189c7a
Use unierest mock for env setting 2022-05-17 19:23:50 +02:00
Oliver Walters
c5b14944a1 Unit tests for downloading BuildOrder data 2022-05-18 00:31:43 +10:00
Oliver Walters
0d078768fe Unit tests for downloading PurchaseOrder data 2022-05-18 00:08:11 +10:00
Oliver Walters
a6be0b32c6 Add unit tests for exporting SalesOrder data 2022-05-17 23:48:58 +10:00
Oliver Walters
3488da19b0 Return data as a list of dict objects 2022-05-17 23:47:09 +10:00
Oliver Walters
a44267c306 bug fix 2022-05-17 23:22:40 +10:00
Oliver Walters
920e7e0bb7 Adds helper function to process and validate a downloaded .csv file 2022-05-17 23:21:30 +10:00
Oliver Walters
55000d5c48 Add ability to download file as StringIO or BytesIO 2022-05-17 22:28:46 +10:00
Oliver Walters
fd9f25dc0d Adds helper function for testing a file download via the api 2022-05-17 21:26:33 +10:00
Oliver Walters
f4b470c396 Merge remote-tracking branch 'inventree/master' into shipment-assign-fix 2022-05-17 18:48:57 +10:00
Oliver
9bcbaaa5f5 Remove more python2 stuff 2022-05-17 16:57:31 +10:00
Oliver
e7b458978c More unit tests 2022-05-17 15:10:48 +10:00
Oliver
01a30935f0 Add unit tests for BuildOutputDelete serializer 2022-05-17 14:20:41 +10:00
Oliver
5a0acedce6 Add unit tests for BuildOutputCreate serializer 2022-05-17 13:00:53 +10:00
Oliver
256451d82b Fix context such that build output can be deleted 2022-05-17 11:52:42 +10:00
Matthias
fb55f5d2a2
convert remaining function 2022-05-17 01:32:08 +02:00
Matthias
041128ff9c
pep fix 2022-05-17 01:07:36 +02:00
Matthias
7a2b17e939
do not try to access anon users settings 2022-05-17 01:03:04 +02:00
Matthias
94a19727da
fix assertation 2022-05-17 01:02:29 +02:00
Matthias
728cccc469
fix assertation 2022-05-17 00:53:51 +02:00
Matthias
09af7d964d
raise a warning for assertations 2022-05-17 00:24:02 +02:00
Oliver Walters
aa7fcb3601 Remove status_code addition 2022-05-17 08:23:39 +10:00
Matthias
b3e42f5fb0
Add tests for offloading 2022-05-17 00:13:39 +02:00
Matthias
3e859f7abb
fix assertation 2022-05-16 23:51:17 +02:00
Matthias
9f3fdcb590
make test simpler 2022-05-16 23:43:07 +02:00
Matthias
09bda7e516
add checks for old_error_log 2022-05-16 23:42:09 +02:00
Matthias
f3c4720f5b
extend update check 2022-05-16 23:41:33 +02:00
Matthias Mair
2ec59a6ad2 extend tests for task_delete_succ 2022-05-16 19:45:00 +02:00
Matthias Mair
eb24bf78b8 external api failures are not covered 2022-05-16 19:39:43 +02:00
Matthias Mair
8340daf77b Merge branch 'master' of https://github.com/inventree/InvenTree into not-working-tests 2022-05-16 19:01:40 +02:00
Matthias Mair
fc8a63325e that was a stupid misstake 2022-05-16 18:57:27 +02:00
Matthias Mair
07711b8e74 fix check 2022-05-16 18:34:02 +02:00
Matthias Mair
79b4b23a07 pep fix 2022-05-16 18:33:49 +02:00
Matthias Mair
763cd13b7c use a function if it was passed 2022-05-16 18:30:37 +02:00
Matthias Mair
7fc408cf60 move exceptions up 2022-05-16 18:29:41 +02:00
Matthias Mair
30dbfa9a4f add tests for InvenTree.tasks 2022-05-16 18:21:58 +02:00
Matthias Mair
cce3d3a35d make imports on function level 2022-05-16 18:01:16 +02:00
Matthias Mair
18a263ff75 do a local import 2022-05-16 17:55:45 +02:00
Matthias Mair
a9cfdf8fdb fix import 2022-05-16 17:52:36 +02:00
Matthias Mair
2df049fe05 Merge branch 'master' of https://github.com/inventree/InvenTree into matmair/issue3005 2022-05-16 17:48:01 +02:00
Matthias Mair
0f5c03e44c use direct import instead of text for offload 2022-05-16 17:45:51 +02:00
Matthias Mair
9ec626b650 Also allow non string references
Fixes #3005
2022-05-16 17:29:14 +02:00
Oliver Walters
027a7c88de Copy error implementation from django-error-report lib
Ref: https://github.com/mhsiddiqui/django-error-report/blob/master/error_report/middleware.py
2022-05-17 01:17:48 +10:00
Oliver Walters
048f1ad601 Simplify DRF exception handler
- Check the default handler first
- If *any* other API requets throws an exception, will now pass through the custom handler
2022-05-17 01:03:02 +10:00
Oliver Walters
2509db2b88 JS linting 2022-05-17 00:52:01 +10:00
Oliver
c51f052f25
Merge pull request #3011 from matmair/matmair/issue2996
Remove python 2 code
2022-05-17 00:51:31 +10:00
Oliver Walters
27930cd897 PEP style fixes 2022-05-17 00:41:03 +10:00
Matthias
b630fb2856
update envguard import 2022-05-16 16:41:00 +02:00
Oliver Walters
3373bb19f1 Remove unique_together requirement on SalesOrderAllocation model 2022-05-17 00:36:30 +10:00
Oliver Walters
263ac01727 Typo fix 2022-05-17 00:35:59 +10:00
Oliver Walters
6512c0061e Catch a 500 and make it a 400
While we are at it, convert __all__ to non_field_errors automatically
2022-05-17 00:35:24 +10:00
Oliver Walters
ae50546ca6 Display API error information if available 2022-05-17 00:25:32 +10:00
Oliver Walters
1488a0e72f Adds a custom exception handler for DRF
- Handles common exceptions not captured by DRF
- Returns exeption data as a JSON object
2022-05-17 00:18:47 +10:00
Oliver
86c86bf446
Merge pull request #3006 from SchrodingersGat/bom-delete-fix
BOM delete fix
2022-05-16 23:30:22 +10:00
Oliver
31667020ae
Merge pull request #3004 from SchrodingersGat/events-fix
Add required imports to plugin.events
2022-05-16 23:05:45 +10:00
Oliver
ea2fb76a29
Translation merge (#3009)
* updated translation base

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2022-05-16 23:04:58 +10:00
Oliver
042cb021de
Merge pull request #2957 from SchrodingersGat/locate-mixin
Adds plugin mixin to "locate" items
2022-05-16 22:57:20 +10:00
Oliver Walters
6658b89946 Refactor BOM item deletion
- Send delete requests sequentially, rather than simultaneously
- Prevents server overload
- Present a much cleaner dialog to the user
2022-05-16 22:51:34 +10:00
Oliver Walters
1903ac12cd Allow customization of button class in modal forms 2022-05-16 22:43:29 +10:00
Oliver Walters
7fa83d70ad Fix for broken unit test 2022-05-16 22:14:06 +10:00
Oliver Walters
2ed69f638a Fix error message 2022-05-16 22:08:58 +10:00
Oliver Walters
73413baa59 Add required imports to plugin.events 2022-05-16 22:01:34 +10:00
Oliver Walters
bd17458f37 Add metadata endpoints for SalesOrder and PurchaseOrder models 2022-05-16 21:40:10 +10:00
Oliver Walters
5582c8ba43 Add metadata endpoints for SalesOrder and PurchaseOrder models 2022-05-16 21:29:49 +10:00
Oliver Walters
21ebf562fd Adds metadata fields to PurchaseOrder and SalesOrder models 2022-05-16 21:21:32 +10:00
Oliver Walters
a52ba05eb7 Add unit test for PartCategory API endpoints 2022-05-16 21:19:01 +10:00
Oliver Walters
37a74dbfef Adds a metadata serializer class for accessing instance metadata via the API
- Adds endpoint for Part
- Adds endpoint for PartCategory
- Adds endpoint for StockItem
- Adds endpoint for StockLocation
2022-05-16 20:59:09 +10:00
Oliver Walters
cd68d5a80e Add metadata mixin to Part and PartCategory models 2022-05-16 19:14:46 +10:00
Oliver
8052d78311
Merge pull request #3002 from SchrodingersGat/order-form-fix
Fix "fields" attribute for PurchaseOrderLineItem edit form
2022-05-16 09:29:03 +10:00
Oliver
3614e09211 Fix "fields" attribute for PurchaseOrderLineItem edit form
- The 'order' field was not being included
2022-05-16 09:25:20 +10:00
Oliver
57d481a8b8
Merge pull request #2999 from matmair/fix-todos
Fix Todo texts
2022-05-16 09:16:34 +10:00
Matthias
74a3abc4a2
make args wider 2022-05-15 23:26:46 +02:00
Oliver
c3433128b5
Merge pull request #2975 from matmair/fix-boolean
Fix boolean comparator
2022-05-16 07:22:55 +10:00
Matthias
ecccfbd546
Remove encoding header
Fixes #2996
2022-05-15 20:33:00 +02:00
Matthias
9c342e1fe3
fix definition 2022-05-15 20:06:07 +02:00
Matthias
a8d3ee15bf
fix func definition 2022-05-15 20:05:56 +02:00
Matthias
cced30c081
pass through request data 2022-05-15 18:41:39 +02:00
Matthias
23608e6933
remove unneeded args 2022-05-15 18:36:33 +02:00
Matthias
d9fe7ac272
general Todo - no specific task
removed therefore
2022-05-15 18:09:39 +02:00
Matthias
f4fbd57e6e
errors fail whole plugins now so no saving 2022-05-15 18:09:05 +02:00
Matthias
45d70737bd
we do not have server stats checks so this does not make sende 2022-05-15 18:08:42 +02:00
Matthias
9e590c1bc6
this seems fine - just keep it that way 2022-05-15 18:06:32 +02:00
Matthias
c7a2d11893
refactor to make simpler 2022-05-15 18:02:12 +02:00
Matthias
8b9c80d2a4
remove todo that is not fitting any more 2022-05-15 17:55:05 +02:00
Matthias
136d642703
Merge branch 'fix-boolean' of https://github.com/matmair/InvenTree into fix-boolean 2022-05-15 17:52:34 +02:00
Matthias
77aeecf23a
make operators simpler 2022-05-15 17:52:23 +02:00
Matthias
ca0508f2f0
update to https to match hotspots 2022-05-15 17:22:58 +02:00
Matthias
2090a4d417
add in static label test 2022-05-15 17:14:03 +02:00
Matthias
d3fb6570ad
readd static test 2022-05-15 17:12:28 +02:00
Matthias
6d34e5f5a0
Merge branch 'small-python-fixes-plugin' of https://github.com/matmair/InvenTree into not-working-tests 2022-05-15 17:06:36 +02:00
Matthias
076098a0e0
use static reference
this is stupid but is required
2022-05-15 16:50:17 +02:00
Oliver Walters
28b811d961 PEP style fixes 2022-05-16 00:47:00 +10:00
Matthias
0c0b2efbe0
raise error 2022-05-15 16:46:05 +02:00
Oliver Walters
097afed78e Adds metadata mixin class for adding JSON field to internal tables
- Add metadata field to stocklocation
- Add metadata field to stockitem
2022-05-16 00:45:16 +10:00
Oliver Walters
818be32e31 Move location plugin sample into its own directory 2022-05-16 00:35:34 +10:00
Matthias Mair
3b60b98594
Merge branch 'inventree:master' into fix-boolean 2022-05-15 16:28:51 +02:00
Oliver Walters
206da02328 Skip some git hash checks if running tests under docker 2022-05-16 00:21:05 +10:00
Oliver Walters
eebdad154a PEP fixes 2022-05-16 00:12:33 +10:00
Oliver Walters
40513c556d Remove locate button from top-level stock location 2022-05-16 00:10:50 +10:00
Oliver Walters
95dbfa1958 Merge remote-tracking branch 'inventree/master' into locate-mixin
# Conflicts:
#	InvenTree/InvenTree/api.py
#	InvenTree/InvenTree/urls.py
#	InvenTree/plugin/base/integration/mixins.py
#	InvenTree/plugin/mixins/__init__.py
2022-05-16 00:10:38 +10:00
Oliver
a26840d77f
Merge pull request #2971 from matmair/plugin-app-refactor
Plugin app refactor
2022-05-15 23:45:42 +10:00
Oliver Walters
fa954b3812 Merge remote-tracking branch 'inventree/master' into locate-mixin
# Conflicts:
#	InvenTree/InvenTree/api_version.py
#	InvenTree/InvenTree/urls.py
2022-05-15 23:44:07 +10:00
Oliver Walters
55f87033b2 Add unit tests for .webp support 2022-05-15 23:36:41 +10:00
Oliver
9c1e266628
Merge pull request #2985 from matmair/dead-code-owner
remove duplicate code
2022-05-15 21:51:57 +10:00
Oliver
db026c935b
Merge pull request #2990 from matmair/matmair/issue2989
Remove static label tests
2022-05-15 21:28:16 +10:00
Matthias Mair
dcbd9d906b
Update errors 2022-05-15 04:47:45 +02:00
Matthias
897dd115f9
PEP fix 2022-05-15 04:14:13 +02:00
Matthias
b0439267ea
fix error-type to use custom errors 2022-05-15 04:12:57 +02:00
Matthias
025c6f9b82
raise proper error 2022-05-15 04:08:45 +02:00
Matthias
7a102dcd8e
PEP fix 2022-05-15 03:22:43 +02:00
Matthias
976cbfbb8b
remove old definition 2022-05-15 03:20:11 +02:00
Matthias
5048d51558
Refactor printer into own base dir 2022-05-15 03:19:47 +02:00
Matthias
43b1d25016
PEP fix 2022-05-15 03:06:35 +02:00
Matthias
4fa23cbe4d
split up tests 2022-05-15 02:58:01 +02:00
Matthias
777e3f42df
fix test 2022-05-15 02:57:23 +02:00
Matthias
68940deb5b
rename test 2022-05-15 02:56:05 +02:00
Matthias
e68cd009f6
fix input 2022-05-15 02:54:21 +02:00
Matthias
b3f65735bf
fix test assertations 2022-05-15 02:53:12 +02:00
Matthias
eb7e9f4703
test url args in action 2022-05-15 02:49:08 +02:00
Matthias
7abdffae0d
Add post test 2022-05-15 02:48:59 +02:00
Matthias
7c0dea69b0
add test for api_call with full url 2022-05-15 02:42:40 +02:00
Matthias
039dbbbe7e
fix doctest 2022-05-15 02:40:23 +02:00
Matthias
442341de50
split into more tests 2022-05-15 02:39:55 +02:00
Matthias
3e6b37bf55
Add test without simple_response 2022-05-15 02:35:06 +02:00
Matthias
8c6061d3b7
move failing test to seperate test 2022-05-15 02:32:26 +02:00
Matthias
aeaf15b374
Test action error messages 2022-05-15 02:25:30 +02:00
Matthias
9609d8ae09
Add tests for PLUGIN_ON_STARTUP 2022-05-15 01:59:07 +02:00
Matthias
abac26725b
use returns for checks 2022-05-15 01:47:44 +02:00
Matthias
640242eca3
Add tests for plugin installs form url with pkgn 2022-05-15 01:32:52 +02:00
Matthias
1cb51d1782
Do not cover custom install dirs 2022-05-15 01:29:50 +02:00
Matthias
76f92003fd
Fix assertation 2022-05-15 01:15:00 +02:00
Matthias
6660069f45
add docs 2022-05-15 01:10:46 +02:00
Matthias
39543555af
Add test for call_funciton 2022-05-15 01:10:23 +02:00
Matthias
43179bbfd5
remove coverage where it does not make sense 2022-05-15 01:07:50 +02:00
Matthias
38cb557baf
Add test for wrong key 2022-05-15 01:07:35 +02:00
Matthias
48d458698a
reduce lines 2022-05-15 01:06:56 +02:00
Matthias
d3cc698500
merge tests together 2022-05-15 01:05:49 +02:00
Matthias
2ae5fcf6a8
PEP fix 2022-05-15 00:46:56 +02:00
Matthias
40fa86152e
Add test for wrong token 2022-05-15 00:44:26 +02:00
Matthias
75843c1789
Merge branch 'theme-tests' of https://github.com/matmair/InvenTree into not-working-tests 2022-05-15 00:25:53 +02:00
Matthias
a1a1f4debe
PEP fix 2022-05-15 00:18:31 +02:00
Matthias
f8d3aedb1d
Remove static label tests
Fixes #2989
2022-05-15 00:14:54 +02:00
Matthias
2483b746cf
remove static test 2022-05-15 00:08:46 +02:00
Matthias
f3bf126415
maybe this ressource can be found in the cloud 2022-05-14 00:11:18 +02:00
Matthias Mair
bf2b9d2beb
Update test_middleware.py 2022-05-13 19:37:09 +02:00
Matthias
53712c2d6c
PEP fix 2022-05-13 01:29:32 +02:00
Matthias
3712daca55
remove duplicate code
we are already checking this stuff from line 640
2022-05-13 01:27:40 +02:00
Matthias
80a2dad34e
remove dead code 2022-05-13 01:23:25 +02:00
Matthias
6b550e0547
Tests for token Auth 2022-05-13 01:23:12 +02:00
Matthias
a7a80da928
Add unittests for auth stack
Fixes #2980
2022-05-13 01:22:51 +02:00
Matthias
47673c293e
Merge branch 'master' of https://github.com/inventree/InvenTree into plugin-app-refactor 2022-05-12 23:45:12 +02:00
Oliver
c2dd8afea6
Merge pull request #2981 from SchrodingersGat/model-setting-reference
Add settings which reference *model instances* allowing better lookup of models
2022-05-12 17:59:56 +10:00
Oliver
c4fa72e54c PEP style fixes 2022-05-12 17:30:52 +10:00
Oliver
a81ea01e8e Model introspection
- Find the class registered to the model (or log an error)
- Pass the api_url through to the frontend
2022-05-12 17:28:55 +10:00
Oliver
e112d555d4 Simplify the various settings objects, to improve retrieval of 'parameters' from the base class
- Remove the GenericReferencedSettingsClass mixin
- Each subclass defines a very simple get_kwargs() method
- Now, at object level *and* class level we can perform lookup of settings and actually get proper data back
- Adds "model" option to setting (precursor of things to come)
2022-05-12 16:45:27 +10:00
Oliver
59cf9825fe Update comment 2022-05-12 15:16:26 +10:00
Oliver
47ddafb728 Fix edge case when converting stock item to variant
- If the stock item had been created as part of a Build Order, and subsequently "converted" to a variant part, the conversion operation will fail
- Patch allows the build reference to be linked based on either the base part, or any conversion options
2022-05-12 15:15:51 +10:00
Oliver
8edc0cc893 PEP fixes 2022-05-12 12:47:25 +10:00
Oliver
a83c3289b7 Merge remote-tracking branch 'inventree/master' into table-downloader 2022-05-12 12:44:26 +10:00
Oliver
c89547f58c Adds exporter and download functionality for BuildOrder table 2022-05-12 12:44:15 +10:00
Oliver
d0ddb47b1f Adds exporter and download button for sales orders 2022-05-12 11:44:05 +10:00
Oliver
1b1f7634b7 Adds exporter and download button for PurchaseOrder table 2022-05-12 11:41:25 +10:00
Oliver
465e69c254 Refactor exporters for:
- Part
- PurchaseOrderLineItem
2022-05-12 11:33:17 +10:00
Oliver
a77d4b97b4 Refactor stock_list endpoint to use the new mixin 2022-05-12 11:29:33 +10:00
Oliver
650d082eca Bump API version 2022-05-12 11:23:58 +10:00
Oliver
774bfdb9e7 Adds APIDownloadMixin class to implement common behaviour 2022-05-12 11:22:34 +10:00
Oliver
151f2cae6f Do not redirect requests for media / static / api / js files
- For these paths, just return a 401
- This is necessary to stop unauthorized calls to the API or to request media files from redirecting to the login page
2022-05-12 10:45:30 +10:00
Matthias Mair
af8bddf690
fix boolean comp 2022-05-12 02:30:37 +02:00
Matthias Mair
262409eba9
Merge branch 'inventree:master' into theme-tests 2022-05-12 01:51:23 +02:00
Matthias
4ed795174d
PEP fix 2022-05-12 00:52:28 +02:00
Matthias
3d580e732f
change test to slug 2022-05-12 00:51:02 +02:00
Matthias
eaab905bfd
reset plugin name default 2022-05-12 00:50:29 +02:00
Matthias
142398976c
test plugin details 2022-05-12 00:38:21 +02:00
Matthias
bd42fea5fa
another pep check 2022-05-12 00:07:19 +02:00
Matthias
699db12b24
make test more precise 2022-05-12 00:04:37 +02:00
Matthias
a6e889b25e
pep fix 2022-05-12 00:04:29 +02:00
Matthias
c809398bda
Add check for IntegrationPluginBase depreciation 2022-05-12 00:01:23 +02:00
Matthias
da3b7ae7d0
fix assertation typ 2022-05-11 23:57:21 +02:00
Matthias
c274228806
fix test 2022-05-11 23:46:41 +02:00
Matthias
8becad3c0a
reset zero behaviour 2022-05-11 23:45:45 +02:00
Matthias
c462399fef
check if depreciation fires 2022-05-11 23:45:17 +02:00
Matthias
2c83728f71
also check message 2022-05-11 23:27:42 +02:00
Matthias
f8e51c0873
fix test 2022-05-11 23:21:42 +02:00
Matthias
912d0625f0
PEP fix 2022-05-11 23:12:27 +02:00
Matthias
432a9b2e4d
add warning if plugin testing - is need to probe for 2022-05-11 23:12:21 +02:00
Matthias
4397f57acc
test that a save() action on a plugin is reloading 2022-05-11 23:11:54 +02:00
Matthias
baca0dc268
do not cover error 2022-05-11 23:05:22 +02:00
Matthias
8a91fc362b
test plugin model more 2022-05-11 23:05:08 +02:00
Matthias
da885456b7
tests for template 2022-05-11 22:47:41 +02:00
Matthias
fdc6c8300a
Merge branch 'master' of https://github.com/inventree/InvenTree into plugin-app-refactor 2022-05-11 22:03:32 +02:00
Matthias
8366620c1d
add test for user creation 2022-05-11 22:02:41 +02:00