Example #1
0
def validate_noncritical_transaction_approval(request, transaction_id):
    user = request.user
    success_page = 'internal/noncritical_transactions.html'
    top_critical_transaction = ExternalCriticalTransaction.objects.filter(
    ).exclude(status="resolved").order_by('time_created').first()
    top_noncritical_transaction = ExternalNoncriticalTransaction.objects.filter(
    ).exclude(status="resolved").order_by('time_created').first()
    transactions = ExternalNoncriticalTransaction.objects.filter().exclude(
        status="resolved").order_by('time_created')
    if top_critical_transaction is None and not top_noncritical_transaction is None:
        if commit_transaction(transaction=top_noncritical_transaction,
                              user=user):
            transactions = ExternalNoncriticalTransaction.objects.filter(
            ).exclude(status="resolved").order_by('time_created')
            return render(request, success_page,
                          {'transactions': transactions})
        else:
            return render(
                request, success_page, {
                    'transactions': transactions,
                    'error_message': "Approved transaction not commmited"
                })
    elif top_noncritical_transaction is None:
        return render(
            request, success_page, {
                'transactions': transactions,
                'error_message': "No critical transactions to approve"
            })
    if top_critical_transaction.time_created <= top_noncritical_transaction.time_created:
        return render(
            request, success_page, {
                'transactions':
                transactions,
                'error_message':
                "System manager must resolve of critical transaction requested before this non-critical transaction"
            })
    else:
        if int(transaction_id) != top_noncritical_transaction.id:
            return render(
                request, success_page, {
                    'transactions':
                    transactions,
                    'error_message':
                    "Given non-critical transaction does not match oldest non-critical transaction to be resolved"
                })
        else:
            if commit_transaction(transaction=top_noncritical_transaction,
                                  user=user):
                transactions = ExternalNoncriticalTransaction.objects.filter(
                ).exclude(status="resolved").order_by('time_created')
                return render(request, success_page,
                              {'transactions': transactions})
            else:
                return render(
                    request, success_page, {
                        'transactions': transactions,
                        'error_message': "Approved transaction not commmited"
                    })
Example #2
0
def validate_critical_transaction_approval(request, transaction_id):
    user = request.user
    success_page = 'internal/critical_transactions.html'
    success_page_reverse = 'internal:critical_transactions'
    top_critical_transaction = ExternalCriticalTransaction.objects.filter(
    ).exclude(
        status=TRANSACTION_STATUS_RESOLVED).order_by('time_created').first()
    top_noncritical_transaction = ExternalNoncriticalTransaction.objects.filter(
    ).exclude(
        status=TRANSACTION_STATUS_RESOLVED).order_by('time_created').first()
    transactions = ExternalCriticalTransaction.objects.filter().exclude(
        status=TRANSACTION_STATUS_RESOLVED).order_by('time_created')
    if top_noncritical_transaction is None and not top_critical_transaction is None:
        if commit_transaction(transaction=top_critical_transaction, user=user):
            return HttpResponseRedirect(reverse(success_page_reverse))
        else:
            return render(
                request, success_page, {
                    'transactions': transactions,
                    'error_message': "Approved transaction not commmited"
                })
    elif top_critical_transaction is None:
        return render(
            request, success_page, {
                'transactions': transactions,
                'error_message': "No critical transactions to approve"
            })
    if top_critical_transaction.time_created > top_noncritical_transaction.time_created:
        return render(
            request, success_page, {
                'transactions':
                transactions,
                'error_message':
                "Non-critical transaction requested before this critical transaction must be resolved"
            })
    else:
        if int(transaction_id) != top_critical_transaction.id:
            return render(
                request, success_page, {
                    'transactions':
                    transactions,
                    'error_message':
                    "Given critical transaction does not match oldest critical transaction to be resolved"
                })
        else:
            if commit_transaction(transaction=top_critical_transaction,
                                  user=user):
                return HttpResponseRedirect(reverse(success_page_reverse))
            else:
                return render(
                    request, success_page, {
                        'transactions': transactions,
                        'error_message': "Approved transaction not commmited"
                    })