Commit Graph

9856 Commits

Author SHA1 Message Date
Oliver
7c82857cc7 Remove unique_together requirement for purchaseorderlineitem
- Allow a single purchase order to specify duplicate lines (e.g. split shipments / order scheduling)
2022-02-28 15:27:56 +11:00
Oliver
4858787a78 Adds "overdue" field to sales order line item
- API serializer
- front end / UX tables
2022-02-28 15:24:01 +11:00
Oliver
b451f3d149 adds target_date field when adding a new line item to a purchase order 2022-02-28 15:11:10 +11:00
Oliver
784189be75 Update purchase order table from part context 2022-02-28 15:07:12 +11:00
Oliver
9e82b28e9d Update PO line item table 2022-02-28 15:03:39 +11:00
Oliver
df7713f6c2 Adds "overdue" annotation field to POLineItem serializer 2022-02-28 15:03:22 +11:00
Oliver
557aa44904 Adds "target_date" field to PurchaseOrderLineItem and SalesOrderLineItem models
- Allows different target dates to be specified for different line items
- If not set (null) then the base "target_date" parameter for the parent order is used
2022-02-28 14:26:01 +11:00
Matthias
ba263187a5
optimise coverage 2022-02-28 00:35:36 +01:00
Matthias
f80f960923
translate error message 2022-02-28 00:34:28 +01:00
Matthias
f3f010c4be
write error if too old git 2022-02-28 00:34:02 +01:00
Matthias
ca8df60d00
PEP fixes 2022-02-28 00:28:03 +01:00
Matthias
084f9d5444
make more readable 2022-02-28 00:23:55 +01:00
Matthias
1591597ef9
check if modern git is used 2022-02-28 00:23:46 +01:00
Matthias
8550915528
opimise coverage 2022-02-28 00:23:25 +01:00
Matthias
bae290d605
check git version and safe for runtime 2022-02-28 00:17:21 +01:00
Oliver
65e4ee5793 PEP style fixes 2022-02-25 23:01:02 +11:00
Oliver
7c26d8f71d Refactor ownership for StockItem model 2022-02-25 22:58:00 +11:00
Oliver
d6764573c3 Refactor "ownership" concepts in templates
- Template code was very messy
- Makes it a lot "simpler"
- Adds convenience functions to the StockLocation model
- Adds pre-calculated data to the template
- Display ownership information on the stocklocation page
2022-02-25 22:45:24 +11:00
Oliver Walters
0da5957c50 template fix 2022-02-25 21:23:20 +11:00
Oliver
fe4d063135 Change some prints to log messages 2022-02-25 17:19:39 +11:00
Oliver
baab955756 Further fixes for unit tests 2022-02-25 17:17:34 +11:00
Oliver
d9e1302eaf Fixes for unit testing 2022-02-25 16:42:35 +11:00
Oliver
6bdac076d7 Adds a checkmark to indicate that a stock item has passed all required tests 2022-02-25 16:03:44 +11:00
Oliver
88bb0f05e9 URL fixes 2022-02-25 16:00:00 +11:00
Oliver
fea6091e42 Fix incorrect inputs 2022-02-25 15:57:30 +11:00
Oliver
ef9c6e9fe0 Bug fix 2022-02-25 15:56:40 +11:00
Oliver
9e3406efc9 Add stock tracking code to indicate stock has been consumed by a build order 2022-02-25 15:56:09 +11:00
Oliver
bb164ed72a Remove old unused functions 2022-02-25 15:47:07 +11:00
Oliver
3dde0dbb2b PEP fixes 2022-02-25 15:43:45 +11:00
Oliver
ab82f07ef1 Bug fix for BuildOutputComplete serializer
- Actually use the provided "location" value!
2022-02-25 15:41:10 +11:00
Oliver
44008f33e2 Refactoring Build model functions
- Determining if a build order is correctly allocated has become more complex
- Complex BOM behaviours (e.g. variants, templates, and substitutes) have made it more difficult!
- Recently, a reference to the defining BomItem object was added to the BuildItem model
- Now, a simpler way is to check allocation against the parent BomItem
- It is much better, but means that a lot of refactoring and testing will be required!
2022-02-25 15:40:49 +11:00
Oliver
50a45474da
Merge pull request #2666 from matmair/matmair/issue2663
[BUG] Unable to create build output
2022-02-25 14:30:12 +11:00
Oliver
733062385c
Translation merge (#2667)
* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin
2022-02-23 16:49:37 +11:00
Matthias
7be832cc9b
[BUG] Unable to create build output
Fix if no allocate set
Fixes #2663
2022-02-23 02:01:46 +01:00
Oliver
da4c7f0ba1 Adds support for Hungarian language 2022-02-22 11:40:28 +11:00
Oliver
4007b17dcc
Update version.py
Increment minor version number after stable release
2022-02-21 20:52:37 +11:00
Oliver
887e6295e2
I18n release merge (#2654)
* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin
2022-02-21 11:26:08 +11:00
Matthias Mair
8b8e95385b
Merge branch 'inventree:master' into translation-fixes 2022-02-20 22:20:00 +01:00
Matthias
b974b5fc30
use f-string annotation 2022-02-20 21:47:39 +01:00
Oliver
c2b845e2cf
Merge pull request #2646 from matmair/small-fixes
Small style fixes
2022-02-21 07:27:18 +11:00
Matthias
0baffcaee5
fix string concat 2022-02-20 21:12:20 +01:00
Matthias
08a5779c35
fix caps 2022-02-20 19:25:03 +01:00
Oliver
d7c6c23acb
I18n merge (#2647)
* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin

* Fix: New translations django.po from Crowdin
2022-02-20 19:38:59 +11:00
Matthias
ebd54045ec
PEP fix 2022-02-20 04:40:18 +01:00
Matthias
e9b501f7eb
remove unneeded continue 2022-02-20 04:29:46 +01:00
Matthias
d5bcd256f6
merge statments 2022-02-20 04:26:52 +01:00
Matthias
306725ef92
merge satement 2022-02-20 04:25:17 +01:00
Matthias
1ff6988ffd
remove unneeded assignment 2022-02-20 04:24:13 +01:00
Matthias
68d182d67b
remove unused code 2022-02-20 04:23:19 +01:00
eeintech
05b1943886 Set default error message visibility in modal options 2022-02-18 12:25:50 -05:00
Oliver
0f7b6e77ea
Merge pull request #2641 from SchrodingersGat/report-cache-fixes
Report cache fixes
2022-02-18 08:54:09 +11:00
Oliver
7c64cb950c Delete template files from cache as they are uploaded 2022-02-18 00:01:49 +11:00
Oliver
6aec40b9ba Improved error messages when report templates (or snippets) are missing! 2022-02-17 23:46:43 +11:00
Oliver
efc749c695 When uploading a report template, keep the existing filename (if it is the same report!) 2022-02-17 23:30:55 +11:00
Oliver
580effab92 Merge remote-tracking branch 'inventree/master' into match-fields
# Conflicts:
#	InvenTree/InvenTree/version.py
2022-02-17 22:55:16 +11:00
Oliver
6e6f9d6c2f Reintroduce option to clear (delete) BOM before uploading new data 2022-02-17 22:54:02 +11:00
Oliver
1b6dacd5ba Allow processing of "null" cells (caused by xls / xlsx import) 2022-02-17 22:48:15 +11:00
Oliver
3226a1906f Critical bug fix: Check if serial numbers already exist when creating new StockItem 2022-02-17 17:17:09 +11:00
Oliver
f485bc7d53 PEP fixes 2022-02-17 17:04:51 +11:00
Oliver
0604e1a127 Adds API endpoint for installing stock items into other stock items
- Requires more filtering for the Part API
- Adds more BOM related functionality for Part model
- Removes old server-side form
2022-02-17 17:03:17 +11:00
Oliver
31fd69fc76 Ensure unit tests are more resilient 2022-02-17 14:00:16 +11:00
Oliver
6199223636 Adds "refresh" button for stock test table 2022-02-17 13:46:11 +11:00
Oliver
578c161d4f Adds information on test result being deleted 2022-02-17 13:36:00 +11:00
Oliver
82cfc5423a Further improvements to unit tests 2022-02-17 13:07:16 +11:00
Oliver
47f6b709c9 Improve unit testing 2022-02-17 12:10:48 +11:00
Oliver
e298a3adbf Implement unit test for missing columns 2022-02-17 11:45:44 +11:00
Oliver
bc6839d56e Spelling fix 2022-02-17 08:18:15 +11:00
Oliver
f6f512c40b Fix breadcrumb tree for stock item page 2022-02-16 22:22:04 +11:00
Oliver
371af2a34a unit test fixes 2022-02-16 22:19:02 +11:00
Oliver
9c8f15fd56 Fix field name 2022-02-16 19:43:14 +11:00
Oliver
fbef0e1ede js linting 2022-02-16 17:18:17 +11:00
Oliver
0f0325daba Adds a button to quickly "pass" a test 2022-02-16 17:16:17 +11:00
Oliver
8f6312f7f4 Adds generic javascript function for mapping file columns to model fields 2022-02-16 17:04:33 +11:00
Oliver
f399f4fa34 Refactoring API endpoints
- Improved URL naming scheme
2022-02-16 16:57:27 +11:00
Oliver
d7adb6959d Adds functionality to map file columns to model fiels 2022-02-16 14:57:13 +11:00
Oliver
58aa2adde7 Adds model mixin for generically determining which fields can be imported on any particular model 2022-02-16 11:42:15 +11:00
Oliver
24f1491b8e Adds generic API endpoint for extracting data from a tabulated file 2022-02-16 11:32:40 +11:00
Oliver
6c32f5c60d
Merge pull request #2632 from SchrodingersGat/build-serial-number-guess
Build output allocation tweak
2022-02-16 08:37:47 +11:00
Oliver
49fe528f4e
Merge pull request #2630 from matmair/coverage-fixes
Coverage fixes
2022-02-16 07:55:12 +11:00
Oliver
bf39a614a1 Automatically select Bom Items with matching serial numbers when allocating stock to a build order output 2022-02-16 07:49:18 +11:00
Oliver
35c9b6838e Form improvements 2022-02-15 13:33:32 +11:00
Oliver
2b344f1f25 PEP style fixes 2022-02-15 13:30:14 +11:00
Oliver
09853fd3df remove code which is now unused 2022-02-15 13:27:30 +11:00
Oliver
07af0902a3 Optionally auto-allocate stock items when creating a new build output 2022-02-15 13:27:14 +11:00
Oliver
24c13b04b6 Extract serial numbers from submitted form data 2022-02-15 13:19:41 +11:00
Oliver
037232c177 Adds query function to Part model to return trackable parts in the BOM 2022-02-15 13:19:14 +11:00
Oliver
f90a27d01d Adds a new API endpoint for creating build outputs 2022-02-15 12:51:48 +11:00
Matthias Mair
0be2f8cf02
Merge branch 'inventree:master' into coverage-fixes 2022-02-15 01:48:55 +01:00
Oliver
dc4c1f138b
Merge pull request #2629 from SchrodingersGat/index-unit-tests
Adds unit tests for index page
2022-02-15 11:45:08 +11:00
Oliver
c048f3fb4a Adds unit tests for index page
Some fairly simple unit tests to ensure that the index page is being correctly loaded.
2022-02-15 10:50:30 +11:00
Oliver
adfa289e9b Enforce proper formatting for 'quantity' field when importing BOM data 2022-02-15 09:11:14 +11:00
Matthias
238cc9e278
disable broken test 2022-02-14 00:42:47 +01:00
Matthias
8df5a3f980
add more user api tests 2022-02-14 00:21:15 +01:00
Matthias
6848787885
remove dead code -> permission class does that already 2022-02-14 00:21:01 +01:00
Matthias
a4d94f31c8
add test for non existing token 2022-02-14 00:14:11 +01:00
Matthias
beb3bb38d4
spellcheck 2022-02-13 23:59:37 +01:00
Matthias
955f389d66
PEP fixes 2022-02-13 23:59:23 +01:00
Matthias
2335a8c316
add more plugin coverage 2022-02-13 23:58:49 +01:00
Matthias
f765f0f083
should not be reached 2022-02-13 23:52:50 +01:00
Matthias
43a05dfcb4
return cov from feature only used for debug 2022-02-13 23:50:18 +01:00
Matthias
25bcf2c438
make git log call simpler 2022-02-13 23:49:59 +01:00
Matthias
32614e55b5
remove dead code 2022-02-13 23:49:43 +01:00
Matthias
c5e9e933f0
remove cov from not used feature 2022-02-13 23:49:26 +01:00
Matthias
241101cee6
remove coverage that is not reachable 2022-02-13 23:48:48 +01:00
Matthias
9246eea38e
PEP fix 2022-02-13 23:42:05 +01:00
Matthias
384d458110
user api tests 2022-02-13 23:39:10 +01:00
Matthias
e262599d83
ignore unreachable things 2022-02-13 23:32:55 +01:00
Matthias
ffafc20c6d
do not count unreachable code 2022-02-13 23:30:27 +01:00
Matthias
c6464bcf77
PEP fix 2022-02-13 22:42:17 +01:00
Matthias
8724702fef
add coverage for labels 2022-02-13 22:39:29 +01:00
Matthias
58e8bab83b
except import errors 2022-02-13 22:12:43 +01:00
Matthias
f88d39db66
fix coverage 2022-02-13 22:07:30 +01:00
Matthias
40ea93e00a
catch more explicit 2022-02-13 22:06:53 +01:00
Matthias
73500a4b82
omit coverage via setup.cfg 2022-02-13 21:19:41 +01:00
Matthias
a6621a5327
fix label tests 2022-02-13 21:15:40 +01:00
Matthias
b49d46af58
update system health check 2022-02-13 20:38:05 +01:00
Matthias
27b0a012e0
ignore sanity checks for coverage 2022-02-13 20:33:54 +01:00
Matthias
be196b2948
should not be reached - ignore in cov 2022-02-13 20:23:32 +01:00
Matthias
0eb6d46c4b
remove dead code 2022-02-13 20:23:15 +01:00
Matthias
b095917b96
ignore wsgi 2022-02-13 20:20:05 +01:00
Matthias
0e840bacdd
ignore currently dead code in coverage 2022-02-13 20:16:44 +01:00
Matthias
7598b47642
ignore some default in coverage 2022-02-13 20:15:31 +01:00
Matthias
2bf3b90d38
ignore db optm in coverage 2022-02-13 20:15:03 +01:00
Matthias
5a40bdda51
do not cover secret key 2022-02-13 20:14:18 +01:00
Matthias
2bba1766b0
ignore testing coditions in coverage 2022-02-13 20:13:57 +01:00
Matthias
4567e9d941
ignore system exit conditions in coverage 2022-02-13 20:11:41 +01:00
Matthias
1fd336aa1b
ignore whole file 2022-02-13 20:00:19 +01:00
Matthias
af3f3c741d
test Isimporting 2022-02-13 19:59:06 +01:00
Matthias
d596ae1e7e
test test mode 2022-02-13 19:58:29 +01:00
Matthias
ce88deeb3b
add test for system healt checks 2022-02-13 19:56:30 +01:00
Matthias
6bc53c1308
will never be true in testing 2022-02-13 19:55:50 +01:00
Matthias
dbb4c3f407
Merge branch 'master' of https://github.com/inventree/InvenTree into coverage-fixes 2022-02-13 17:46:09 +01:00
Matthias
0ad3b5bcba
ignore coverage in exsisting migrations 2022-02-13 17:45:46 +01:00
Matthias
898f99c931
ignore not testable condition 2022-02-13 17:42:50 +01:00
Matthias
67a4f75856
remove dead test 2022-02-13 17:41:27 +01:00
Matthias
ad41957127
database not ready events are hard to reproduce consistently 2022-02-13 17:39:17 +01:00
Matthias
9d12a7172c
use same style for AppNotReady Exception 2022-02-13 17:35:07 +01:00
Matthias
fe65f92df0
app not ready can not be simulated by tests 2022-02-13 17:34:05 +01:00
Matthias
2838817e32
ignore debug toolbar 2022-02-13 17:31:34 +01:00
Matthias
a763ac383c
Merge branch 'coverage-fixes' of https://github.com/matmair/InvenTree into coverage-fixes 2022-02-13 17:30:38 +01:00
Matthias
ed6bf7d4d0
add comment about function 2022-02-13 17:30:35 +01:00
Matthias
11e41048d0
ignore ci render_test 2022-02-13 17:29:46 +01:00
Oliver
e3fc1ab138 Allow BOM file to be "re-uploaded" 2022-02-13 20:49:42 +11:00
Oliver
0aeaf61254
Merge pull request #2564 from matmair/template-reduce-duplication
Template reduce duplication
2022-02-13 20:37:02 +11:00
Matthias Mair
880d78f2c6
Pep 2022-02-13 06:24:05 +01:00
Matthias Mair
c6da462229
Remove settings mods 2022-02-13 06:22:15 +01:00
Matthias
54f6c5b34f
fix setting coverage 2022-02-13 05:57:07 +01:00
Matthias
1f59373c70
test wrong setting defaults 2022-02-13 05:50:53 +01:00
Matthias
42b4466897
ignore controls that should not be reached in coverage 2022-02-13 05:50:19 +01:00
Matthias
7793a22a35
ignore wrong control view safeties 2022-02-13 05:48:10 +01:00