def edit(request, dogId): dog = models.Dog.objects.get(id=dogId) ownDogs = models.Dog.objects.filter(user=request.user) return render_to_response( "editDog.html", context={ "dog": dog, "ownDogs": ownDogs, "dogForm": forms.DogForm(instance=dog, initial={"breed": "Сиба Ину"}), "birthDate": dateToStr(dog.birthDate) if dog.birthDate else "", "eventCounter": models.State.getState().eventCounter, }, context_instance=RequestContext(request) )
def dog(request, dogId): dog = models.Dog.objects.get(id=dogId) if dog.user == request.user: request.session["currentDogId"] = dogId ownDogs = models.Dog.objects.filter(user=request.user) comments = models.Comment.objects.filter(dog=dog).prefetch_related("comment_set").order_by("-eventCounter") return render_to_response( "dog.html", context={ "dog": dog, "ownDogs": ownDogs, "birthDate": dateToStr(dog.birthDate) if dog.birthDate else "", "comments": comments, "ownDog": dog.user == request.user, }, context_instance=RequestContext(request) )
def achievements(request): user = request.user dogId = request.session.get("currentDogId", None) dog = models.Dog.objects.get(id=dogId) if dogId else None ownDogs = models.Dog.objects.filter(user=user) achievementNumbers = [achievement.type for achievement in models.Achievement.objects.filter(dog=dog)] return render_to_response( "achievements.html", context={ "dog": dog, "ownDogs": ownDogs, "birthDate": dateToStr(dog.birthDate) if dog.birthDate else "", "achievements": { num: num in achievementNumbers for num in xrange(1, 5) }, "descriptions": models_settings.achievementDescriptions, "eventCounter": models.State.getState().eventCounter, }, context_instance=RequestContext(request) )
def news(request): user = request.user dogId = request.session.get("currentDogId", None) dog = models.Dog.objects.get(id=dogId) if dogId else None ownDogs = models.Dog.objects.filter(user=user) dogsWithComments = list(set(list(ownDogs) + [ dogRelation.relatedDog for dogRelation in models.DogRelation.objects.filter(dog=dog, status__in=[-1, 1]) ])) comments = models.Comment.objects.filter(dog__in=dogsWithComments).prefetch_related("comment_set").order_by("-eventCounter") return render_to_response( "news.html", context={ "dog": dog, "ownDogs": ownDogs, "birthDate": dateToStr(dog.birthDate) if dog.birthDate else "", "comments": comments, "eventCounter": models.State.getState().eventCounter, }, context_instance=RequestContext(request) )
def friends(request): params = request.REQUEST dogId = request.session.get("currentDogId", None) dog = models.Dog.objects.get(id=dogId) if dogId else None ownDogs = models.Dog.objects.filter(user=request.user) filter = params.get("filter", "all") if filter == "new": relatedDogs = [dogRelation.relatedDog for dogRelation in models.DogRelation.objects.filter(dog=dog)] relations = models.DogRelation.objects.filter(~Q(dog__in=relatedDogs), relatedDog=dog, status__in=[-1, 1]) for relation in relations: relation.dog.onWalk = models.Walk.objects.filter(dog=relation.dog, inProgress=True).exists() else: if filter == "friends": status = [1] elif filter == "enemies": status = [-1] else: status = [-1, 1] relations = models.DogRelation.objects.filter(dog=dog, status__in=status) for relation in relations: relation.relatedDog.onWalk = models.Walk.objects.filter(dog=relation.relatedDog, inProgress=True).exists() if filter == "walk": relations = [relation for relation in relations if relation.relatedDog.onWalk] return render_to_response( "friends.html", context={ "dog": dog, "ownDogs": ownDogs, "birthDate": dateToStr(dog.birthDate) if dog.birthDate else "", "relations": relations, "filter": filter, "eventCounter": models.State.getState().eventCounter, }, context_instance=RequestContext(request) )