Exemplo n.º 1
0
def process_grant_creation_email(self, grant_id, profile_id):
    try:
        grant = Grant.objects.get(pk=grant_id)
        profile = Profile.objects.get(pk=profile_id)

        new_grant(grant, profile)
    except Exception as e:
        print(e)
Exemplo n.º 2
0
def grant_new(request):
    """Handle new grant."""
    if not request.user.has_perm('grants.add_grant'):
        messages.info(request, _('You do not have permission to add a grant.'))
        return redirect(reverse('grants:grants'))

    profile = request.user.profile if request.user.is_authenticated and request.user.profile else None

    if request.method == 'POST':
        logo = request.FILES.get('input_image', None)
        receipt = json.loads(request.POST.get('receipt', '{}'))
        team_members = request.POST.getlist('team_members[]')
        print('team_members: ', team_members, dir(team_members))

        grant_kwargs = {
            'title': request.POST.get('input_title', ''),
            'description': request.POST.get('description', ''),
            'reference_url': request.POST.get('reference_url', ''),
            'admin_address': request.POST.get('admin_address', ''),
            'token_address': request.POST.get('denomination', ''),
            'token_symbol': request.POST.get('token_symbol', ''),
            'amount_goal': request.POST.get('amount_goal', 1),
            'contract_version': request.POST.get('contract_version', ''),
            'transaction_hash': request.POST.get('transaction_hash', ''),
            'contract_address': request.POST.get('contract_address', ''),
            'network': request.POST.get('network', 'mainnet'),
            'metadata': receipt,
            'admin_profile': profile,
            'logo': logo,
        }
        grant = Grant.objects.create(**grant_kwargs)
        new_grant(grant, profile)

        team_members.append(profile.id)
        grant.team_members.add(*list(
            filter(lambda member_id: member_id > 0, map(int, team_members))))
        return redirect(reverse('grants:details', args=(grant.pk, grant.slug)))

    params = {
        'active':
        'new_grant',
        'title':
        _('New Grant'),
        'card_desc':
        _('Provide sustainable funding for Open Source with Gitcoin Grants'),
        'profile':
        profile,
        'grant': {},
        'keywords':
        get_keywords()
    }

    return TemplateResponse(request, 'grants/new.html', params)
Exemplo n.º 3
0
def grant_new_v0(request):
    """Create a v0 version of a grant contract."""
    profile = get_profile(request)

    if request.method == 'POST':
        if 'title' in request.POST:
            logo = request.FILES.get('input_image', None)
            receipt = json.loads(request.POST.get('receipt', '{}'))
            team_members = request.POST.getlist('team_members[]')

            grant_kwargs = {
                'title': request.POST.get('title', ''),
                'description': request.POST.get('description', ''),
                'reference_url': request.POST.get('reference_url', ''),
                'admin_address': request.POST.get('admin_address', ''),
                'contract_owner_address': request.POST.get('contract_owner_address', ''),
                'token_address': request.POST.get('token_address', ''),
                'token_symbol': request.POST.get('token_symbol', ''),
                'amount_goal': request.POST.get('amount_goal', 1),
                'contract_version': request.POST.get('contract_version', ''),
                'deploy_tx_id': request.POST.get('transaction_hash', ''),
                'network': request.POST.get('network', 'mainnet'),
                'metadata': receipt,
                'admin_profile': profile,
                'logo': logo,
            }
            grant = Grant.objects.create(**grant_kwargs)

            team_members = (team_members[0].split(','))
            team_members.append(profile.id)
            team_members = list(set(team_members))

            for i in range(0, len(team_members)):
                team_members[i] = int(team_members[i])

            grant.team_members.add(*team_members)
            grant.save()

            return JsonResponse({
                'success': True,
            })

        if 'contract_address' in request.POST:
            tx_hash = request.POST.get('transaction_hash', '')
            if not tx_hash:
                return JsonResponse({
                    'success': False,
                    'info': 'no tx hash',
                    'url': None,
                })

            grant = Grant.objects.filter(deploy_tx_id=tx_hash).first()
            grant.contract_address = request.POST.get('contract_address', '')
            print(tx_hash, grant.contract_address)
            grant.save()
            record_grant_activity_helper('new_grant', grant, profile)
            new_grant(grant, profile)
            return JsonResponse({
                'success': True,
                'url': reverse('grants:details', args=(grant.pk, grant.slug))
            })


    params = {
        'active': 'new_grant',
        'title': _('New Grant'),
        'card_desc': _('Provide sustainable funding for Open Source with Gitcoin Grants'),
        'profile': profile,
        'grant': {},
        'keywords': get_keywords(),
        'recommend_gas_price': recommend_min_gas_price_to_confirm_in_time(4),
        'recommend_gas_price_slow': recommend_min_gas_price_to_confirm_in_time(120),
        'recommend_gas_price_avg': recommend_min_gas_price_to_confirm_in_time(15),
        'recommend_gas_price_fast': recommend_min_gas_price_to_confirm_in_time(1),
        'eth_usd_conv_rate': eth_usd_conv_rate(),
        'conf_time_spread': conf_time_spread(),
        'gas_advisories': gas_advisories(),
        'trusted_relayer': settings.GRANTS_OWNER_ACCOUNT
    }

    return TemplateResponse(request, 'grants/newv0.html', params)
