def viewOffer(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    payment = None
    myoffer = None
    mysolution = None
    show_alert = None

    if request.user.is_authenticated():
        mysolution = get_or_none(Solution, issue=offer.issue, programmer=request.user)
        myoffer = get_or_none(Offer, issue=offer.issue, sponsor=request.user, status__in=[Offer.OPEN, Offer.REVOKED])

    alert = request.GET.get("alert")
    if alert == "SPONSOR" and offer.issue.project:
        show_alert = "core/popup/popup_just_sponsored.html"
    alert_reputation_revoking = (
        mysolution and mysolution.status == Solution.IN_PROGRESS and mysolution.get_received_payments().count() > 0
    )
    invoke_parent_callback = request.GET.get("c") == "s"

    is_watching = request.user.is_authenticated() and watch_services.is_watching_offer(request.user, offer.id)

    return render_to_response(
        template_folder(request) + "offer.html",
        {
            "offer": offer,
            "is_watching": is_watching,
            "issue": offer.issue,
            "show_alert": show_alert,
            "myoffer": myoffer,
            "mysolution": mysolution,
            "alert_reputation_revoking": alert_reputation_revoking,
            "invoke_parent_callback": invoke_parent_callback,
        },
        context_instance=RequestContext(request),
    )
예제 #2
0
def viewOffer(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    payment = None
    myoffer = None
    mysolution = None
    show_alert = None

    if(request.user.is_authenticated()):
        mysolution = get_or_none(Solution, issue=offer.issue, programmer=request.user)
        myoffer = get_or_none(Offer, issue=offer.issue, sponsor=request.user, status__in=[Offer.OPEN, Offer.REVOKED])

    alert = request.GET.get('alert')
    if(alert == 'SPONSOR' and offer.issue.project):
        show_alert = 'core/popup/popup_just_sponsored.html'
    alert_reputation_revoking = mysolution and mysolution.status == Solution.IN_PROGRESS and mysolution.get_received_payments().count() > 0
    invoke_parent_callback = (request.GET.get('c') == 's')

    is_watching = request.user.is_authenticated() and watch_services.is_watching_offer(request.user, offer.id)

    return render_to_response(template_folder(request) + 'offer.html',
        {'offer':offer,
        'is_watching':is_watching,
        'issue':offer.issue,
        'show_alert':show_alert,
        'myoffer':myoffer,
        'mysolution':mysolution,
        'alert_reputation_revoking': alert_reputation_revoking,
        'invoke_parent_callback' : invoke_parent_callback},
        context_instance = RequestContext(request))
def viewOffer(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    payment = None
    myoffer = None
    mysolution = None
    show_alert = None

    if (request.user.is_authenticated()):
        mysolution = get_or_none(Solution,
                                 issue=offer.issue,
                                 programmer=request.user)
        myoffer = get_or_none(Offer, issue=offer.issue, sponsor=request.user)

    alert = dictOrEmpty(request.GET, 'alert')
    if (alert == 'SPONSOR' and offer.issue.project):
        show_alert = 'core/popup/popup_just_sponsored.html'
    alert_reputation_revoking = mysolution and mysolution.status == Solution.IN_PROGRESS and mysolution.get_received_payments(
    ).count() > 0
    invoke_parent_callback = (dictOrEmpty(request.GET, 'c') == 's')

    is_watching = request.user.is_authenticated(
    ) and watch_services.is_watching_offer(request.user, offer.id)

    return render_to_response('core/offer.html', {
        'offer': offer,
        'is_watching': is_watching,
        'issue': offer.issue,
        'show_alert': show_alert,
        'myoffer': myoffer,
        'mysolution': mysolution,
        'alert_reputation_revoking': alert_reputation_revoking,
        'invoke_parent_callback': invoke_parent_callback
    },
                              context_instance=RequestContext(request))
def viewOffer(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    payment = None
    myoffer = None
    mysolution = None
    show_alert = None

    if(request.user.is_authenticated()):
        mysolution = get_or_none(Solution, issue=offer.issue,programmer=request.user)
        myoffer = get_or_none(Offer, issue=offer.issue,sponsor=request.user)

    alert = dictOrEmpty(request.GET, 'alert')
    if(alert == 'SPONSOR' and offer.issue.project):
        show_alert = 'core/popup_just_sponsored.html'
    invoke_parent_callback = (dictOrEmpty(request.GET, 'c') == 's')

    is_watching = request.user.is_authenticated() and watch_services.is_watching_offer(request.user, offer.id)

    return render_to_response('core/offer.html',
        {'offer':offer,
        'is_watching':is_watching,
        'issue':offer.issue,
        'show_alert':show_alert,
        'myoffer':myoffer,
        'mysolution':mysolution,
        'invoke_parent_callback' : invoke_parent_callback},
        context_instance = RequestContext(request))
def viewIssue(request, issue_id):
    issue = Issue.objects.get(pk=issue_id)
    myoffer = None
    mysolution = None
    show_alert = None

    if(request.user.is_authenticated()):
        myoffer = get_or_none(Offer, issue=issue,sponsor=request.user)
        mysolution = get_or_none(Solution, issue=issue,programmer=request.user)

    show_sponsor_popup = (dictOrEmpty(request.GET, 'show_sponsor') == 'true')
    alert = dictOrEmpty(request.GET, 'alert')
    if(alert == 'KICKSTART'):
        show_alert = 'core/popup_just_kickstarted.html'
    invoke_parent_callback = (dictOrEmpty(request.GET, 'c') == 's')

    is_watching = request.user.is_authenticated() and watch_services.is_watching_issue(request.user, issue.id)

    return render_to_response('core/issue.html',
        {'issue':issue,
        'is_watching':is_watching,
        'myoffer':myoffer,
        'mysolution':mysolution,
        'invoke_parent_callback' : invoke_parent_callback,
        'show_sponsor_popup' : show_sponsor_popup,
        'show_alert' : show_alert},

        context_instance = RequestContext(request))
def viewIssue(request, issue_id):
    issue = Issue.objects.get(pk=issue_id)
    myoffer = None
    mysolution = None
    show_alert = None

    if(request.user.is_authenticated()):
        myoffer = get_or_none(Offer, issue=issue, sponsor=request.user, status__in=[Offer.OPEN, Offer.REVOKED])
        mysolution = get_or_none(Solution, issue=issue,programmer=request.user)

    show_sponsor_popup = (request.GET.get('show_sponsor') == 'true')
    alert = request.GET.get('alert')
    if(alert == 'KICKSTART'):
        show_alert = 'core/popup/popup_just_kickstarted.html'
    alert_reputation_revoking = mysolution and mysolution.status == Solution.IN_PROGRESS and mysolution.get_received_payments().count() > 0

    invoke_parent_callback = (request.GET.get('c') == 's')

    is_watching = request.user.is_authenticated() and watch_services.is_watching_issue(request.user, issue.id)

    return render_to_response('core/issue.html',
        {'issue':issue,
        'is_watching':is_watching,
        'myoffer':myoffer,
        'mysolution':mysolution,
        'invoke_parent_callback' : invoke_parent_callback,
        'show_sponsor_popup' : show_sponsor_popup,
        'show_alert' : show_alert,
        'alert_reputation_revoking': alert_reputation_revoking},

        context_instance = RequestContext(request))
예제 #7
0
def viewIssue(request, issue_id):
    issue = Issue.objects.get(pk=issue_id)
    myoffer = None
    mysolution = None
    show_alert = None

    if (request.user.is_authenticated()):
        myoffer = get_or_none(Offer,
                              issue=issue,
                              sponsor=request.user,
                              status__in=[Offer.OPEN, Offer.REVOKED])
        mysolution = get_or_none(Solution,
                                 issue=issue,
                                 programmer=request.user)

    show_sponsor_popup = (request.GET.get('show_sponsor') == 'true')
    alert = request.GET.get('alert')
    if alert == 'KICKSTART':
        show_alert = template_folder(
            request) + 'popup/popup_just_kickstarted.html'
    if alert == 'SPONSOR':
        show_alert = template_folder(
            request) + 'popup/popup_just_sponsored.html'
    alert_reputation_revoking = mysolution and mysolution.status == Solution.IN_PROGRESS and mysolution.get_received_payments(
    ).count() > 0

    invoke_parent_callback = (request.GET.get('c') == 's')

    is_watching = request.user.is_authenticated(
    ) and watch_services.is_watching_issue(request.user, issue.id)
    crumbs = [
        HOME_CRUMB, {
            'link': issue.trackerURL,
            'name': 'issue: ' + issue.title,
            'blank': True,
        }
    ]

    context = {
        'issue': issue,
        'is_watching': is_watching,
        'myoffer': myoffer,
        'mysolution': mysolution,
        'invoke_parent_callback': invoke_parent_callback,
        'show_sponsor_popup': show_sponsor_popup,
        'show_alert': show_alert,
        'alert_reputation_revoking': alert_reputation_revoking,
        'crumbs': crumbs,
        'actionbar': _actionbar(issue, myoffer, mysolution, request.user)
    }

    return render_to_response(template_folder(request) + 'issue.html',
                              context,
                              context_instance=RequestContext(request))
예제 #8
0
def _throwIfAlreadySponsoring(issue, user):
    offer = get_or_none(Offer,
                        issue=issue,
                        sponsor=user,
                        status__in=[Offer.OPEN, Offer.REVOKED])
    if (offer):
        raise BaseException('Already sponsoring: ' + str(issue.id) + ',' +
                            str(user.id))
def frespoProject(frespo_user):
    project = get_or_none(Project, name='FreedomSponsors')
    if(project):
        return project
    else:
        project = Project.newProject('FreedomSponsors', frespo_user, 'http://www.freedomsponsors.com', 'http://www.freedomsponsors.com')
        project.save()
    return project
 def addProj(name, homeURL, trackerURL):
     project = get_or_none(Project, name=name)
     if project:
         return project
     else:
         project = Project.newProject(name, frespo_user, homeURL, trackerURL)
         project.save()
     return project
def process_ipn_return(paykey, status):
    if(status == 'COMPLETED'):
        payment = get_or_none(Payment, paykey=paykey)
        if(not payment):
            raise BaseException('payment not found ' + paykey)
        payment.confirm_ipn()
        payment.offer.paid()
    else:
        logger.warn('received a ' + status + ' IPN confirmation')
	def addProj(name, homeURL, trackerURL):
		project = get_or_none(Project, name=name)
		if(project):
			return project
		else:
			project = Project.newProject(name, frespo_user, homeURL, trackerURL)
			project.save()
			print('added project '+project.name+':%s'%project.id)
		return project
예제 #13
0
 def addProj(name, homeURL, trackerURL):
     project = get_or_none(Project, name=name)
     if (project):
         return project
     else:
         project = Project.newProject(name, frespo_user, homeURL,
                                      trackerURL)
         project.save()
     return project
def frespoProject(frespo_user):
    project = get_or_none(Project, name='FreedomSponsors')
    if (project):
        return project
    else:
        project = Project.newProject('FreedomSponsors', frespo_user,
                                     'http://www.freedomsponsors.com',
                                     'http://www.freedomsponsors.com')
        project.save()
    return project
예제 #15
0
 def addProj(name, homeURL, trackerURL):
     project = get_or_none(Project, name=name)
     if (project):
         return project
     else:
         project = Project.newProject(name, frespo_user, homeURL,
                                      trackerURL)
         project.save()
         print('added project ' + project.name + ':%s' % project.id)
     return project
def viewIssue(request, issue_id):
    try:
        issue = Issue.objects.get(pk=issue_id)
    except:
        return HttpResponse(status=404, content='Issue not found')
    if issue.get_view_link() != request.path:
        return redirect(issue.get_view_link(), permanent=True)  # only allow one URL per issue
    myoffer = None
    mysolution = None
    show_alert = None

    if(request.user.is_authenticated()):
        myoffer = get_or_none(Offer, issue=issue, sponsor=request.user, status__in=[Offer.OPEN, Offer.REVOKED])
        mysolution = get_or_none(Solution, issue=issue,programmer=request.user)

    show_sponsor_popup = (request.GET.get('show_sponsor') == 'true')
    alert = request.GET.get('alert')
    if alert == 'KICKSTART':
        show_alert = template_folder(request) + 'popup/popup_just_kickstarted.html'
    if alert == 'SPONSOR':
        show_alert = template_folder(request) + 'popup/popup_just_sponsored.html'
    alert_reputation_revoking = mysolution and mysolution.status == Solution.IN_PROGRESS and mysolution.get_received_payments().count() > 0

    is_watching = request.user.is_authenticated() and watch_services.is_watching_issue(request.user, issue.id)
    crumbs = [HOME_CRUMB, {
        'link': issue.trackerURL,
        'name': 'issue: ' + issue.title,
        'blank': True,
    }]

    context = {
        'issue': issue,
        'is_watching': is_watching,
        'myoffer': myoffer,
        'mysolution': mysolution,
        'show_sponsor_popup': show_sponsor_popup,
        'show_alert': show_alert,
        'alert_reputation_revoking': alert_reputation_revoking,
        'crumbs': crumbs,
        'actionbar': _actionbar(issue, myoffer, mysolution, request.user)}

    return render_to_response(template_folder(request) + 'issue.html', context, context_instance=RequestContext(request))
def bitcoin_ipn_received(value, destination_address, transaction_hash, confirmations):
    receive_address = get_or_none(ReceiveAddress, address = destination_address)
    if not receive_address:
        mail_services.notify_admin('Received bitcoins outside FS', 'address = %s, value = %s' % (destination_address, value))
    else:
        payment = Payment.objects.get(bitcoin_receive_address__id = receive_address.id)
        double_payment = payment.bitcoin_transaction_hash and payment.bitcoin_transaction_hash != transaction_hash
        if not double_payment:
            payment.confirm_bitcoin_ipn(value, transaction_hash)
        else :
            _notify_ipn_receive_double_payment(payment, transaction_hash, value)
def bitcoin_ipn_sent(value, destination_address, transaction_hash, confirmations):
    part = get_or_none(PaymentPart, money_sent__transaction_hash=transaction_hash)
    if part:
        values_equal = abs(Decimal(str(value)) - part.price) < Decimal('0.001')
        if values_equal:
            part.money_sent.confirm_ipn()
            _log_info_ipn_send_confirmation(part)
        else:
            _log_error_difference_between_sent_values(part, value)
    else:
        _log_warning_sent_bitcoins_outside_fs(destination_address, transaction_hash, value)
예제 #19
0
def viewIssue(request, issue_id):
    issue = Issue.objects.get(pk=issue_id)
    myoffer = None
    mysolution = None

    if(request.user.is_authenticated()):
        myoffer = get_or_none(Offer, issue=issue,sponsor=request.user)
        mysolution = get_or_none(Solution, issue=issue,programmer=request.user)

    show_sponsor_popup = (dictOrEmpty(request.GET, 'show_sponsor') == 'true')
    invoke_parent_callback = (dictOrEmpty(request.GET, 'c') == 's')

    return render_to_response('core/issue.html',
        {'issue':issue,
        'myoffer':myoffer,
        'mysolution':mysolution,
        'invoke_parent_callback' : invoke_parent_callback,
        'show_sponsor_popup' : show_sponsor_popup},

        context_instance = RequestContext(request))
def viewIssue(request, issue_id):
    issue = Issue.objects.get(pk=issue_id)
    myoffer = None
    mysolution = None
    show_alert = None

    if request.user.is_authenticated():
        myoffer = get_or_none(Offer, issue=issue, sponsor=request.user, status__in=[Offer.OPEN, Offer.REVOKED])
        mysolution = get_or_none(Solution, issue=issue, programmer=request.user)

    show_sponsor_popup = request.GET.get("show_sponsor") == "true"
    alert = request.GET.get("alert")
    if alert == "KICKSTART":
        show_alert = template_folder(request) + "popup/popup_just_kickstarted.html"
    if alert == "SPONSOR":
        show_alert = template_folder(request) + "popup/popup_just_sponsored.html"
    alert_reputation_revoking = (
        mysolution and mysolution.status == Solution.IN_PROGRESS and mysolution.get_received_payments().count() > 0
    )

    invoke_parent_callback = request.GET.get("c") == "s"

    is_watching = request.user.is_authenticated() and watch_services.is_watching_issue(request.user, issue.id)
    crumbs = [HOME_CRUMB, {"link": issue.trackerURL, "name": "issue: " + issue.title, "blank": True}]

    context = {
        "issue": issue,
        "is_watching": is_watching,
        "myoffer": myoffer,
        "mysolution": mysolution,
        "invoke_parent_callback": invoke_parent_callback,
        "show_sponsor_popup": show_sponsor_popup,
        "show_alert": show_alert,
        "alert_reputation_revoking": alert_reputation_revoking,
        "crumbs": crumbs,
        "actionbar": _actionbar(issue, myoffer, mysolution, request.user),
    }

    return render_to_response(
        template_folder(request) + "issue.html", context, context_instance=RequestContext(request)
    )
def bitcoin_ipn_received(value, destination_address, transaction_hash, confirmations):
    receive_address = get_or_none(ReceiveAddress, address=destination_address)
    if receive_address:
        payment = Payment.objects.get(bitcoin_receive_address__id=receive_address.id)
        double_payment = payment.bitcoin_transaction_hash and payment.bitcoin_transaction_hash != transaction_hash
        if not double_payment:
            payment.confirm_bitcoin_ipn(value, transaction_hash)
            _log_info_ipn_receive_confirmation(payment)
        else :
            _log_error_ipn_receive_double_payment(payment, transaction_hash, value)
    else:
        mail_services.notify_admin('Received bitcoins outside FS', 'address = %s,\n value = %s,\n hash = %s' % (destination_address, value, transaction_hash))
def frespoUser():
    user = get_or_none(User, username='******')
    if(user):
        return user
    else:
        user = User()
        user.username = '******'
        user.email = '*****@*****.**'
        user.first_name = 'Freedom'
        user.last_name = 'Sponsors'
        user.save()
    return user
def frespoUser():
    user = get_or_none(User, username='******')
    if (user):
        return user
    else:
        user = User()
        user.username = '******'
        user.email = '*****@*****.**'
        user.first_name = 'Freedom'
        user.last_name = 'Sponsors'
        user.save()
    return user
def frespoUser():
    user = get_or_none(User, username="******")
    if user:
        return user
    else:
        user = User()
        user.username = "******"
        user.email = "*****@*****.**"
        user.first_name = "Freedom"
        user.last_name = "Sponsors"
        user.save()
    return user
예제 #25
0
def viewIssue(request, issue_id):
    issue = Issue.objects.get(pk=issue_id)
    myoffer = None
    mysolution = None
    show_alert = None

    if (request.user.is_authenticated()):
        myoffer = get_or_none(Offer,
                              issue=issue,
                              sponsor=request.user,
                              status__in=[Offer.OPEN, Offer.REVOKED])
        mysolution = get_or_none(Solution,
                                 issue=issue,
                                 programmer=request.user)

    show_sponsor_popup = (request.GET.get('show_sponsor') == 'true')
    alert = request.GET.get('alert')
    if (alert == 'KICKSTART'):
        show_alert = 'core/popup/popup_just_kickstarted.html'
    alert_reputation_revoking = mysolution and mysolution.status == Solution.IN_PROGRESS and mysolution.get_received_payments(
    ).count() > 0

    invoke_parent_callback = (request.GET.get('c') == 's')

    is_watching = request.user.is_authenticated(
    ) and watch_services.is_watching_issue(request.user, issue.id)

    return render_to_response(
        'core/issue.html', {
            'issue': issue,
            'is_watching': is_watching,
            'myoffer': myoffer,
            'mysolution': mysolution,
            'invoke_parent_callback': invoke_parent_callback,
            'show_sponsor_popup': show_sponsor_popup,
            'show_alert': show_alert,
            'alert_reputation_revoking': alert_reputation_revoking
        },
        context_instance=RequestContext(request))
def process_ipn_return(paykey, status, tracking_id):
    if(status == 'COMPLETED'):
        payment = get_or_none(Payment, paykey=paykey, confirm_key=tracking_id)
        if(not payment):
            raise BaseException('payment not found ' + paykey)
        payment.confirm_ipn()
        payment.offer.paid()
        payment.offer.issue.touch()
        watches = watch_services.find_issue_and_offer_watches(payment.offer)
        notify_payment_parties_and_watchers_paymentconfirmed(payment, watches)
        notify_admin_payment_confirmed(payment)
    else:
        logger.warn('received a ' + status + ' IPN confirmation')
def viewIssue(request, issue_id):
    issue = Issue.objects.get(pk=issue_id)
    myoffer = None
    mysolution = None
    show_alert = None

    if(request.user.is_authenticated()):
        myoffer = get_or_none(Offer, issue=issue, sponsor=request.user, status__in=[Offer.OPEN, Offer.REVOKED])
        mysolution = get_or_none(Solution, issue=issue,programmer=request.user)

    show_sponsor_popup = (request.GET.get('show_sponsor') == 'true')
    alert = request.GET.get('alert')
    if(alert == 'KICKSTART'):
        show_alert = 'core/popup/popup_just_kickstarted.html'
    alert_reputation_revoking = mysolution and mysolution.status == Solution.IN_PROGRESS and mysolution.get_received_payments().count() > 0

    invoke_parent_callback = (request.GET.get('c') == 's')

    is_watching = request.user.is_authenticated() and watch_services.is_watching_issue(request.user, issue.id)
    crumbs = [HOME_CRUMB, {
        'link': issue.trackerURL,
        'name': 'issue: ' + issue.title,
        'blank': True,
    }]

    context = {
        'issue': issue,
        'is_watching': is_watching,
        'myoffer': myoffer,
        'mysolution': mysolution,
        'invoke_parent_callback': invoke_parent_callback,
        'show_sponsor_popup': show_sponsor_popup,
        'show_alert': show_alert,
        'alert_reputation_revoking': alert_reputation_revoking,
        'crumbs': crumbs,
        'actionbar': _actionbar(issue, myoffer, mysolution, request.user)}

    return render_to_response(template_folder(request) + 'issue.html', context, context_instance=RequestContext(request))
예제 #28
0
def viewOffer(request, offer_id):
    offer = Offer.objects.get(pk=offer_id)
    myoffer = None
    mysolution = None
    show_alert = None

    if(request.user.is_authenticated()):
        mysolution = get_or_none(Solution, issue=offer.issue,programmer=request.user)
        myoffer = get_or_none(Offer, issue=offer.issue,sponsor=request.user)

    a = dictOrEmpty(request.GET, 'a')
    if(a == 's' and offer.issue.project):
        show_alert = 'core/popup_just_sponsored.html'
    invoke_parent_callback = (dictOrEmpty(request.GET, 'c') == 's')

    return render_to_response('core/offer.html',
        {'offer':offer,
        'issue':offer.issue,
        'show_alert':show_alert,
        'myoffer':myoffer,
        'mysolution':mysolution,
        'invoke_parent_callback' : invoke_parent_callback},
        context_instance = RequestContext(request))
def viewIssue(request, issue_id):
    issue = Issue.objects.get(pk=issue_id)
    myoffer = None
    mysolution = None
    show_alert = None

    if request.user.is_authenticated():
        myoffer = get_or_none(Offer, issue=issue, sponsor=request.user)
        mysolution = get_or_none(Solution, issue=issue, programmer=request.user)

    show_sponsor_popup = dictOrEmpty(request.GET, "show_sponsor") == "true"
    alert = dictOrEmpty(request.GET, "alert")
    if alert == "KICKSTART":
        show_alert = "core/popup_just_kickstarted.html"
    alert_reputation_revoking = (
        mysolution and mysolution.status == Solution.IN_PROGRESS and mysolution.get_received_payments().count() > 0
    )

    invoke_parent_callback = dictOrEmpty(request.GET, "c") == "s"

    is_watching = request.user.is_authenticated() and watch_services.is_watching_issue(request.user, issue.id)

    return render_to_response(
        "core/issue.html",
        {
            "issue": issue,
            "is_watching": is_watching,
            "myoffer": myoffer,
            "mysolution": mysolution,
            "invoke_parent_callback": invoke_parent_callback,
            "show_sponsor_popup": show_sponsor_popup,
            "show_alert": show_alert,
            "alert_reputation_revoking": alert_reputation_revoking,
        },
        context_instance=RequestContext(request),
    )
def bitcoin_ipn_received(value, destination_address, transaction_hash, confirmations):
    receive_address = get_or_none(ReceiveAddress, address=destination_address)
    if receive_address:
        payment = Payment.objects.get(bitcoin_receive_address__id=receive_address.id)
        double_payment = payment.bitcoin_transaction_hash and payment.bitcoin_transaction_hash != transaction_hash
        if not double_payment:
            payment.confirm_bitcoin_ipn(value, transaction_hash)
            _log_info_ipn_receive_confirmation(payment)
        else:
            _log_error_ipn_receive_double_payment(payment, transaction_hash, value)
    else:
        mail_services.notify_admin(
            "Received bitcoins outside FS",
            "address = %s,\n value = %s,\n hash = %s" % (destination_address, value, transaction_hash),
        )
예제 #31
0
def add_solution_to_existing_issue(issue_id, comment_content, user):
    issue = Issue.objects.get(pk=issue_id)
    solution = get_or_none(Solution, issue=issue, programmer=user)
    if (solution):
        _throwIfSolutionInProgress(solution, user, 'add solution')
        solution.reopen()
    else:
        solution = Solution.newSolution(issue, user)
    solution.save()
    comment = None
    if (comment_content):
        comment = IssueComment.newComment(issue, user, comment_content)
        comment.save()
    notifySponsors_workbegun(solution, comment)
    return issue
예제 #32
0
def process_ipn_return(paykey, status, tracking_id):
    if (status == 'COMPLETED'):
        payment = get_or_none(Payment, paykey=paykey, confirm_key=tracking_id)
        if not payment:
            raise BaseException('payment not found ' + paykey)
        if payment.status == Payment.CONFIRMED_IPN:
            return  #double notification, nothing to do
        payment.confirm_ipn()
        payment.offer.paid()
        payment.offer.issue.touch()
        watches = watch_services.find_issue_and_offer_watches(payment.offer)
        notify_payment_parties_and_watchers_paymentconfirmed(payment, watches)
        notify_admin_payment_confirmed(payment)
    else:
        logger.warn('received a ' + status + ' IPN confirmation')
def add_solution_to_existing_issue(issue_id, comment_content, user):
    issue = Issue.objects.get(pk=issue_id)
    solution = get_or_none(Solution, issue=issue, programmer=user)
    if(solution):
        _throwIfSolutionInProgress(solution, user, 'add solution')
        solution.reopen()
    else:
        solution = Solution.newSolution(issue, user)
    solution.save()
    comment = None
    if(comment_content):
        comment = IssueComment.newComment(issue, user, comment_content)
        comment.save()
    notifySponsors_workbegun(solution, comment)
    return issue
def add_solution_to_existing_issue(issue_id, comment_content, user):
    issue = Issue.objects.get(pk=issue_id)
    issue.touch()
    solution = get_or_none(Solution, issue=issue, programmer=user)
    if(solution):
        _throwIfSolutionInProgress(solution, user, 'add solution')
        solution.reopen()
    else:
        solution = Solution.newSolution(issue, user)
    solution.save()
    comment = None
    if(comment_content):
        comment = IssueComment.newComment(issue, user, comment_content)
        comment.save()
    watches = watch_services.find_issue_watches(solution.issue)
    notifyWatchers_workbegun(solution, comment, watches)
    return issue
def process_ipn_return(paykey, status, tracking_id):
    if status == 'COMPLETED':
        payment = get_or_none(Payment, paykey=paykey, confirm_key=tracking_id)
        if not payment:
            raise BaseException('payment not found ' + paykey)
        if payment.status == Payment.CONFIRMED_IPN:
            return  # double notification, nothing to do
        payment.confirm_ipn()
        payment.offer.paid()
        payment.offer.issue.touch()
        watches = watch_services.find_issue_and_offer_watches(payment.offer)
        notify_payment_parties_and_watchers_paymentconfirmed(payment, watches)
        notify_admin_payment_confirmed(payment)
    else:
        subject = 'received a payment confirmation with status = %s' % status
        msg = 'paykey = %s\nconfirm_key=%s' % (paykey, tracking_id)
        mail_services.notify_admin(subject, msg)
        logger.warn(subject)
        logger.warn(msg)
def add_solution_to_existing_issue(issue_id, comment_content, accepting_payments, user):
    issue = Issue.objects.get(pk=issue_id)
    solution = get_or_none(Solution, issue=issue, programmer=user)
    if(solution):
        _throwIfSolutionInProgress(solution, user, 'add solution')
        solution.reopen(accepting_payments)
    else:
        solution = Solution.newSolution(issue, user, accepting_payments)
    solution.save()
    issue.update_redundant_fields();
    comment = None
    if(comment_content):
        comment = IssueComment.newComment(issue, user, comment_content)
        comment.save()
    watches = watch_services.find_issue_and_project_watches(solution.issue)
    notifyWatchers_workbegun(solution, comment, watches)
    if(accepting_payments):
        notifyWatchers_acceptingpayments(solution, watches)
    return solution, comment
예제 #37
0
def add_solution_to_existing_issue(issue_id, comment_content, accepting_payments, user):
    issue = Issue.objects.get(pk=issue_id)
    solution = get_or_none(Solution, issue=issue, programmer=user)
    if(solution):
        _throwIfSolutionInProgress(solution, user, 'add solution')
        solution.reopen(accepting_payments)
    else:
        solution = Solution.newSolution(issue, user, accepting_payments)
    solution.save()
    issue.update_redundant_fields();
    comment = None
    if(comment_content):
        comment = IssueComment.newComment(issue, user, comment_content)
        comment.save()
    watches = watch_services.find_issue_and_project_watches(solution.issue)
    notifyWatchers_workbegun(solution, comment, watches)
    if(accepting_payments):
        notifyWatchers_acceptingpayments(solution, watches)
    return solution, comment
def process_ipn_return(paykey, status, tracking_id):
    if status == 'COMPLETED':
        payment = get_or_none(Payment, paykey=paykey, confirm_key=tracking_id)
        if not payment:
            raise BaseException('payment not found ' + paykey)
        if payment.status == Payment.CONFIRMED_IPN:
            return  # double notification, nothing to do
        payment.confirm_ipn()
        payment.offer.paid()
        payment.offer.issue.touch()
        watches = watch_services.find_issue_and_offer_watches(payment.offer)
        notify_payment_parties_and_watchers_paymentconfirmed(payment, watches)
        notify_admin_payment_confirmed(payment)
    else:
        subject = 'received a payment confirmation with status = %s' % status
        msg = 'paykey = %s\nconfirm_key=%s' % (paykey, tracking_id)
        mail_services.notify_admin(subject, msg)
        logger.warn(subject)
        logger.warn(msg)
def _throwIfAlreadySponsoring(issue, user):
    offer = get_or_none(Offer, issue=issue, sponsor=user)
    if(offer):
        raise BaseException('Already sponsoring: '+str(issue.id)+','+str(user.id))
def _throwIfAlreadySponsoring(issue, user):
    offer = get_or_none(Offer, issue=issue, sponsor=user, status__in=[Offer.OPEN, Offer.REVOKED])
    if(offer):
        raise BaseException('Already sponsoring: '+str(issue.id)+','+str(user.id))
예제 #41
0
def getUserInfo(self):
    return get_or_none(UserInfo, user=self)
예제 #42
0
 def get_payment(self):
     if self.status == Offer.PAID:
         return get_or_none(Payment, offer__id = self.id, status__in = [Payment.CONFIRMED_IPN, Payment.CONFIRMED_TRN] )
     return None
예제 #43
0
def _throwIfAlreadySponsoring(issue, user):
    offer = get_or_none(Offer, issue=issue, sponsor=user)
    if (offer):
        raise BaseException('Already sponsoring: ' + str(issue.id) + ',' +
                            str(user.id))
def _find_by_tracker_url(url):
    url = strip_protocol(url)
    return get_or_none(Issue, trackerURL_noprotocol__iexact=url)
예제 #45
0
def getUserInfo(self):
    return get_or_none(UserInfo, user=self)
예제 #46
0
def _find_by_tracker_url(url):
    url = strip_protocol(url)
    return get_or_none(Issue, trackerURL_noprotocol__iexact=url)