def filter_payment_status(self, queryset, name, value):
queryset = queryset.filter(closed=True)
if value in ['paid', 'processing']:
request = self.request
is_po = request and request.user and request.user.is_authenticated() and request.user.is_project_owner and not request.user.is_admin
if value == 'paid':
return is_po and queryset or queryset.filter(paid=True, pay_distributed=True)
else:
processing_filter = (Q(processing=True) & Q(paid=False))
if not is_po:
processing_filter = processing_filter | (Q(paid=True) & Q(pay_distributed=False))
return queryset.filter(processing_filter)
elif value == 'pending':
queryset = queryset.filter(processing=False, paid=False)
elif value == 'distribute':
queryset = queryset.filter(
payment_method=TASK_PAYMENT_METHOD_STRIPE,
paid=True, btc_paid=False, pay_distributed=False
)
return queryset
评论列表
文章目录