Esempio n. 1
0
def refill_redis(profile_id):
    support_key = get_support_key(profile_id)
    promise_key = get_promise_key(profile_id)
    promise_ids = list(Promise.objects.filter(creator=profile_id).active().values_list('id', flat=True))
    connection.delete(promise_key)
    for prom_id in promise_ids:
        connection.lpush(promise_key, prom_id)
    promises_supported_ids = list(Promise.objects.filter(supporter__id=profile_id).values_list('id', flat=True))
    connection.delete(support_key)
    for prom_id in promises_supported_ids:
        connection.lpush(support_key, prom_id)
Esempio n. 2
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
Esempio n. 3
0
def user_promise_state(user, promise):
    """Returns the status between the promise and the currently logged
    in (or anonymous) user. Just a helper to avoid ifs/elifs to
    proliferate in our codebase.
    """

    # We got an anonymous user here, he obviously can't support
    # anything. Let's give him a chance to show the "support this"
    # button.
    if user.is_anonymous():
        return PromiseUserState.NOTHING

    # For owners
    promise_key = get_promise_key(user.profile.id)
    if promise.id in get_ids_from_redis(promise_key):
        return PromiseUserState.OWNER

    # For supporters
    support_key = get_support_key(user.profile.id)
    if promise.id in get_ids_from_redis(support_key):
        return PromiseUserState.SUPPORTER

    return PromiseUserState.NOTHING