Exemplo n.º 4
0
def grant_new(request):
    """Handle new grant."""
    if not request.user.has_perm('grants.add_grant'):
        messages.info(
            request,
            _('Grants is still in beta. To create a Grant ping us at [email protected]'
              ))
        return redirect(reverse('grants:grants'))

    profile = get_profile(request)

    if request.method == 'POST':
        logo = request.FILES.get('input_image', None)
        receipt = json.loads(request.POST.get('receipt', '{}'))
        team_members = request.POST.getlist('team_members[]')

        grant_kwargs = {
            'title':
            request.POST.get('input_title', ''),
            'description':
            request.POST.get('description', ''),
            'reference_url':
            request.POST.get('reference_url', ''),
            'admin_address':
            request.POST.get('admin_address', ''),
            'contract_owner_address':
            request.POST.get('contract_owner_address', ''),
            'token_address':
            request.POST.get('denomination', ''),
            'token_symbol':
            request.POST.get('token_symbol', ''),
            'amount_goal':
            request.POST.get('amount_goal', 1),
            'contract_version':
            request.POST.get('contract_version', ''),
            'deploy_tx_id':
            request.POST.get('transaction_hash', ''),
            'contract_address':
            request.POST.get('contract_address', ''),
            'network':
            request.POST.get('network', 'mainnet'),
            'metadata':
            receipt,
            'admin_profile':
            profile,
            'logo':
            logo,
        }
        grant = Grant.objects.create(**grant_kwargs)
        new_grant(grant, profile)

        team_members.append(profile.id)
        grant.team_members.add(*list(
            filter(lambda member_id: member_id > 0, map(int, team_members))))
        return redirect(reverse('grants:details', args=(grant.pk, grant.slug)))

    params = {
        'active':
        'new_grant',
        'title':
        _('New Grant'),
        'card_desc':
        _('Provide sustainable funding for Open Source with Gitcoin Grants'),
        'profile':
        profile,
        'grant': {},
        'keywords':
        get_keywords(),
        'recommend_gas_price':
        recommend_min_gas_price_to_confirm_in_time(4),
        'recommend_gas_price_slow':
        recommend_min_gas_price_to_confirm_in_time(120),
        'recommend_gas_price_avg':
        recommend_min_gas_price_to_confirm_in_time(15),
        'recommend_gas_price_fast':
        recommend_min_gas_price_to_confirm_in_time(1),
        'eth_usd_conv_rate':
        eth_usd_conv_rate(),
        'conf_time_spread':
        conf_time_spread(),
        'gas_advisories':
        gas_advisories(),
    }

    return TemplateResponse(request, 'grants/new.html', params)
Exemplo n.º 5
0
def grant_new(request):
    """Handle new grant."""
    profile = get_profile(request)

    if request.method == 'POST':
        if 'title' in request.POST:
            logo = request.FILES.get('input_image', None)
            receipt = json.loads(request.POST.get('receipt', '{}'))
            team_members = request.POST.getlist('team_members[]')
            grant_type = request.POST.get('grant_type', 'tech')

            grant_kwargs = {
                'title':
                request.POST.get('title', ''),
                'description':
                request.POST.get('description', ''),
                'description_rich':
                request.POST.get('description_rich', ''),
                'reference_url':
                request.POST.get('reference_url', ''),
                'admin_address':
                request.POST.get('admin_address', ''),
                'contract_owner_address':
                request.POST.get('contract_owner_address', ''),
                'token_address':
                request.POST.get('token_address', ''),
                'token_symbol':
                request.POST.get('token_symbol', ''),
                'contract_version':
                request.POST.get('contract_version', ''),
                'deploy_tx_id':
                request.POST.get('transaction_hash', ''),
                'network':
                request.POST.get('network', 'mainnet'),
                'twitter_handle_1':
                request.POST.get('handle1', ''),
                'twitter_handle_2':
                request.POST.get('handle2', ''),
                'metadata':
                receipt,
                'last_update':
                timezone.now(),
                'admin_profile':
                profile,
                'logo':
                logo,
                'hidden':
                False,
                'clr_prediction_curve': [[0.0, 0.0, 0.0] for x in range(0, 6)],
                'grant_type':
                grant_type
            }
            grant = Grant.objects.create(**grant_kwargs)
            new_grant_admin(grant)

            team_members = (team_members[0].split(','))
            team_members.append(profile.id)
            team_members = list(set(team_members))

            team_members = [int(i) for i in team_members if i != '']

            grant.team_members.add(*team_members)
            grant.save()

            form_category_ids = request.POST.getlist('categories[]')
            form_category_ids = (form_category_ids[0].split(','))
            form_category_ids = list(set(form_category_ids))

            add_form_categories_to_grant(form_category_ids, grant, grant_type)

            messages.info(
                request,
                _('Thank you for posting this Grant.  Share the Grant URL with your friends/followers to raise your first tokens.'
                  ))
            grant.save()
            record_grant_activity_helper('new_grant', grant, profile)
            new_grant(grant, profile)

            return JsonResponse({
                'success': True,
                'url': grant.url,
            })

    params = {
        'active':
        'new_grant',
        'title':
        _('New Grant'),
        'card_desc':
        _('Provide sustainable funding for Open Source with Gitcoin Grants'),
        'profile':
        profile,
        'grant': {},
        'keywords':
        get_keywords(),
        'recommend_gas_price':
        recommend_min_gas_price_to_confirm_in_time(4),
        'recommend_gas_price_slow':
        recommend_min_gas_price_to_confirm_in_time(120),
        'recommend_gas_price_avg':
        recommend_min_gas_price_to_confirm_in_time(15),
        'recommend_gas_price_fast':
        recommend_min_gas_price_to_confirm_in_time(1),
        'eth_usd_conv_rate':
        eth_usd_conv_rate(),
        'conf_time_spread':
        conf_time_spread(),
        'gas_advisories':
        gas_advisories(),
        'trusted_relayer':
        settings.GRANTS_OWNER_ACCOUNT
    }
    return TemplateResponse(request, 'grants/new.html', params)
