Example #1
0
    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()
Example #2
0
 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
     })
Example #3
0
    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
Example #4
0
 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
Example #5
0
 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()
Example #6
0
 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 })