mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-30 04:26:44 +00:00
* Adds ReturnOrder and ReturnOrderAttachment models * Adds new 'role' specific for return orders * Refactor total_price into a mixin - Required for PurchaseOrder and SalesOrder - May not be required for ReturnOrder (remains to be seen) * Adds API endpoints for ReturnOrder - Add list endpoint - Add detail endpoint - Adds required serializer models * Adds basic "index" page for Return Order model * Update API version * Update navbar text * Add db migration for new "role" * Add ContactList and ContactDetail API endpoints * Adds template and JS code for manipulation of contacts - Display a table - Create / edit / delete * Splits order.js into multiple files - Javascript files was becoming extremely large - Hard to debug and find code - Split into purchase_order / return_order / sales_order * Fix role name (change 'returns' to 'return_order') - Similar to existing roles for purchase_order and sales_order * Adds detail page for ReturnOrder * URL cleanup - Use <int:pk> instead of complex regex * More URL cleanup * Add "return orders" list to company detail page * Break JS status codes into new javascript file - Always difficult to track down where these are rendered - Enough to warrant their own file now * Add ability to edit return order from detail page * Database migrations - Add new ReturnOrder modeles - Add new 'contact' field to external orders * Adds "contact" to ReturnOrder - Implement check to ensure that the selected "contact" matches the selected "company" * Adjust filters to limit contact options * Fix typo * Expose 'contact' field for PurchaseOrder model * Render contact information * Add "contact" for SalesOrder * Adds setting to enable / disable return order functionality - Simply hides the navigation elements - API is not disabled * Support filtering ReturnOrder by 'status' - Refactors existing filter into the OrderFilter class * js linting * More JS linting * Adds ReturnOrderReport model * Add serializer for the ReturnOrderReport model - A little bit of refactoring along the way * Admin integration for new report model * Refactoring for report.api - Adds generic mixins for filtering queryset (based on updates to label.api) - Reduces repeated code a *lot* * Exposes API endpoints for ReturnOrderReport * Adds default example report file for ReturnOrder - Requires some more work :) * Refactor report printing javascript code - Replace all existing functions with 'printReports' * Improvements for default StockItem test report template - Fix bug in template - Handle potential errors in template tags - Add more helpers to report tags - Improve test result rendering * Reduce logging verbosity from weasyprint * Refactor javascript for label printing - Consolidate into a single function - Similar to refactor of report functions * Add report print button to return order page * Record user reference when creating via API * Refactor order serializers - Move common code into AbstractOrderSerializer class * Adds extra line item model for the return order - Adds serializer and API endpoints as appropriate * Render extra line table for return order - Refactor existing functions into a single generic function - Reduces repeated JS code a lot * Add ability to create a new extra line item * Adds button for creating a new lien item * JS linting * Update test * Typo fix (cherry picked from commit 28ac2be35bd0148c598629988d40b1a234f069a5) * Enable search for return order * Don't do pricing (yet) for returnorder extra line table - Fixes an uncaught error * Error catching for api.js * Updates for order models: - Add 'target_date' field to abstract Order model - Add IN_PROGRESS status code for return order - Refactor 'overdue' and 'outstanding' API queries - Refactor OVERDUE_FILTER on order models - Refactor is_overdue on order models - More table filters for return order model * JS cleanup * Create ReturnOrderLineItem model - New type of status label - Add TotalPriceMixin to ReturnOrder model * Adds an API serializer for the ReturnOrderLineItem model * Add API endpoints for ReturnOrderLineItem model - Including some refactoring along the way * javascript: refactor loadTableFilters function - Pass enforced query through to the filters - Call Object.assign() to construct a superset query - Removes a lot of code duplication * Refactor hard-coded URLS to use {% url %} lookup - Forces error if the URL is wrong - If we ever change the URL, will still work * Implement creation of new return order line items * Adds 'part_detail' annotation to ReturnOrderLineItem serializer - Required for rendering part information * javascript: refactor method for creating a group of buttons in a table * javascript: refactor common buttons with helper functions * Allow edit and delete of return order line items * Add form option to automatically reload a table on success - Pass table name to options.refreshTable * JS linting * Add common function for createExtraLineItem * Refactor loading of attachment tables - Setup drag-and-drop as part of core function * CI fixes * Refactoring out some more common API endpoint code * Update migrations * Fix permission typo * Refactor for unit testing code * Add unit tests for Contact model * Tests for returnorder list API * Annotate 'line_items' to ReturnOrder serializer * Driving the refactor tractor * More unit tests for the ReturnOrder API endpoints * Refactor "print orders" button for various order tables - Move into "setupFilterList" code (generic) * add generic 'label printing' button to table actions buttons * Refactor build output table * Refactoring icon generation for js * Refactoring for Part API * Fix database model type for 'received_date' * Add API endpoint to "issue" a ReturnOrder * Improvements for stock tracking table - Add new status codes - Add rendering for SalesOrder - Add rendering for ReturnOrder - Fix status badges * Adds functionality to receive line items against a return order * Add endpoints for completing and cancelling orders * Add option to allow / prevent editing of ReturnOrder after completed * js linting * Wrap "add extra line" button in setting check * Updates to order/admin.py * Remove inline admin for returnorderline model * Updates to pass CI * Serializer fix * order template fixes * Unit test fix * Fixes for ReturnOrder.receive_line_item * Unit testing for receiving line items against an RMA * Improve example report for return order * Extend unit tests for reporting * Cleanup here and there * Unit testing for order views * Clear "sales_order" field when returning against ReturnOrder * Add 'location' to deltas when returning from customer * Bug fix for unit test
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
"""URL lookup for Part app. Provides URL endpoints for:
|
|
|
|
- Display / Create / Edit / Delete PartCategory
|
|
- Display / Create / Edit / Delete Part
|
|
- Create / Edit / Delete PartAttachment
|
|
- Display / Create / Edit / Delete SupplierPart
|
|
"""
|
|
|
|
from django.urls import include, path, re_path
|
|
|
|
from . import views
|
|
|
|
part_detail_urls = [
|
|
re_path(r'^bom-upload/?', views.BomUpload.as_view(), name='upload-bom'),
|
|
|
|
# Normal thumbnail with form
|
|
re_path(r'^thumb-select/?', views.PartImageSelect.as_view(), name='part-image-select'),
|
|
|
|
# Any other URLs go to the part detail page
|
|
re_path(r'^.*$', views.PartDetail.as_view(), name='part-detail'),
|
|
]
|
|
|
|
category_urls = [
|
|
|
|
# Category detail views
|
|
re_path(r'(?P<pk>\d+)/', views.CategoryDetail.as_view(), name='category-detail'),
|
|
]
|
|
|
|
# URL list for part web interface
|
|
part_urls = [
|
|
|
|
# Upload a part
|
|
re_path(r'^import/$', views.PartImport.as_view(), name='part-import'),
|
|
re_path(r'^import/?', views.PartImportTemplate.as_view(), name='part-template-download'),
|
|
re_path(r'^import-api/', views.PartImportAjax.as_view(), name='api-part-import'),
|
|
|
|
# Individual part using pk
|
|
path(r'<int:pk>/', include(part_detail_urls)),
|
|
|
|
# Part category
|
|
re_path(r'^category/', include(category_urls)),
|
|
|
|
# Individual part using IPN as slug
|
|
re_path(r'^(?P<slug>[-\w]+)/', views.PartDetailFromIPN.as_view(), name='part-detail-from-ipn'),
|
|
|
|
# Top level part list (display top level parts and categories)
|
|
re_path(r'^.*$', views.PartIndex.as_view(), name='part-index'),
|
|
]
|