def get_object(self, queryset=None): if queryset is None: queryset = self.get_queryset() id = self.kwargs.get(self.pk_url_kwarg) image = ImageService.get_object(id, queryset) if image is None: raise Http404 return image
def autocomplete_usernames(request): if 'q' not in request.GET: return HttpResponse(simplejson.dumps([])) if request.user.is_anonymous: if 'token' not in request.GET: return HttpResponse(simplejson.dumps([])) try: Token.objects.get(key=request.GET.get('token')) except Token.DoesNotExist: return HttpResponse(simplejson.dumps([])) q = request.GET['q'] referer_header = request.META.get('HTTP_REFERER', '') from_forums = '/forum' in referer_header from_comments = re.match(r'%s\/?([a-zA-Z0-9]{6})\/.*' % settings.BASE_URL, referer_header) users = [] results = [] limit = 10 # Replace non-breaking space with regular space q = q.replace(chr(160), ' ') if from_forums: referer = request.META.get('HTTP_REFERER') if '?' in referer: slug = os.path.basename(os.path.normpath(referer.rsplit('/', 1)[0])) else: slug = os.path.basename(os.path.normpath(referer)) users = list(UserProfile.objects.filter( Q(user__posts__topic__slug=slug) & (Q(user__username__icontains=q) | Q(real_name__icontains=q)) ).distinct()[:limit]) elif from_comments: image_id = from_comments.group(1) image = ImageService.get_object(image_id, Image.objects_including_wip.all()) users = list(UserProfile.objects.filter( Q( Q(user__image=image) | Q( Q(user__comments__object_id=image.id) & Q(user__comments__deleted=False) ) ) & Q( Q(user__username__icontains=q) | Q(real_name__icontains=q) ) ).distinct()[:limit]) users = UtilsService.unique(users + list(UserProfile.objects.filter( Q(user__username__icontains=q) | Q(real_name__icontains=q) ).distinct()[:limit]))[:limit] for user in users: avatar = get_primary_avatar(user, 40) if avatar is None: avatar_url = get_default_avatar_url() else: avatar_url = avatar.get_absolute_url() results.append({ 'id': str(user.id), 'username': user.user.username, 'realName': user.user.userprofile.real_name, 'displayName': user.user.userprofile.real_name if user.user.userprofile.real_name else user.user.username, 'avatar': avatar_url, }) return HttpResponse(simplejson.dumps(results))
def get_image_last_modified(request, id, r): try: image = ImageService.get_object(id, Image.objects_including_wip) return image.updated except (Image.DoesNotExist, AttributeError): return DateTimeService.now()