def bitcoinIPN(request): # logger.info('----- bitcoinIPN ------') value = Decimal(request.GET["value"]) * Decimal('1e-8') destination_address = request.GET["destination_address"] transaction_hash = request.GET["transaction_hash"] confirmations = int(request.GET["confirmations"]) logger.info("bitcoin IPN confirmation: host = %s(%s), value = %s, destination_address=%s, transaction_hash = %s, confirmations = %s" % (dictOrEmpty(request.META,'REMOTE_HOST'), dictOrEmpty(request.META,'REMOTE_ADDR'), value, destination_address, transaction_hash, confirmations)) if value > 0: bitcoin_frespo_services.bitcoin_ipn_received(value, destination_address, transaction_hash, confirmations) elif value < 0: bitcoin_frespo_services.bitcoin_ipn_sent(value, destination_address, transaction_hash, confirmations) else : raise BaseException('Received 0 - value IPN confirmation') # logger.info("value: %s" % dictOrEmpty(request.GET, "value")) # logger.info("input_address: %s" % dictOrEmpty(request.GET, "input_address")) # logger.info("confirmations: %s" % dictOrEmpty(request.GET, "confirmations")) # logger.info("transaction_hash: %s" % dictOrEmpty(request.GET, "transaction_hash")) # logger.info("destination_address: %s" % dictOrEmpty(request.GET, "destination_address")) # logger.info("input_transaction_hash: %s" % dictOrEmpty(request.GET, "input_transaction_hash")) # logger.info("GET params: %s" % request.GET) # logger.info('----- bitcoinIPN end ------') return HttpResponse("*ok*")
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 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 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" 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 get_offers(request): trackerURL = dictOrEmpty(request.GET, 'trackerURL') if(not trackerURL): return HttpResponse(_("Error: need trackerURL parameter."), status=404) sponsor_id = dictOrEmpty(request.GET, 'sponsor_id') offers = Offer.objects.filter(issue__trackerURL__iexact=trackerURL) if(sponsor_id): offers = offers.filter(sponsor__id=int(sponsor_id)) return HttpResponse(json.dumps(_convert_offers_to_dict(offers)))
def get_offers(request): trackerURL = dictOrEmpty(request.GET, 'trackerURL') if (not trackerURL): return HttpResponse(_("Error: need trackerURL parameter."), status=404) sponsor_id = dictOrEmpty(request.GET, 'sponsor_id') offers = Offer.objects.filter(issue__trackerURL__iexact=trackerURL) if (sponsor_id): offers = offers.filter(sponsor__id=int(sponsor_id)) return HttpResponse(json.dumps(_convert_offers_to_dict(offers)))
def addIssueForm(request): trackerURL = dictOrEmpty(request.GET, 'trackerURL') operation = dictOrEmpty(request.GET, 'operation') if(trackerURL): issues = Issue.objects.filter(trackerURL__iexact=trackerURL) issue_already_exists = issues.count() >= 1 if(issues.count() > 1): logger.warning("Database inconsistency: more than one issue found with url = %s"%trackerURL) if(issue_already_exists): return redirect(issues[0].get_view_link()+'?show_sponsor=true&c=s') return render_to_response('core/add_issue.html', {'trackerURL' : trackerURL, 'operation' : operation}, context_instance = RequestContext(request))
def addIssueForm(request): trackerURL = dictOrEmpty(request.GET, "trackerURL") operation = dictOrEmpty(request.GET, "operation") if trackerURL: issues = Issue.objects.filter(trackerURL__iexact=trackerURL) issue_already_exists = issues.count() >= 1 if issues.count() > 1: logger.warning("Database inconsistency: more than one issue found with url = %s" % trackerURL) if issue_already_exists: return redirect(issues[0].get_view_link() + "?show_sponsor=true&c=s") return render_to_response( "core/add_issue.html", {"trackerURL": trackerURL, "operation": operation}, context_instance=RequestContext(request), )
def edit_existing_user(user, dict): userinfo = user.getUserInfo() userinfo.screenName = dict['screenName'] userinfo.website = dict['website'] userinfo.about = dict['about'] userinfo.realName = dict['realName'] userinfo.receiveEmail_issue_comments = dict.has_key('receiveEmail_issue_comments') userinfo.receiveEmail_issue_work = dict.has_key('receiveEmail_issue_work') userinfo.receiveEmail_issue_offer = dict.has_key('receiveEmail_issue_offer') userinfo.receiveEmail_issue_payment = dict.has_key('receiveEmail_issue_payment') userinfo.receiveEmail_announcements = dict.has_key('receiveEmail_announcements') userinfo.brazilianPaypal = dict.has_key('brazilianPaypal') userinfo.hide_from_userlist = dict.has_key('hide_from_userlist') userinfo.preferred_language_code = dict['preferred_language_code'] if(settings.BITCOIN_ENABLED): userinfo.bitcoin_receive_address = dict['bitcoin_receive_address'] newEmail = dict['primaryEmail'] newPaypalEmail = dictOrEmpty(dict, 'paypalEmail') if(not newPaypalEmail): newPaypalEmail = newEmail changedPaypalEmail = newPaypalEmail != userinfo.paypalEmail primaryActivation = _changePrimaryEmailIfNeeded(userinfo, newEmail) paypalActivation = _changePaypalEmailIfNeeded(userinfo, newPaypalEmail) if changedPaypalEmail: userinfo.paypal_verified = False userinfo.save() paypal_services.accepts_paypal_payments(user) return paypalActivation, primaryActivation
def editUserForm(request): userinfo = request.user.getUserInfo() available_languages = [ { 'code': 'en', 'label': _('English') }, { 'code': 'pt-br', 'label': _('Brazilian Portuguese') }, { 'code': 'es', 'label': _('Spanish') }, ] if (not userinfo): userinfo = UserInfo.newUserInfo(request.user) userinfo.save() mail_services.welcome(request.user) _notify_admin_new_user(request.user) return render_to_response('core/useredit.html', { 'userinfo': userinfo, 'available_languages': available_languages, 'next': dictOrEmpty(request.GET, 'next') }, context_instance=RequestContext(request))
def edit_existing_user(user, dict): userinfo = user.getUserInfo() userinfo.screenName = dict['screenName'] userinfo.website = dict['website'] userinfo.about = dict['about'] userinfo.realName = dict['realName'] userinfo.receiveEmail_issue_comments = dict.has_key( 'receiveEmail_issue_comments') userinfo.receiveEmail_issue_work = dict.has_key('receiveEmail_issue_work') userinfo.receiveEmail_issue_offer = dict.has_key( 'receiveEmail_issue_offer') userinfo.receiveEmail_issue_payment = dict.has_key( 'receiveEmail_issue_payment') userinfo.receiveEmail_announcements = dict.has_key( 'receiveEmail_announcements') userinfo.brazilianPaypal = dict.has_key('brazilianPaypal') userinfo.hide_from_userlist = dict.has_key('hide_from_userlist') userinfo.preferred_language_code = dict['preferred_language_code'] if (settings.BITCOIN_ENABLED): userinfo.bitcoin_receive_address = dict['bitcoin_receive_address'] newEmail = dict['primaryEmail'] newPaypalEmail = dictOrEmpty(dict, 'paypalEmail') if (not newPaypalEmail): newPaypalEmail = newEmail changedPaypalEmail = newPaypalEmail != userinfo.paypalEmail primaryActivation = _changePrimaryEmailIfNeeded(userinfo, newEmail) paypalActivation = _changePaypalEmailIfNeeded(userinfo, newPaypalEmail) if changedPaypalEmail: userinfo.paypal_verified = False userinfo.save() paypal_services.accepts_paypal_payments(user) return paypalActivation, primaryActivation
def viewUser(request, user_id): user = User.objects.get(pk=user_id) unconnectedSocialAccounts = None changedEmails = None if user.id == request.user.id: unconnectedSocialAccounts = user_services.getUnconnectedSocialAccounts(user) alert_strings = user_services.getAlertsForViewUser( request.user, user, changedPrimaryEmail=dictOrEmpty(request.GET, "prim") == "true", changedPaypalEmail=dictOrEmpty(request.GET, "payp") == "true", emailVerified=dictOrEmpty(request.GET, "email_verified") == "true", ) for alert in alert_strings: messages.info(request, alert) context = {"le_user": user, "stats": user.getStats(), "unconnectedSocialAccounts": unconnectedSocialAccounts} return render_to_response("core/user.html", context, context_instance=RequestContext(request))
def editUserForm(request): userinfo = request.user.getUserInfo() if(not userinfo): userinfo = UserInfo.newUserInfo(request.user) userinfo.save() return render_to_response('core/useredit.html', {'userinfo':userinfo, 'next':dictOrEmpty(request.GET, 'next')}, context_instance = RequestContext(request))
def _buildIssueFromDictionary(dict, user): check_noProject = dict.has_key('noProject') issue_trackerURL = dict['trackerURL'] issue_projectId = dict['project_id'] issue_projectName = dictOrEmpty(dict, 'project_name') check_createProject = dict.has_key('createProject') newProject_name = dictOrEmpty(dict, 'newProjectName') newProject_homeURL = dictOrEmpty(dict, 'newProjectHomeURL') newProject_trackerURL = dictOrEmpty(dict, 'newProjectTrackerURL') issue_key = dictOrEmpty(dict, 'key') issue_title = dictOrEmpty(dict, 'title') issue_description = dictOrEmpty(dict, 'description') _throwIfIssueExists(issue_trackerURL, user) issue = None if (check_noProject): if (not issue_title or not issue_description): raise BaseException('title and description are required') issue = Issue.newIssueOrphan(issue_title, issue_description, user) else: project = None if (check_createProject): if (not newProject_name or not newProject_homeURL or not newProject_trackerURL): raise BaseException( 'all parameters for new project are required') projectHomeURLValidationError = validateURL(newProject_homeURL) if (projectHomeURLValidationError): raise BaseException('invalid project URL (' + newProject_homeURL + ') - ' + projectHomeURLValidationError) projectTrackerURLValidationError = validateURL( newProject_trackerURL) if (projectTrackerURLValidationError): raise BaseException('invalid project tracker URL (' + newProject_trackerURL + ') - ' + projectTrackerURLValidationError) project = Project.newProject(newProject_name, user, newProject_homeURL, newProject_trackerURL) else: project = Project.objects.get(pk=int(issue_projectId)) if (newProject_homeURL != project.homeURL): project.homeURL = newProject_homeURL if (not issue_key or not issue_title): raise BaseException('key and title are required') issueURLValidationError = validateIssueURL(issue_trackerURL) if (issueURLValidationError): raise BaseException('invalid issue URL (' + issue_trackerURL + ') - ' + issueURLValidationError) issue = Issue.newIssue(project, issue_key, issue_title, user, issue_trackerURL) return issue
def addIssue(request): try: offer = issue_services.add_new_issue_and_offer(request.POST, request.user) except BaseException as ex: return HttpResponse("ERROR: "+ex.message) params = '?a=s' if(dictOrEmpty(request.POST, 'invoke_parent_callback') == 'true'): params += '&c=s' # c = Callback (iframe javascript callback) return redirect(offer.get_view_link()+params)
def addIssueForm(request): trackerURL = dictOrEmpty(request.GET, 'trackerURL') operation = dictOrEmpty(request.GET, 'operation') if (trackerURL): issues = Issue.objects.filter(trackerURL__iexact=trackerURL) issue_already_exists = issues.count() >= 1 if (issues.count() > 1): logger.warning( "Database inconsistency: more than one issue found with url = %s" % trackerURL) if (issue_already_exists): return redirect(issues[0].get_view_link() + '?show_sponsor=true&c=s') return render_to_response('core/add_issue.html', { 'trackerURL': trackerURL, 'operation': operation, }, context_instance=RequestContext(request))
def editUserForm(request): userinfo = request.user.getUserInfo() if (not userinfo): userinfo = UserInfo.newUserInfo(request.user) userinfo.save() return render_to_response('core/useredit.html', { 'userinfo': userinfo, 'next': dictOrEmpty(request.GET, 'next') }, context_instance=RequestContext(request))
def viewUser(request, user_id): user = User.objects.get(pk=user_id) unconnectedSocialAccounts = None changedEmails = None if(user.id == request.user.id): unconnectedSocialAccounts = user_services.getUnconnectedSocialAccounts(user) alert_strings = user_services.getAlertsForViewUser(request.user, user, changedPrimaryEmail=dictOrEmpty(request.GET, 'prim') == 'true', changedPaypalEmail=dictOrEmpty(request.GET, 'payp') == 'true', emailVerified=dictOrEmpty(request.GET, 'email_verified') == 'true') for alert in alert_strings: messages.info(request, alert) context = {'le_user':user, 'stats': user.getStats(), 'unconnectedSocialAccounts':unconnectedSocialAccounts, } return render_to_response('core/user.html', context, context_instance = RequestContext(request))
def admail(request): if(request.user.is_superuser): mail_to = dictOrEmpty(request.POST, 'mail_to') if(mail_to): subject = dictOrEmpty(request.POST, 'subject') body = dictOrEmpty(request.POST, 'body') if(mail_to == 'some'): emails = dictOrEmpty(request.POST, 'emails').split(',') count = 0 for email in emails: plain_send_mail(email.strip(), subject, body) count += 1 elif(mail_to == 'all'): count = send_mail_to_all_users(subject, body) messages.info(request, 'mail sent to %s users'%count) else: messages.info(request, 'nice try :-). If you do find a hole, please have the finesse to let us know though.') return render_to_response('core/admail.html', {}, context_instance = RequestContext(request))
def addIssue(request): try: offer = issue_services.sponsor_new_issue(request.POST, request.user) watch_services.watch_issue(request.user, offer.issue.id, IssueWatch.SPONSORED) except BaseException as ex: return HttpResponse(_("ERROR: ")+ex.message) params = '?alert=SPONSOR' if(dictOrEmpty(request.POST, 'invoke_parent_callback') == 'true'): params += '&c=s' # c = Callback (iframe javascript callback) return redirect(offer.get_view_link()+params)
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 sponsorIssue(request): issue_id = int(request.POST['issue_id']) offer = issue_services.sponsor_existing_issue(issue_id, request.POST, request.user) invoke_parent_callback = dictOrEmpty(request.POST, 'invoke_parent_callback') if(invoke_parent_callback == 'true'): params = '?c=s' # c = Callback (iframe javascript callback) else: params = '?a=s' # a = Alert return redirect(offer.get_view_link()+params)
def bitcoinIPN(request): # logger.info('----- bitcoinIPN ------') value = Decimal(request.GET["value"]) * Decimal('1e-8') destination_address = request.GET["destination_address"] transaction_hash = request.GET["transaction_hash"] confirmations = int(request.GET["confirmations"]) logger.info("bitcoin IPN confirmation: host = %s(%s), value = %s, destination_address=%s, transaction_hash = %s, confirmations = %s" % (dictOrEmpty(request.META,'REMOTE_HOST'), dictOrEmpty(request.META,'REMOTE_ADDR'), value, destination_address, transaction_hash, confirmations)) if value > 0: bitcoin_frespo_services.bitcoin_ipn_received(value, destination_address, transaction_hash, confirmations) elif value < 0: bitcoin_frespo_services.bitcoin_ipn_sent(-value, destination_address, transaction_hash, confirmations) else : raise BaseException('Received 0 - value IPN confirmation') return HttpResponse("*ok*")
def _listIssues(request): project_id = request.GET.get('project_id') project_name = request.GET.get('project_name') search_terms = request.GET.get('s') operation = dictOrEmpty(request.GET, 'operation') is_public_suggestion = None if(operation == 'SPONSOR'): is_public_suggestion = False elif(operation == 'KICKSTART'): is_public_suggestion = True issues = issue_services.search_issues(project_id, project_name, search_terms, is_public_suggestion) return issues
def sponsorIssue(request): issue_id = int(request.POST['issue_id']) offer = issue_services.sponsor_existing_issue(issue_id, request.POST, request.user) watch_services.watch_issue(request.user, issue_id, IssueWatch.SPONSORED) invoke_parent_callback = dictOrEmpty(request.POST, 'invoke_parent_callback') if(invoke_parent_callback == 'true'): params = '?c=s' # c = Callback (iframe javascript callback) else: params = '?alert=SPONSOR' # a = Alert return redirect(offer.get_view_link()+params)
def listIssues(request): project_id = request.GET.get('project_id') project_name = request.GET.get('project_name') search_terms = request.GET.get('s') operation = dictOrEmpty(request.GET, 'operation') return render_to_response('core/issue_list.html', { 'issues': _listIssues(request), 's': search_terms, 'project_id': project_id, 'project_name': project_name, 'operation': operation, }, context_instance=RequestContext(request))
def _listIssues(request): project_id = request.GET.get('project_id') project_name = request.GET.get('project_name') search_terms = request.GET.get('s') operation = dictOrEmpty(request.GET, 'operation') is_public_suggestion = None if (operation == 'SPONSOR'): is_public_suggestion = False elif (operation == 'KICKSTART'): is_public_suggestion = True issues = issue_services.search_issues(project_id, project_name, search_terms, is_public_suggestion) return issues
def addIssue(request): try: offer = issue_services.sponsor_new_issue(request.POST, request.user) watch_services.watch_issue(request.user, offer.issue.id, IssueWatch.SPONSORED) except BaseException as ex: traceback.print_exc() return HttpResponse(_("ERROR: ") + ex.message) params = '?alert=SPONSOR' if (dictOrEmpty(request.POST, 'invoke_parent_callback') == 'true'): params += '&c=s' # c = Callback (iframe javascript callback) return redirect(offer.get_view_link() + params)
def listIssues(request): project_id = request.GET.get('project_id') project_name = request.GET.get('project_name') search_terms = request.GET.get('s') operation = dictOrEmpty(request.GET, 'operation') return render_to_response('core/issue_list.html', {'issues':_listIssues(request), 's':search_terms, 'project_id':project_id, 'project_name':project_name, 'operation':operation, }, 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 paypalReturn(request): current_payment_id = dictOrEmpty(request.session, 'current_payment_id') if(current_payment_id): curr_payment, msg = payment_services.payment_confirmed_web(current_payment_id) del request.session['current_payment_id'] logger.info('CONFIRM_WEB successful for payment %s'%curr_payment.id) else : msg = 'Session expired' curr_payment = None logger.warn('CONFIRM_WEB received while no payment in session. user = %s'%request.user.id) return render_to_response('core/paypal_confirmed.html', {'msg':msg, 'payment':curr_payment}, context_instance = RequestContext(request))
def sponsorIssue(request): issue_id = int(request.POST['issue_id']) issue = Issue.objects.get(pk = issue_id) offer = issue_services.sponsor_existing_issue(issue_id, request.POST, request.user) watch_services.watch_issue(request.user, issue_id, IssueWatch.SPONSORED) invoke_parent_callback = dictOrEmpty(request.POST, 'invoke_parent_callback') if(invoke_parent_callback == 'true'): params = '?c=s' # c = Callback (iframe javascript callback) else: params = '?alert=SPONSOR' # a = Alert if (issue.getSolutionsAcceptingPayments().count() > 0): messages.info(request, 'This issue is open for payments. You are free to choose: you can pay now, or you can wait until after the issue is finished. No pressure :-)') return redirect(offer.get_view_link()+params)
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/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 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 viewUser(request, user_id): user = User.objects.get(pk=user_id) unconnectedSocialAccounts = None changedEmails = None if (user.id == request.user.id): unconnectedSocialAccounts = user_services.getUnconnectedSocialAccounts( user) alert_strings = user_services.getAlertsForViewUser( request.user, user, changedPrimaryEmail=dictOrEmpty(request.GET, 'prim') == 'true', changedPaypalEmail=dictOrEmpty(request.GET, 'payp') == 'true', emailVerified=dictOrEmpty(request.GET, 'email_verified') == 'true') for alert in alert_strings: messages.info(request, alert) context = { 'le_user': user, 'stats': user.getStats(), 'unconnectedSocialAccounts': unconnectedSocialAccounts, } return render_to_response('core/user.html', context, context_instance=RequestContext(request))
def _buildOfferFromDictionary(dict, user): check_noProject = dict.has_key('noProject') issue_trackerURL = dict['trackerURL'] issue_projectId = dict['project_id'] issue_projectName = dictOrEmpty(dict, 'project_name') check_createProject = dict.has_key('createProject') newProject_name = dictOrEmpty(dict, 'newProjectName') newProject_homeURL = dictOrEmpty(dict, 'newProjectHomeURL') newProject_trackerURL = dictOrEmpty(dict, 'newProjectTrackerURL') issue_key = dictOrEmpty(dict, 'key'); issue_title = dictOrEmpty(dict, 'title'); issue_description = dictOrEmpty(dict, 'description'); _throwIfIssueExists(issue_trackerURL, user) issue = None if(check_noProject): if(not issue_title or not issue_description): raise BaseException('title and description are required') issue = Issue.newIssueOrphan(issue_title, issue_description, user) else: project = None if(check_createProject): if(not newProject_name or not newProject_homeURL or not newProject_trackerURL): raise BaseException('all parameters for new project are required') projectHomeURLValidationError = validateURL(newProject_homeURL) if(projectHomeURLValidationError): raise BaseException('invalid project URL ('+newProject_homeURL+') - '+projectHomeURLValidationError) projectTrackerURLValidationError = validateURL(newProject_trackerURL) if(projectTrackerURLValidationError): raise BaseException('invalid project tracker URL ('+newProject_trackerURL+') - '+projectTrackerURLValidationError) project = Project.newProject(newProject_name, user, newProject_homeURL, newProject_trackerURL) else: project = Project.objects.get(pk=int(issue_projectId)) if(newProject_homeURL != project.homeURL): project.homeURL = newProject_homeURL if(not issue_key or not issue_title): raise BaseException('key and title are required') issueURLValidationError = validateIssueURL(issue_trackerURL) if(issueURLValidationError): raise BaseException('invalid issue URL ('+issue_trackerURL+') - '+issueURLValidationError) issue = Issue.newIssue(project, issue_key, issue_title, user, issue_trackerURL) return _buildOfferFromDictionary_and_issue(dict, user, issue);
def editUser(request): paypalActivation, primaryActivation = user_services.edit_existing_user(request.user, request.POST) next = dictOrEmpty(request.POST, 'next') if(next): return redirect(next) else: params = [] if(primaryActivation): params.append("prim=true") if(paypalActivation): params.append("payp=true") params = '&'.join(params) if(params): params = '?'+params return redirect(request.user.get_view_link()+params)
def paypalReturn(request): current_payment_id = dictOrEmpty(request.session, 'current_payment_id') if(current_payment_id): curr_payment, msg = paypal_services.payment_confirmed_web(current_payment_id) del request.session['current_payment_id'] logger.info('CONFIRM_WEB successful for payment %s'%curr_payment.id) else : msg = _('Session expired') curr_payment = None logger.warn('CONFIRM_WEB received while no payment in session. user = %s'%request.user.id) messages.warning(request, "Your payment is being processed. You'll receive an email when your payment is confirmed.") # return render_to_response('core/paypal_confirmed.html', # {'msg':msg, # 'payment':curr_payment}, # context_instance = RequestContext(request)) return redirect(curr_payment.offer.issue.get_view_link())
def edit_existing_user(user, dict): userinfo = user.getUserInfo() userinfo.screenName = dict['screenName'] userinfo.website = dict['website'] userinfo.about = dict['about'] userinfo.realName = dict['realName'] userinfo.receiveAllEmail = dict.has_key('receiveAllEmail') userinfo.brazilianPaypal = dict.has_key('brazilianPaypal') newEmail = dict['primaryEmail'] newPaypalEmail = dictOrEmpty(dict, 'paypalEmail') if (not newPaypalEmail): newPaypalEmail = newEmail primaryActivation = _changePrimaryEmailIfNeeded(userinfo, newEmail) paypalActivation = _changePaypalEmailIfNeeded(userinfo, newPaypalEmail) userinfo.save() return paypalActivation, primaryActivation
def editUser(request): paypalActivation, primaryActivation = user_services.edit_existing_user(request.user, request.POST) next = dictOrEmpty(request.POST, _("next")) if next: return redirect(next) else: params = [] if primaryActivation: params.append("prim=true") if paypalActivation: params.append("payp=true") params = "&".join(params) if params: params = "?" + params return redirect(request.user.get_view_link() + params)
def edit_existing_user(user, dict): userinfo = user.getUserInfo() userinfo.screenName = dict['screenName'] userinfo.website = dict['website'] userinfo.about = dict['about'] userinfo.realName = dict['realName'] userinfo.receiveAllEmail = dict.has_key('receiveAllEmail') userinfo.brazilianPaypal = dict.has_key('brazilianPaypal') newEmail = dict['primaryEmail'] newPaypalEmail = dictOrEmpty(dict, 'paypalEmail') if(not newPaypalEmail): newPaypalEmail = newEmail primaryActivation = _changePrimaryEmailIfNeeded(userinfo, newEmail) paypalActivation = _changePaypalEmailIfNeeded(userinfo, newPaypalEmail) userinfo.save() return paypalActivation, primaryActivation
def editUserForm(request): userinfo = request.user.getUserInfo() available_languages = [ {'code':'en', 'label':_('English')}, {'code':'pt-br', 'label':_('Brazilian Portuguese')}, {'code':'es', 'label':_('Spanish')}, ] if(not userinfo): userinfo = UserInfo.newUserInfo(request.user) userinfo.save() mail_services.welcome(request.user) _notify_admin_new_user(request.user) return render_to_response('core/useredit.html', {'userinfo':userinfo, 'available_languages' : available_languages, 'next':dictOrEmpty(request.GET, 'next')}, context_instance = RequestContext(request))
def edit_existing_user(user, dict): userinfo = user.getUserInfo() userinfo.screenName = dict["screenName"] userinfo.website = dict["website"] userinfo.about = dict["about"] userinfo.realName = dict["realName"] userinfo.receiveAllEmail = dict.has_key("receiveAllEmail") userinfo.brazilianPaypal = dict.has_key("brazilianPaypal") userinfo.hide_from_userlist = dict.has_key("hide_from_userlist") newEmail = dict["primaryEmail"] newPaypalEmail = dictOrEmpty(dict, "paypalEmail") if not newPaypalEmail: newPaypalEmail = newEmail primaryActivation = _changePrimaryEmailIfNeeded(userinfo, newEmail) paypalActivation = _changePaypalEmailIfNeeded(userinfo, newPaypalEmail) userinfo.save() return paypalActivation, primaryActivation
def editUser(request): paypalActivation, primaryActivation = user_services.edit_existing_user( request.user, request.POST) next = dictOrEmpty(request.POST, _('next')) if (next): return redirect(next) else: params = [] if (primaryActivation): params.append("prim=true") if (paypalActivation): params.append("payp=true") params = '&'.join(params) if (params): params = '?' + params return redirect(request.user.get_view_link() + params)
def editUserForm(request): userinfo = request.user.getUserInfo() available_languages = [ {"code": "en", "label": _("English")}, {"code": "pt-br", "label": _("Brazilian Portuguese")}, {"code": "es", "label": _("Spanish")}, ] if not userinfo: userinfo = UserInfo.newUserInfo(request.user) userinfo.save() mail_services.welcome(request.user) _notify_admin_new_user(request.user) return render_to_response( "core/useredit.html", {"userinfo": userinfo, "available_languages": available_languages, "next": dictOrEmpty(request.GET, "next")}, context_instance=RequestContext(request), )
def payOffer(request, offer, payment): current_payment_id = dictOrEmpty(request.session, 'current_payment_id') if(current_payment_id): paypal_services.forget_payment(int(current_payment_id)) paypal_adapter.generate_paypal_payment(payment) payment.save() request.session['current_payment_id'] = payment.id if(settings.PAYPAL_USE_SANDBOX): # form_action = 'https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay' redirect_url = 'https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=%s' % payment.paykey else: # form_action = 'https://www.paypal.com/webapps/adaptivepayment/flow/pay' redirect_url = 'https://www.paypal.com/webscr?cmd=_ap-payment&paykey=%s' % payment.paykey return redirect(redirect_url)
def paypalReturn(request): current_payment_id = dictOrEmpty(request.session, 'current_payment_id') if (current_payment_id): curr_payment, msg = payment_services.payment_confirmed_web( current_payment_id) del request.session['current_payment_id'] logger.info('CONFIRM_WEB successful for payment %s' % curr_payment.id) else: msg = 'Session expired' curr_payment = None logger.warn( 'CONFIRM_WEB received while no payment in session. user = %s' % request.user.id) return render_to_response('core/paypal_confirmed.html', { 'msg': msg, 'payment': curr_payment }, context_instance=RequestContext(request))
def listIssues(request): project_id = request.GET.get('project_id') project_name = request.GET.get('project_name') search_terms = request.GET.get('s') operation = dictOrEmpty(request.GET, 'operation') is_public_suggestion = None if(operation == 'SPONSOR'): is_public_suggestion = False elif(operation == 'KICKSTART'): is_public_suggestion = True issues = issue_services.search_issues(project_id, project_name, search_terms, is_public_suggestion) return render_to_response('core/issue_list.html', {'issues':issues, 's':search_terms, 'project_id':project_id, 'project_name':project_name, 'operation':operation, }, context_instance = RequestContext(request))
def edit_existing_user(user, dict): userinfo = user.getUserInfo() userinfo.screenName = dict['screenName'] userinfo.website = dict['website'] userinfo.about = dict['about'] userinfo.realName = dict['realName'] userinfo.receiveAllEmail = dict.has_key('receiveAllEmail') userinfo.brazilianPaypal = dict.has_key('brazilianPaypal') userinfo.hide_from_userlist = dict.has_key('hide_from_userlist') userinfo.preferred_language_code = dict['preferred_language_code'] if(settings.BITCOIN_ENABLED): userinfo.bitcoin_receive_address = dict['bitcoin_receive_address'] newEmail = dict['primaryEmail'] newPaypalEmail = dictOrEmpty(dict, 'paypalEmail') if(not newPaypalEmail): newPaypalEmail = newEmail primaryActivation = _changePrimaryEmailIfNeeded(userinfo, newEmail) paypalActivation = _changePaypalEmailIfNeeded(userinfo, newPaypalEmail) userinfo.save() return paypalActivation, primaryActivation
def sponsorIssue(request): issue_id = int(request.POST['issue_id']) issue = Issue.objects.get(pk=issue_id) offer = issue_services.sponsor_existing_issue(issue_id, request.POST, request.user) watch_services.watch_issue(request.user, issue_id, IssueWatch.SPONSORED) invoke_parent_callback = dictOrEmpty(request.POST, 'invoke_parent_callback') if (invoke_parent_callback == 'true'): params = '?c=s' # c = Callback (iframe javascript callback) else: params = '?alert=SPONSOR' # a = Alert if (issue.getSolutionsAcceptingPayments().count() > 0): messages.info( request, 'This issue is open for payments. You are free to choose: you can pay now, or you can wait until after the issue is finished. No pressure :-)' ) return redirect(offer.get_view_link() + params)
def paypalReturn(request): current_payment_id = dictOrEmpty(request.session, 'current_payment_id') if (current_payment_id): curr_payment, msg = paypal_services.payment_confirmed_web( current_payment_id) del request.session['current_payment_id'] logger.info('CONFIRM_WEB successful for payment %s' % curr_payment.id) else: msg = _('Session expired') curr_payment = None logger.warn( 'CONFIRM_WEB received while no payment in session. user = %s' % request.user.id) messages.warning( request, "Your payment is being processed. You'll receive an email when your payment is confirmed." ) # return render_to_response('core/paypal_confirmed.html', # {'msg':msg, # 'payment':curr_payment}, # context_instance = RequestContext(request)) return redirect(curr_payment.offer.issue.get_view_link())
def payOffer(request): offer_id = int(request.POST['offer_id']) count = int(request.POST['count']) current_payment_id = dictOrEmpty(request.session, 'current_payment_id') if (current_payment_id): payment_services.forget_payment(int(current_payment_id)) offer, payment = payment_services.generate_payment(offer_id, count, request.POST, request.user) request.session['current_payment_id'] = payment.id if (settings.PAYPAL_USE_SANDBOX): form_action = 'https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay' else: form_action = 'https://www.paypal.com/webapps/adaptivepayment/flow/pay' return render_to_response('core/waitPayment.html', { 'offer': offer, 'paykey': payment.paykey, 'form_action': form_action }, context_instance=RequestContext(request))
def payOffer(request, offer, payment): current_payment_id = dictOrEmpty(request.session, 'current_payment_id') if (current_payment_id): paypal_services.forget_payment(int(current_payment_id)) try: paypal_adapter.generate_paypal_payment(payment) except BaseException as e: traceback.print_exc() messages.error(request, 'Error communicating with Paypal: %s' % e) mail_services.notify_admin('Error generating paypal payment', traceback.format_exc()) return redirect(offer.get_view_link()) payment.save() request.session['current_payment_id'] = payment.id if (settings.PAYPAL_USE_SANDBOX): # form_action = 'https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay' redirect_url = 'https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=%s' % payment.paykey else: # form_action = 'https://www.paypal.com/webapps/adaptivepayment/flow/pay' redirect_url = 'https://www.paypal.com/webscr?cmd=_ap-payment&paykey=%s' % payment.paykey return redirect(redirect_url)