def filter_images(self, request, *args, **kwargs): query = request.GET.get('q') if query: if self.search_fields is None: self.search_fields = ('keywords', ) lookups = ["%s__icontains" % field for field in self.search_fields] bits = query.split() site = None if request.session[CURRENT_SITE_FILTER] != '': site = Site.query().get( pk=request.session[CURRENT_SITE_FILTER]) queryset = Image.query() for bit in bits: if site and WIDGET_SITE_SPECIFIC_IMAGES: queryset = queryset.filter(pk__in=[ str(pk) for pk in site['images'].values_list('pk', flat=True) ]) queryset = queryset.filter_if_any(*[{ lookup: bit } for lookup in lookups]) return JsonResponse(queryset.values('name')) return JsonResponse()
def render(self, name, value, attrs=None): images = Image.query().active() if 'site' in self.attrs and self.attrs[ 'site'] and WIDGET_SITE_SPECIFIC_IMAGES: images = images.filter(pk__in=[ str(pk) for pk in self.attrs['site']['images'].values_list('pk', flat=True) ]) rows = self.partition(list(images), self.images_per_row) return render_to_string('image_list.html', { 'images': rows, 'image_height': self.image_height })
def _render_images(self, source): if source is not None: regex = re.compile("\{IMAGE:(.*?)\}") list_image = regex.findall(source) for name in list_image: try: obj = Image.query().filter(name=name).get() alt = None if obj['alt_text']: alt = ' alt="%s"' % obj['alt_text'] img = '<img src="%s"%s />' % (obj['image'].url, alt) source = source.replace("{IMAGE:%s}" % name, img) except: continue return source
def filter_images(self, request, *args, **kwargs): query = request.GET.get('q') if query: if self.search_fields is None: self.search_fields = ('keywords',) lookups = ["%s__icontains" % field for field in self.search_fields] bits = query.split() site = None if request.session[CURRENT_SITE_FILTER] != '': site = Site.query().get(pk = request.session[CURRENT_SITE_FILTER]) queryset = Image.query() for bit in bits: if site and WIDGET_SITE_SPECIFIC_IMAGES: queryset = queryset.filter(pk__in = [str(pk) for pk in site['images'].values_list('pk', flat=True)]) queryset = queryset.filter_if_any(*[{lookup: bit} for lookup in lookups]) return JsonResponse(queryset.values('name')) return JsonResponse()
def render(self, name, value, attrs=None): images = Image.query().active() if 'site' in self.attrs and self.attrs['site'] and WIDGET_SITE_SPECIFIC_IMAGES: images = images.filter(pk__in = [str(pk) for pk in self.attrs['site']['images'].values_list('pk', flat=True)]) rows = self.partition(list(images),self.images_per_row) return render_to_string('image_list.html', {'images':rows, 'image_height':self.image_height })