Пример #1
0
def get_state(user):
    s = deserialize_entities(memcache.get("state-%s" % user.key().name()))
    if s is None:
        query = State.all()
        query.ancestor(user)
        query.filter("finished =", None)
        query.filter("started >", datetime.now() - STATE_AGE)
        s = query.get()
    return s
Пример #2
0
def deletestate():
    try:
        user_key = request.headers.get("X-SecondLife-Owner-Key")
        user = get_user(user_key)

        query = State.all()
        query.ancestor(user)
        query.filter("finished =", None)
        for s in query:
            s.finished = datetime.now()
            if s.state == "SAIL":
                s.course.finished += 1
                s.course.put()
            elif s.state == "EDIT":
                s.course.version += 1
                s.course.put()
            s.put()
        memcache.delete("state-" + user_key)
        return Response()
    except db.Timeout:
        msg = "\nState was not deleted. The database timed out."
        logging.error(msg)
        return Response(msg, status=500)
    except CapabilityDisabledError:
        msg = "\nState was not deleted. Database could not be written to."
        logging.error(msg)
        return Response(msg, status=500)
    except TransactionFailedError:
        msg = "\nState was not deleted. Transaction failed."
        logging.error(msg)
        return Response(msg, status=500)
    except Exception, e:
        if DEBUG:
            print_exc()
        logging.error(str(e))
        return Response("\nState was not deleted. %s." % e, status=500)