示例#1
0
    def POST(self, transfer_id):
        transfer = get_object_or_404(Transfer, pk=transfer_id)
        if transfer.creator() != self.request.user:
            self.flash(_("You can't modify a transfer that isn't yours"), "error")
            return redirect('serv-transfers-mine')
        if transfer.status != "q":
            self.flash(_("You can only modify transfers that haven't been"
                " accepted"), "error")
            return redirect('serv-transfers-mine')

        form = AddTransferForm(self.request.POST, instance=transfer)
        if form.is_valid():
            transfer = form.save(commit=False)
            # Check user would not surpass max balance
            if transfer.credits_payee.balance + transfer.credits > settings.MAX_CREDIT:
                self.flash(_("The transfer would exceed the credit limit of the"
                    "credits receiver"), 'error')
                return redirect('serv-transfers-mine')

            # Check user would not minimum min balance
            if transfer.credits_debtor.balance - transfer.credits < settings.MIN_CREDIT:
                self.flash(_(u"The transfer would exceed the minimum credit"
                    " limit of the person receiving the service"),
                    'error')
                return redirect('serv-transfers-mine')

            transfer.save()
            self.flash(_(u"Transfer modified successfully"))
            return redirect('serv-transfers-mine')
        context = dict(form=form, transfer=transfer, current_tab="transfer",
            subtab="mine")
        return self.context_response('serv/edit_transfer.html', context)
示例#2
0
    def POST(self, transfer_id):
        transfer = get_object_or_404(Transfer, pk=transfer_id)
        if transfer.creator() != self.request.user:
            self.flash(_("You can't modify a transfer that isn't yours"), "error")
            return redirect('serv-transfers-mine')
        if transfer.status != "q":
            self.flash(_("You can only modify transfers that haven't been"
                " accepted"), "error")
            return redirect('serv-transfers-mine')

        form = AddTransferForm(self.request.POST, instance=transfer)
        if form.is_valid():
            transfer = form.save(commit=False)
            # Check user would not surpass max balance
            if transfer.credits_payee.balance + transfer.credits > settings.MAX_CREDIT:
                self.flash(_("The transfer would exceed the credit limit of the"
                    "credits receiver"), 'error')
                return redirect('serv-transfers-mine')

            # Check user would not minimum min balance
            if transfer.credits_debtor.balance - transfer.credits < settings.MIN_CREDIT:
                self.flash(_(u"The transfer would exceed the minimum credit"
                    " limit of the person receiving the service"),
                    'error')
                return redirect('serv-transfers-mine')

            transfer.save()
            self.flash(_(u"Transfer modified successfully"))
            return redirect('serv-transfers-mine')
        context = dict(form=form, transfer=transfer, current_tab="transfer",
            subtab="mine")
        return self.context_response('serv/edit_transfer.html', context)
示例#3
0
    def POST(self, service_id):
        service = get_object_or_404(Service, pk=service_id)
        ongoing_transfers = service.ongoing_transfers(self.request.user)
        if ongoing_transfers:
            return redirect("serv-transfer-edit", ongoing_transfers[0].id)
        form = AddTransferForm(data=self.request.POST)
        # Check user would not surpass min balance
        if self.request.user.balance < settings.MIN_CREDIT and\
            service.is_offer:
            self.flash(_(u"You don't have enough credit"), 'error')
            return redirect('serv-transfers-mine')

        if service.creator == self.request.user:
            self.flash(_(u"You can't demand a service to yourself"))
            return redirect('serv-transfers-mine')

        if form.is_valid():
            transfer = form.save(commit=False)
            # Set remaining transfer settings
            transfer.service = service
            transfer.status = 'q'
            transfer.is_public = False
            if transfer.service.is_offer:
                transfer.credits_debtor = self.request.user
                transfer.credits_payee = transfer.service.creator
            else:
                transfer.credits_payee = self.request.user
                transfer.credits_debtor = transfer.service.creator

            # Check user would not surpass max balance
            if transfer.credits_payee.balance + transfer.credits > settings.MAX_CREDIT:
                self.flash(_(u"The transfer would exceed the credit limit of the"
                " credits receiver"), 'error')
                return redirect('serv-transfers-mine')

            # Check user would not minimum min balance
            if transfer.credits_debtor.balance - transfer.credits < settings.MIN_CREDIT:
                self.flash(_("The transfer would exceed the minimum credit limit"
                    " of the person receiving the service"), 'error')
                return redirect('serv-transfers-mine')

            # Check there's no current ongoing transfer for this service and
            # self.request.user
            if Transfer.objects.filter(credits_payee=transfer.credits_payee,
                credits_debtor=transfer.credits_debtor,
                service=service, status__in=['q', 'a']).count() > 0:
                self.flash(_("You already have an ongoing transfer for this"
                    " service"),'error')
                return redirect('serv-transfers-mine')

            transfer.save()
            self.flash(_(u"Transfer created successfully"))
            return redirect('serv-transfers-mine')

        context = dict(form=form, instance=None, current_tab="transfers",
            subtab="add", service=service)
        return self.context_response('serv/add_transfer.html', context)
