def response_change(self, request, obj): from django.shortcuts import redirect if "_reject_kudos" in request.POST: from marketing.mails import notify_kudos_rejected notify_kudos_rejected(obj) self.message_user(request, f"Notified user of rejection") return redirect( '/_administrationkudos/tokenrequest/?approved=f&rejection_reason=' ) if "_change_owner" in request.POST or request.POST.get( '_change_owner_mint_kudos', False): obj.to_address = '0x6239FF1040E412491557a7a02b2CBcC5aE85dc8F' obj.save() self.message_user(request, f"Changed owner to gitcoin") if "_mint_kudos" in request.POST or request.POST.get( '_change_owner_mint_kudos', False): from kudos.tasks import mint_token_request try: obj.rejection_reason = 'n/a' obj.save() mint_token_request.delay(obj.id) self.message_user(request, f"Mint/sync submitted to chain") except Exception as e: self.message_user(request, str(e)) return redirect( '/_administrationkudos/tokenrequest/?approved=f&rejection_reason=' ) return redirect(obj.admin_url)
def response_change(self, request, obj): if "_mint_kudos" in request.POST: from kudos.tasks import mint_token_request try: mint_token_request.delay(obj.id) self.message_user(request, f"Mint/sync submitted to chain") except Exception as e: self.message_user(request, str(e)) if "_change_owner" in request.POST: obj.to_address = '0x6239FF1040E412491557a7a02b2CBcC5aE85dc8F' obj.save() self.message_user(request, f"Changed owner to gitcoin") return super().response_change(request, obj)
def newkudos(request): context = { 'active': 'newkudos', 'msg': None, 'nav': 'kudos', 'title': "Mint new Kudos", 'avatar_url': request.build_absolute_uri( static('v2/images/twitter_cards/tw_cards-06.png')), } if not request.user.is_authenticated: login_redirect = redirect('/login/github/?next=' + request.get_full_path()) return login_redirect if request.POST: required_fields = [ 'name', 'description', 'priceFinney', 'artist', 'platform', 'numClonesAllowed', 'tags', 'to_address' ] validation_passed = True for key in required_fields: if not request.POST.get(key): context['msg'] = str( _('You must provide the following fields: ')) + key validation_passed = False if validation_passed: #upload to s3 img = request.FILES.get('photo') session = boto3.Session( aws_access_key_id=settings.AWS_ACCESS_KEY_ID, aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY, ) s3 = session.resource('s3') key = f'media/uploads/{uuid.uuid4()}_{img.name}' response = s3.Bucket(settings.MEDIA_BUCKET).put_object( Key=key, Body=img, ACL='public-read', ContentType='image/svg+xml') artwork_url = f'https://{settings.MEDIA_BUCKET}.s3-us-west-2.amazonaws.com/{key}' # save / send email obj = TokenRequest.objects.create( profile=request.user.profile, name=request.POST['name'], description=request.POST['description'], priceFinney=request.POST['priceFinney'], artist=request.POST['artist'], bounty_url=request.POST['bounty_url'], platform=request.POST['platform'], numClonesAllowed=request.POST['numClonesAllowed'], tags=request.POST['tags'].split(","), to_address=request.POST['to_address'], artwork_url=artwork_url, network='xdai', approved=False, metadata={ 'ip': get_ip(request), 'email': request.POST.get('email'), 'pay_gas': request.POST.get('pay_gas', 0), }) new_kudos_request(obj) context['msg'] = str( _('Your Kudos has been submitted and will be listed within 2 business days if it is accepted.' )) if request.user.is_staff: if request.POST.get('mint_and_sync'): from kudos.tasks import mint_token_request mint_token_request.delay(obj.id) context['msg'] = str(_('Kudos mint/sync submitted')) return TemplateResponse(request, 'newkudos.html', context)