Commit Graph

341 Commits

Author SHA1 Message Date
Oliver 7376e34505
Prevent creation of new settings objects when importing data (#3319) 2022-07-11 09:40:44 +10:00
Oliver 648faf4ed2
Reference fields (#3267)
* Adds a configurable 'reference pattern' to the IndexingReferenceMixin class

* Expand tests for reference_pattern validator:

- Prevent inclusion of illegal characters
- Prevent multiple groups of hash (#) characters
- Add unit tests

* Validator now checks for valid strftime formatter

* Adds build order reference pattern

* Adds function for creating a valid regex from the supplied pattern

- More unit tests
- Use it to validate BuildOrder reference field

* Refactoring the whole thing again - try using python string.format

* remove datetime-matcher from requirements.txt

* Add some more formatting helper functions

- Construct a regular expression from a format string
- Extract named values from a string, based on a format string

* Fix validator for build order reference field

* Adding unit tests for the new format string functionality

* Adds validation for reference fields

* Require the 'ref' format key as part of a valid reference pattern

* Extend format extraction to allow specification of integer groups

* Remove unused import

* Fix requirements

* Add method for generating the 'next' reference field for a model

* Fix function for generating next BuildOrder reference value

- A function is required as class methods cannot be used
- Simply wraps the existing class method

* Remove BUILDORDER_REFERENCE_REGEX setting

* Add unit test for build order reference field validation

* Adds unit testing for extracting integer values from a reference field

* Fix bugs from previous commit

* Add unit test for generation of default build order reference

* Add data migration for BuildOrder model

- Update reference field with old prefix
- Construct new pattern based on old prefix

* Adds unit test for data migration

- Check that the BuildOrder reference field is updated as expected

* Remove 'BUILDORDER_REFERENCE_PREFIX' setting

* Adds new setting for SalesOrder reference pattern

* Update method by which next reference value is generated

* Improved error handling in api_tester code

* Improve automated generation of order reference fields

- Handle potential errors
- Return previous reference if something goes wrong

* SalesOrder reference has now been updated also

- New reference pattern setting
- Updated default and validator for reference field
- Updated serializer and API
- Added unit tests

* Migrate the "PurchaseOrder" reference field to the new system

* Data migration for SalesOrder and PurchaseOrder reference fields

* Remove PURCHASEORDER_REFERENCE_PREFIX

* Remove references to SALESORDER_REFERENCE_PREFIX

* Re-add maximum value validation

* Bug fixes

* Improve algorithm for generating new reference

- Handle case where most recent reference does not conform to the reference pattern

* Fixes for 'order' unit tests

* Unit test fixes for order app

* More unit test fixes

* More unit test fixing

* Revert behaviour for "extract_int" clipping function

* Unit test value fix

* Prevent build order notification if we are importing records
2022-07-11 00:01:46 +10:00
Matthias Mair 4b0b76ecc5
Make "confirm" buttons a user-configurable option. (#3313)
* Make "confirm" buttons a user-configurable option.
Add a new setting to enable the confirm button
Fixes #3069

* Add seperator
2022-07-09 10:28:52 +10:00
Matthias Mair b63ba4b636
[BUG] Duplication of "base URL" setting (#3263)
* [BUG] Duplication of "base URL" setting
Fixes #3196

Adds after_safe key to settings: this action is executed after the setting is saved. The current setting object is supplied to the function as the first argument.

* Add unittests

* fix style

* ammned allowed keys
2022-06-28 11:26:05 +10:00
Oliver 5b54979202
Prevent write of SERVER_RESTART_REQUIRED setting when importing dataset (#3249) 2022-06-24 20:42:55 +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 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
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
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
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
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 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
Matthias Mair e1d22f538d resort imports 2022-05-20 17:24:51 +02:00
Oliver bd195105e7
Merge pull request #2991 from matmair/not-working-tests
Static test fixes
2022-05-20 20:46:28 +10:00
Oliver cc59ef65fc PEP fixes 2022-05-20 17:31:08 +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 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 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
Matthias 890a5cd1e6
rollback testing dsaveguards and add docs 2022-05-19 01:43:28 +02:00
Matthias 51cd038f04
jump over if static dir does not exsist 2022-05-18 23:31:44 +02:00
Maksim Stojkovic 276075ce05 PEP styling 2022-05-19 00:33:03 +10:00
Maksim Stojkovic 2cf67ea0c9 Create default shipment in backend 2022-05-19 00:10:55 +10:00
Oliver c51f052f25
Merge pull request #3011 from matmair/matmair/issue2996
Remove python 2 code
2022-05-17 00:51:31 +10:00
Matthias ecccfbd546
Remove encoding header
Fixes #2996
2022-05-15 20:33:00 +02:00
Matthias 8b9c80d2a4
remove todo that is not fitting any more 2022-05-15 17:55:05 +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 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
Matthias f17ef4585c
fix wrong import 2022-05-11 16:18:32 +02:00
Matthias 1571b99ed2
rename IntegrationPluginBase to InvenTreePlugin 2022-05-11 14:28:26 +02:00
Matthias 01e8b5dce3
remove InvenTreePluginBase 2022-05-11 14:21:16 +02:00
Oliver Walters 037e057c53 Adds global setting to enable or disable webcam support for barcode scanning 2022-05-09 19:46:11 +10:00
Matthias fe4b264ae1
Fix user check 2022-05-06 00:11:26 +02:00
Matthias Mair 4125803e6d
Merge branch 'inventree:master' into matmair/issue2385 2022-05-02 21:50:52 +02:00
Matthias de6507e918
update translation commands 2022-05-01 22:03:49 +02:00
Oliver Walters 526571c062 Prevent recursion 2022-05-01 22:50:56 +10:00
Oliver Walters e3c3ed28da PEP fixes 2022-05-01 22:46:50 +10:00
Oliver Walters d72efc3757 Small tweaks
- Factor out native_value property (not needed!)
- PEP fixes
2022-05-01 22:30:24 +10:00
Oliver Walters 0f8f9f3e5e Add unit test for integer settings with validator 2022-05-01 22:21:57 +10:00
Oliver Walters eabe082f0a Add unit tests for boolean user settings (via the API) 2022-05-01 20:23:50 +10:00
Oliver Walters 75fa0bed26 Render "native value" in serializer 2022-05-01 20:13:58 +10:00
Oliver Walters 5d4972d981 Convert settings to 'native' values before running callable valiators 2022-05-01 19:46:17 +10:00
Matthias Mair 37e74074dd
Merge branch 'inventree:master' into matmair/issue2385 2022-04-27 17:46:57 +02:00
Matthias 6c23c94700
Merge branch 'master' of https://github.com/inventree/InvenTree into matmair/issue2301 2022-04-27 13:13:04 +02:00
Oliver Walters 3f92f009e4 Add configurable setting for batch code generation 2022-04-26 20:00:06 +10:00
Matthias f1f6c9ff66
remove InvenTree from settings texts 2022-04-24 15:25:34 +02:00
Matthias 1127bf2497
make it possible to resitrict the about modal 2022-04-24 01:02:41 +02:00
Matthias 01fcc728ad
PEP fixes 2022-04-05 00:34:30 +02:00