feat: Add isPrivate field to AdminProduct and update filtering logic in admin panels
Test Suite / test (24.15.0) (push) Has been cancelled
Test Suite / test (24.15.0) (push) Has been cancelled
This commit is contained in:
@@ -38,13 +38,17 @@ List<AdminProduct> filterSelectableAdminProducts({
|
||||
required AdminProduct? selectedProduct,
|
||||
}) {
|
||||
final ownerFiltered = ownerUserId == null
|
||||
? products.where((p) => p.ownerId == null).toList()
|
||||
: products.where((p) => p.ownerId == null || p.ownerId == ownerUserId).toList();
|
||||
? products.where((p) => p.isPrivate != true).toList()
|
||||
: products
|
||||
.where(
|
||||
(p) => p.isPrivate != true || p.ownerId == ownerUserId,
|
||||
)
|
||||
.toList();
|
||||
|
||||
final scopeFiltered = switch (scopeFilter) {
|
||||
ProductScopeFilter.all => ownerFiltered,
|
||||
ProductScopeFilter.globalOnly => ownerFiltered.where((p) => p.ownerId == null).toList(),
|
||||
ProductScopeFilter.privateOnly => ownerFiltered.where((p) => p.ownerId != null).toList(),
|
||||
ProductScopeFilter.globalOnly => ownerFiltered.where((p) => p.isPrivate != true).toList(),
|
||||
ProductScopeFilter.privateOnly => ownerFiltered.where((p) => p.isPrivate == true).toList(),
|
||||
};
|
||||
|
||||
final source = categoryId == null
|
||||
@@ -64,7 +68,7 @@ List<ProductOption> toProductOptions(List<AdminProduct> products) {
|
||||
.map(
|
||||
(p) => (
|
||||
id: p.id,
|
||||
name: p.ownerId == null ? p.displayName : '${p.displayName} (privat)',
|
||||
name: p.isPrivate == true ? '${p.displayName} (privat)' : p.displayName,
|
||||
categoryId: p.categoryId,
|
||||
),
|
||||
)
|
||||
|
||||
@@ -854,6 +854,7 @@ class _InventoryFormDialogState extends State<_InventoryFormDialog> {
|
||||
name: initial.productName,
|
||||
canonicalName: initial.productCanonicalName,
|
||||
ownerId: initial.userId,
|
||||
isPrivate: null,
|
||||
categoryId: initial.categoryId,
|
||||
categoryPath: initial.categoryPath,
|
||||
status: 'private',
|
||||
@@ -943,7 +944,7 @@ class _InventoryFormDialogState extends State<_InventoryFormDialog> {
|
||||
if (value == null) {
|
||||
_productScopeFilter = ProductScopeFilter.globalOnly;
|
||||
final selected = _productById(_productId);
|
||||
if (selected?.ownerId != null) {
|
||||
if (selected?.isPrivate == true) {
|
||||
_productId = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -565,6 +565,7 @@ class _PantryFormDialogState extends State<_PantryFormDialog> {
|
||||
name: initial.productName,
|
||||
canonicalName: initial.productCanonicalName,
|
||||
ownerId: initial.userId,
|
||||
isPrivate: null,
|
||||
categoryId: initial.categoryId,
|
||||
categoryPath: initial.categoryPath,
|
||||
status: 'private',
|
||||
@@ -645,7 +646,7 @@ class _PantryFormDialogState extends State<_PantryFormDialog> {
|
||||
if (value == null) {
|
||||
_productScopeFilter = ProductScopeFilter.globalOnly;
|
||||
final selected = _productById(_productId);
|
||||
if (selected?.ownerId != null) {
|
||||
if (selected?.isPrivate == true) {
|
||||
_productId = null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user