예제 #1
0
 def thumbnail(self):
     """
     Get the thumbnail of the item
     """
     thumbnail = Item.asciify_string(os.path.join(self.get_dir(), "thumbnail_%s.png"%(os.path.basename(self.original_image_name))))
     if not (hasattr(self, 'do_not_generate') and self.do_not_generate) and not os.path.isfile(thumbnail):
         generate_thumbnail(self.original_image_name, thumbnail)
     return thumbnail
예제 #2
0
    def delete(self):
        for child in self.children:
            child.delete()

        shutil.rmtree(Item.asciify_string(self.get_dir()))

        try:
            super().delete()
        except:
            pass
예제 #3
0
 def thumbnail(self):
     """
     Get the thumbnail of the item
     """
     thumbnail = Item.asciify_string(
         os.path.join(
             self.get_dir(), "thumbnail_%s.png" %
             (os.path.basename(self.original_image_name))))
     if not (hasattr(self, 'do_not_generate')
             and self.do_not_generate) and not os.path.isfile(thumbnail):
         generate_thumbnail(self.original_image_name, thumbnail)
     return thumbnail
예제 #4
0
def create_category_dir(target, value, oldvalue, initiator):
    """
    Create of move the category directory
    """
    initiator = initiator
    base = target.get_base()
    new_dir = Item.asciify_string(os.path.join(base, value))
    if not oldvalue:
        old_dir = os.path.join(base, oldvalue)
        os.renames(old_dir, new_dir)
    else:
        try:
            os.makedirs(new_dir)
        except os.error:
            pass
예제 #5
0
    def image(self, val):
        """
        Set the image of the item
        """
        val.file.seek(0)
        ext = imghdr.what('unused', val.file.read())
        val.file.seek(0)
        path = Item.asciify_string(os.path.join(self.get_dir(), "Picture_original_%s.%s" % (self.name,ext)))
        self.original_image_name = path
        output_file = open(path, 'wb')

        while not val.file.closed:
            data = val.file.read(2 << 16)
            if not data:
                val.file.close()
            output_file.write(data)
        output_file.close()
예제 #6
0
    def view_thumbnail_over(self):
        """
        Display the thumbnail_over of a item
        """
        iditem = int(self.request.matchdict.get('idItem', -1))
        nameitem = self.request.matchdict.get('nameItem', '')

        item = Item.by_uid(iditem)

        if item is None or item.name != nameitem:
            return HTTPNotFound("Item %s-%s not found", iditem, nameitem)

        thumb = item.thumbnailover

        response = FileResponse(thumb,
                                request=self.request,
                                content_type='image/jpeg')
        return response
예제 #7
0
    def new_link(self):
        """
        Display the link form for an item
        """
        iditem = int(self.request.matchdict.get('idItem', -1))
        nameitem = self.request.matchdict.get('nameItem', None)
        item = Item.by_uid(iditem)
        if item is None:
            return HTTPNotFound()

        if item.link != None:
            form = LinkForm(self.request.POST, request=self.request, obj=item.link)
        else:
            form = LinkForm(self.request.POST, request=self.request)
        if self.request.method == 'POST' and form.validate():
            session = Picture.get_session()
            try:
                # pylint: disable=E1101
                with session.begin_nested():
                    if item.link != None:
                        link = item.link
                    else:
                        link = Link()
                        link.item = item
                    # pylint: disable=E1101
                    form.populate_obj(link)
                    if item.uid is None:
                        # pylint: disable=E1101
                        session.add(link)
                    session.flush()
                session.commit()

                url = item.view_url(self.request)
                return HTTPFound(url)
            except IntegrityError:
                errors = form.errors.get('name', [])
                errors.append("Nom déjà existant")
                form.errors['name'] = errors
        return {'tags' : Tag.all(),
                'title': 'Nouveau Lien',
                'idItem': iditem,
                'item': item,
                'form': form}
예제 #8
0
    def image(self, val):
        """
        Set the image of the item
        """
        val.file.seek(0)
        ext = imghdr.what('unused', val.file.read())
        val.file.seek(0)
        path = Item.asciify_string(
            os.path.join(self.get_dir(),
                         "Picture_original_%s.%s" % (self.name, ext)))
        self.original_image_name = path
        output_file = open(path, 'wb')

        while not val.file.closed:
            data = val.file.read(2 << 16)
            if not data:
                val.file.close()
            output_file.write(data)
        output_file.close()
예제 #9
0
 def getOriginalImageName(self, ext):
     log.error("GetOriginalImageName - %s - %s - %s", ext, self.get_dir(),
               self.name)
     return Item.asciify_string(
         os.path.join(self.get_dir(),
                      "Category_original_%s.%s" % (self.name, ext)))