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}})