예제 #1
0
    def save_promise(self, data):
        form = NewPromiseForm(data)
        if form.is_valid():
            new_promise = form.process(self.request)
            key = get_promise_key(self.request.user.profile.id)
            redis_connection.lpush(key, new_promise.id)

            # Posting to facebook
            if data.get('facebook_share') == 'on':
                post_data = social(new_promise, self.request.user.profile)
                msg = (u'I just created a promise on Promise.ly: '
                       u'{post_description}. Please support me! {link}')
                self.request.user.profile.wall_post(
                    self.request, msg.format(**post_data))

            # Logging stuff
            logger.log('promise', data={
                'creator_id': new_promise.creator.id,
                'promise_id': new_promise.id,
            })
            return new_promise
예제 #2
0
    def get(self, request, promise_id, next_url=None):
        """
        Adds a supporter, making sure not to duplicate.
        """
        promise = Promise.objects.get(id=promise_id)
        supporter = Profile.objects.get(id=self.request.user.profile.id)
        if supporter != promise.creator and supporter not in promise.supporter.all():
            promise.supporter.add(supporter)
            self.update_redis(promise.id)
            logger.log('support', data={'supporter_id': supporter.id, 'promise_id': promise.id})

            # Posting to facebook
            post_data = {
                'creator': promise.creator.name,
                'link': promise.get_absolute_url()}
            msg = (u'I just supported {creator}\'s promise on Promise.ly! '
                   u'Give your support, too. {link}')
            self.request.user.profile.wall_post(
                self.request, msg.format(**post_data))

        return HttpResponseRedirect(next_url or reverse('promise', args=[promise.slug]))
예제 #3
0
def create_profile(sender, instance, created, **kwargs):
    if created:
        from event.logging import logger
        Profile.objects.create(user=instance)
        logger.log('signup')