Don't show restore options for payments

This commit is contained in:
Hillel Coren 2022-08-30 17:59:45 +03:00
parent 76fa354b25
commit 6458dd398f
3 changed files with 23 additions and 17 deletions

View File

@ -367,6 +367,8 @@ abstract class BaseEntity implements SelectableEntity {
bool get isEditable => !isDeleted; bool get isEditable => !isDeleted;
bool get isRestorable => true;
bool userCanAccess(String userId) => bool userCanAccess(String userId) =>
createdUserId == userId || assignedUserId == userId; createdUserId == userId || assignedUserId == userId;

View File

@ -471,6 +471,9 @@ abstract class PaymentEntity extends Object
kPaymentStatusPartiallyRefunded kPaymentStatusPartiallyRefunded
].contains(statusId); ].contains(statusId);
@override
bool get isRestorable => false;
@override @override
FormatNumberType get listDisplayAmountType => FormatNumberType.money; FormatNumberType get listDisplayAmountType => FormatNumberType.money;

View File

@ -85,23 +85,24 @@ class DismissibleEntity extends StatelessWidget {
endActionPane: ActionPane( endActionPane: ActionPane(
motion: const DrawerMotion(), motion: const DrawerMotion(),
children: [ children: [
entity.isActive if (entity.isActive)
? SlidableAction( SlidableAction(
label: localization.archive, label: localization.archive,
backgroundColor: Colors.orange, backgroundColor: Colors.orange,
foregroundColor: Colors.white, foregroundColor: Colors.white,
icon: Icons.archive, icon: Icons.archive,
onPressed: (context) => onPressed: (context) =>
handleEntityAction(entity, EntityAction.archive), handleEntityAction(entity, EntityAction.archive),
) )
: SlidableAction( else if (entity.isRestorable)
label: localization.restore, SlidableAction(
backgroundColor: Colors.blue, label: localization.restore,
foregroundColor: Colors.white, backgroundColor: Colors.blue,
icon: Icons.restore, foregroundColor: Colors.white,
onPressed: (context) => icon: Icons.restore,
handleEntityAction(entity, EntityAction.restore), onPressed: (context) =>
), handleEntityAction(entity, EntityAction.restore),
),
if (!entity.isDeleted) if (!entity.isDeleted)
SlidableAction( SlidableAction(
label: localization.delete, label: localization.delete,