示例#4
0
    def POST(self, service_id):
        service = get_object_or_404(Service, pk=service_id)
        ongoing_transfers = service.ongoing_transfers(self.request.user)
        if ongoing_transfers:
            return redirect("serv-transfer-edit", ongoing_transfers[0].id)
        form = AddTransferForm(data=self.request.POST)
        # Check user would not surpass min balance
        if self.request.user.balance < settings.MIN_CREDIT and\
            service.is_offer:
            self.flash(_(u"You don't have enough credit"), 'error')
            return redirect('serv-transfers-mine')

        if service.creator == self.request.user:
            self.flash(_(u"You can't demand a service to yourself"))
            return redirect('serv-transfers-mine')

        if form.is_valid():
            transfer = form.save(commit=False)
            # Set remaining transfer settings
            transfer.service = service
            transfer.status = 'q'
            transfer.is_public = False
            if transfer.service.is_offer:
                transfer.credits_debtor = self.request.user
                transfer.credits_payee = transfer.service.creator
            else:
                transfer.credits_payee = self.request.user
                transfer.credits_debtor = transfer.service.creator

            # Check user would not surpass max balance
            if transfer.credits_payee.balance + transfer.credits > settings.MAX_CREDIT:
                self.flash(_(u"The transfer would exceed the credit limit of the"
                " credits receiver"), 'error')
                return redirect('serv-transfers-mine')

            # Check user would not minimum min balance
            if transfer.credits_debtor.balance - transfer.credits < settings.MIN_CREDIT:
                self.flash(_("The transfer would exceed the minimum credit limit"
                    " of the person receiving the service"), 'error')
                return redirect('serv-transfers-mine')

            # Check there's no current ongoing transfer for this service and
            # self.request.user
            if Transfer.objects.filter(credits_payee=transfer.credits_payee,
                credits_debtor=transfer.credits_debtor,
                service=service, status__in=['q', 'a']).count() > 0:
                self.flash(_("You already have an ongoing transfer for this"
                    " service"),'error')
                return redirect('serv-transfers-mine')

            transfer.save()
            self.flash(_(u"Transfer created successfully"))
            return redirect('serv-transfers-mine')

        context = dict(form=form, instance=None, current_tab="transfers",
            subtab="add", service=service)
        return self.context_response('serv/add_transfer.html', context)
示例#5
0
 def GET(self, service_id):
     service = get_object_or_404(Service, pk=service_id)
     ongoing_transfers = service.ongoing_transfers(self.request.user)
     if ongoing_transfers:
         return redirect("serv-transfer-edit", ongoing_transfers[0].id)
     form = AddTransferForm()
     context = dict(form=form, current_tab="transfers", subtab="add",
         service=service)
     return self.context_response('serv/add_transfer.html', context)
示例#6
0
 def GET(self, transfer_id):
     transfer = get_object_or_404(Transfer, pk=transfer_id)
     if transfer.creator() != self.request.user:
         self.flash(_(u"You can't modify a transfer that isn't yours"),
             "error")
         return redirect('serv-transfers-mine')
     if transfer.status != "q":
         self.flash(_("You can only modify transfers that haven't been"
             " accepted"), "error")
         return redirect('serv-transfers-mine')
     form = AddTransferForm(instance=transfer)
     context = dict(form=form, transfer=transfer, current_tab="transfers",
         subtab="mine")
     return self.context_response('serv/edit_transfer.html', context)