def schedule_user_slot_manage(request, presentation_id): if request.method == "POST": if request.POST["action"] == "add": try: UserBookmark.objects.create(user=request.user, presentation_id=presentation_id) except IntegrityError: pass elif request.POST["action"] == "delete": UserBookmark.objects.filter(user=request.user, presentation=presentation_id).delete() else: return HttpResponse(status=400) db.delete(cache_key_user(request.user)) return HttpResponse(status=202) else: return HttpResponseNotAllowed(["POST"])
def render(self, context): if db: user = context["user"] key = cache_key_user(user) if user.is_authenticated() else cache_key() output = db.get(key) if output is None: with db.lock("%s-lock" % key): # check for cached data if we lost lock acquisition and # if nothing was returned we can be sure we own the lock output = db.get(key) if output is None: output = self.nodelist.render(context) db.set(key, output) else: output = self.nodelist.render(context) return output