mirror of
https://github.com/inventree/InvenTree.git
synced 2026-07-17 20:23:50 +00:00
[feature] Unique parameters (#12388)
* Add uniqueness requirement for parameter values * Add documentation * Do not copy unique parameters * Updated playwright tests * Enhanced validation checks for uniqueness * Update documentation * Update CHANGELOG * Bump API version
This commit is contained in:
@@ -111,7 +111,8 @@ export function useParameterTemplateFields(): ApiFormFieldSet {
|
||||
active: true
|
||||
}
|
||||
},
|
||||
enabled: {}
|
||||
enabled: {},
|
||||
unique: {}
|
||||
};
|
||||
}, []);
|
||||
}
|
||||
|
||||
@@ -70,7 +70,43 @@ test('Company - Parameters', async ({ browser }) => {
|
||||
await page.getByRole('option', { name: 'NET-30' }).click();
|
||||
|
||||
await page.getByRole('cell', { name: 'Arrow Electronics' }).waitFor();
|
||||
await page.getByRole('cell', { name: 'PCB assembly house' }).waitFor();
|
||||
await page.getByRole('cell', { name: 'SUP-012' }).waitFor();
|
||||
|
||||
await page.getByRole('cell', { name: 'PCBA+' }).click();
|
||||
await page.getByRole('link', { name: 'details-company-45' }).click();
|
||||
|
||||
// Let's duplicate this company
|
||||
await openDetailAction(page, 'company', 'duplicate');
|
||||
await page
|
||||
.getByRole('textbox', { name: 'text-field-name' })
|
||||
.fill(`PCBA Duplicate ${Math.floor(Math.random() * 1000)}`);
|
||||
await page.getByRole('button', { name: 'Submit' }).click();
|
||||
|
||||
await page.waitForLoadState('networkidle');
|
||||
await loadTab(page, 'Parameters');
|
||||
|
||||
// Only one parameter should be visible (unique parameters not copied)
|
||||
await page.getByRole('cell', { name: 'NET-30' }).waitFor();
|
||||
await page.getByText('1 - 1 / 1').waitFor();
|
||||
|
||||
// Try to create a duplicate parameter
|
||||
await page
|
||||
.getByRole('button', { name: 'action-menu-add-parameters' })
|
||||
.click();
|
||||
await page
|
||||
.getByRole('menuitem', {
|
||||
name: 'action-menu-add-parameters-create-parameter'
|
||||
})
|
||||
.click();
|
||||
|
||||
await page
|
||||
.getByRole('combobox', { name: 'related-field-template' })
|
||||
.fill('supplier');
|
||||
await page.getByRole('option', { name: 'Supplier ID' }).click();
|
||||
|
||||
await page.getByRole('textbox', { name: 'text-field-data' }).fill('SUP-012');
|
||||
await page.getByRole('button', { name: 'Submit' }).click();
|
||||
await page.getByText('Parameter value must be unique').waitFor();
|
||||
});
|
||||
|
||||
test('Company - Supplier Parts', async ({ browser }) => {
|
||||
|
||||
Reference in New Issue
Block a user