Exemplo n.º 6
0
Arquivo: tasks.py Projeto: ankitzm/web
def process_grant_creation_email(self, grant_id, profile_id):
    grant = Grant.objects.get(pk=grant_id)
    profile = Profile.objects.get(pk=profile_id)

    new_grant(grant, profile)
Exemplo n.º 7
0
def grant_new(request):
    """Handle new grant."""
    if not request.user.has_perm('grants.add_grant'):
        return redirect('https://gitcoin.typeform.com/to/C2IocD')

    profile = get_profile(request)

    if request.method == 'POST':
        if 'title' in request.POST:
            logo = request.FILES.get('input_image', None)
            receipt = json.loads(request.POST.get('receipt', '{}'))
            team_members = request.POST.getlist('team_members[]')

            grant_kwargs = {
                'title':
                request.POST.get('title', ''),
                'description':
                request.POST.get('description', ''),
                'reference_url':
                request.POST.get('reference_url', ''),
                'admin_address':
                request.POST.get('admin_address', ''),
                'contract_owner_address':
                request.POST.get('contract_owner_address', ''),
                'token_address':
                request.POST.get('token_address', ''),
                'token_symbol':
                request.POST.get('token_symbol', ''),
                'amount_goal':
                request.POST.get('amount_goal', 1),
                'contract_version':
                request.POST.get('contract_version', ''),
                'deploy_tx_id':
                request.POST.get('transaction_hash', ''),
                'network':
                request.POST.get('network', 'mainnet'),
                'metadata':
                receipt,
                'admin_profile':
                profile,
                'logo':
                logo,
            }
            grant = Grant.objects.create(**grant_kwargs)
            team_members.append(profile.id)
            grant.team_members.add(*list(
                filter(lambda member_id: member_id > 0, map(int,
                                                            team_members))))
            return JsonResponse({
                'success': True,
            })

        if 'contract_address' in request.POST:
            tx_hash = request.POST.get('transaction_hash', '')
            if not tx_hash:
                return JsonResponse({
                    'success': False,
                    'info': 'no tx hash',
                    'url': None,
                })

            grant = Grant.objects.filter(deploy_tx_id=tx_hash).first()
            grant.contract_address = request.POST.get('contract_address', '')
            print(tx_hash, grant.contract_address)
            grant.save()
            record_grant_activity_helper('new_grant', grant, profile)
            new_grant(grant, profile)
            return JsonResponse({
                'success':
                True,
                'url':
                reverse('grants:details', args=(grant.pk, grant.slug))
            })

    params = {
        'active':
        'new_grant',
        'title':
        _('New Grant'),
        'card_desc':
        _('Provide sustainable funding for Open Source with Gitcoin Grants'),
        'profile':
        profile,
        'grant': {},
        'keywords':
        get_keywords(),
        'recommend_gas_price':
        recommend_min_gas_price_to_confirm_in_time(4),
        'recommend_gas_price_slow':
        recommend_min_gas_price_to_confirm_in_time(120),
        'recommend_gas_price_avg':
        recommend_min_gas_price_to_confirm_in_time(15),
        'recommend_gas_price_fast':
        recommend_min_gas_price_to_confirm_in_time(1),
        'eth_usd_conv_rate':
        eth_usd_conv_rate(),
        'conf_time_spread':
        conf_time_spread(),
        'gas_advisories':
        gas_advisories(),
    }

    return TemplateResponse(request, 'grants/new.html', params)