Exemple #1
0
 def create(cls, name, parent=None, **details):  # create_category
     if 'slug' not in details or details['slug'] == '':
         slug = slugify_category(name, models)
     else:
         slug = slugify_category(details['slug'], models)
     ancestors = []
     parent_id = None
     if parent is not None:
         ancestors = [ancestor for ancestor in parent.ancestors]
         ancestors.append(dict(_id=parent._id, details=parent.details, name=parent.name, slug=parent.slug))
         parent_id = parent._id
     category = models.Category(
         name=i_(name),
         slug=slug,
         parent=parent_id,
         details=details,
         ancestors=ancestors)
     models.DBSession.flush()
     return category
 def create(cls, name, parent=None): #create_category
     slug = slugify_category(name, models)
     ancestors = []
     parent_id = None
     if parent is not None:
         ancestors = [ancestor for ancestor in parent.ancestors]
         ancestors.append(dict(_id=parent._id, name=parent.name, slug=parent.slug))
         parent_id = parent._id
     category = models.Category(name=i_(name), slug=slug, parent=parent_id, ancestors=ancestors)
     models.DBSession.flush()
     return category
    def edit(cls, _id, name, parent):
        slug = slugify_category(name, models)
        ancestors = []
        parent_id = None
        if parent is not None:
            ancestors = [ancestor for ancestor in parent.ancestors]
            ancestors.append(dict(_id=parent._id, name=parent.name, slug=parent.slug))
            parent_id = parent._id
        models.Category.query.update({'_id': ObjectId(_id)},
                                     {'$set': {'name': i_(name),
                                               'slug': slug,
                                               'parent': parent_id,
                                               'ancestors': ancestors}})

        for cat in models.Category.query.find({'ancestors._id': ObjectId(_id)}):
            parent = models.Category.query.find({'_id': cat.parent}).first()
            if parent:
                ancestors = [ancestor for ancestor in parent.ancestors]
                ancestors.append(dict(_id=parent._id, name=parent.name, slug=parent.slug))
                models.Category.query.update({'_id':cat._id}, {'$set': {'ancestors': ancestors}})