コード例 #1
0
    def successful_contribution(self, tx_id):
        """Create a contribution object."""
        from marketing.mails import successful_contribution
        self.last_contribution_date = timezone.now()
        self.next_contribution_date = timezone.now() + timedelta(
            0, int(self.real_period_seconds))
        self.num_tx_processed += 1
        contribution_kwargs = {'tx_id': tx_id, 'subscription': self}
        contribution = Contribution.objects.create(**contribution_kwargs)
        grant = self.grant

        value_usdt = self.get_converted_amount()
        if value_usdt:
            self.amount_per_period_usdt = value_usdt
            grant.amount_received += Decimal(value_usdt)

        if self.num_tx_processed == self.num_tx_approved and value_usdt:
            grant.monthly_amount_subscribed -= self.get_converted_monthly_amount(
            )
            self.active = False

        self.save()
        grant.updateActiveSubscriptions()
        grant.save()
        successful_contribution(self.grant, self, contribution)
        return contribution
コード例 #2
0
ファイル: models.py プロジェクト: chadf1472/web
    def successful_contribution(self, tx_id):
        """Create a contribution object."""
        from marketing.mails import successful_contribution
        self.last_contribution_date = timezone.now()
        self.next_contribution_date = timezone.now() + timedelta(
            0, round(self.real_period_seconds))
        self.save()
        contribution_kwargs = {'tx_id': tx_id, 'subscription': self}
        contribution = Contribution.objects.create(**contribution_kwargs)
        grant = self.grant
        value_usdt = self.value_usdt
        if value_usdt:
            grant.amount_received += value_usdt

        grant.save()
        successful_contribution(self.grant, self, contribution)
        return contribution
コード例 #3
0
def record_contribution_activity(contribution):
    from dashboard.models import Activity
    from marketing.mails import new_supporter, thank_you_for_supporting, successful_contribution
    from grants.tasks import update_grant_metadata

    try:
        event_name = 'new_grant_contribution'

        subscription = contribution.subscription
        grant = subscription.grant

        metadata = {
            'id': subscription.id,
            'value_in_token': str(subscription.amount_per_period),
            'value_in_usdt_now':
            str(round(subscription.amount_per_period_usdt, 2)),
            'token_name': subscription.token_symbol,
            'title': subscription.grant.title,
            'grant_url': subscription.grant.url,
            'num_tx_approved': round(subscription.num_tx_approved),
            'category': 'grant',
        }

        kwargs = {
            'activity_type': event_name,
            'grant': grant,
            'subscription': subscription,
            'profile': subscription.contributor_profile,
            'metadata': metadata
        }

        activity = Activity.objects.create(**kwargs)
        if subscription.comments and activity:
            Comment.objects.create(profile=subscription.contributor_profile,
                                   activity=activity,
                                   comment=subscription.comments)

        successful_contribution(grant, subscription, contribution)
        new_supporter(grant, subscription)
        thank_you_for_supporting(grant, subscription)
        update_grant_metadata.delay(grant.pk)

    except Exception as e:
        logger.error(
            f"error in record_contribution_activity: {e} - {contribution}")
コード例 #4
0
 def successful_contribution(self, kwargs):
     """Create a contribution object."""
     from marketing.mails import successful_contribution
     self.last_contribution_date = timezone.now()
     self.next_contribution_date = timezone.now() + timezone.timedelta(seconds=self.real_period_seconds)
     self.save()
     contribution_kwargs = {
         'tx_id': kwargs.tx_id,
         'gas_price': kwargs.gas_price,
         'nonce': kwargs.nonce,
         'subscription': self
     }
     contribution = Contribution.objects.create(**contribution_kwargs)
     grant = self.grant
     grant.amount_received = (grant.amount_received + convert_amount(self.amount_per_period, self.token_symbol, "USDT", timezone.now()))
     grant.save()
     successful_contribution(self.grant, self)
     return contribution
コード例 #5
0
    def create_contribution(self, tx_id, is_successful_contribution=True):
        from marketing.mails import successful_contribution
        from grants.tasks import update_grant_metadata

        now = timezone.now()
        self.last_contribution_date = now
        self.next_contribution_date = now

        self.num_tx_processed += 1

        contribution = Contribution()

        contribution.success = False
        contribution.tx_cleared = False
        contribution.subscription = self
        contribution.split_tx_id = self.split_tx_id
        contribution.split_tx_confirmed = self.split_tx_confirmed

        if tx_id:
            contribution.tx_id = tx_id

        contribution.save()
        grant = self.grant

        value_usdt = self.get_converted_amount(False)
        if value_usdt:
            self.amount_per_period_usdt = value_usdt
            grant.amount_received += Decimal(value_usdt)

        if self.num_tx_processed == self.num_tx_approved and value_usdt:
            grant.monthly_amount_subscribed -= self.get_converted_monthly_amount(
            )
            self.active = False

        self.save()
        grant.updateActiveSubscriptions()
        grant.save()
        if is_successful_contribution:
            successful_contribution(self.grant, self, contribution)

        update_grant_metadata.delay(self.pk)
        return contribution