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, 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))
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 _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
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
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)
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
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))
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), )
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 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
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))
def getUserInfo(self): return get_or_none(UserInfo, user=self)
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
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)