Esempio n. 1
0
    def pop(self, id):
        '''
        Remove a node from portfolio tree
        '''
        el = self.element_objects.get(id, None)
        if el and el.editable:
            self.element_objects.pop(id, None)
            self.elements.pop(id, None)
            p = el.parent
            if p:
                listpop(p.children, id)

            children = el.children[:]
            for cid in children:
                c = self.element_objects.get(cid, None)
                c.parent = None
                if not c:
                    continue
                c.setparent(p)

                # And now the database stuff
                if isinstance(c.dbobj, Portfolio):
                    c.dbobj.setparent(p.dbobj)
                elif isinstance(p.dbobj, Portfolio):
                    p.dbobj.position.add(c.dbobj)

            if not p.isfund:
                p.dbobj.save()

            el.dbobj.delete()

            self.view.save()
        else:
            el = None
        return el
Esempio n. 2
0
 def pop(self, id):
     '''
     Remove a node from portfolio tree
     '''
     el = self.element_objects.get(id,None)
     if el and el.editable:
         self.element_objects.pop(id,None)
         self.elements.pop(id,None)
         p = el.parent
         if p:
             listpop(p.children, id)
         
         children = el.children[:]
         for cid in children:
             c = self.element_objects.get(cid,None)
             c.parent = None
             if not c:
                 continue
             c.setparent(p)
             
             # And now the database stuff
             if isinstance(c.dbobj,Portfolio):
                 c.dbobj.setparent(p.dbobj)
             elif isinstance(p.dbobj,Portfolio):
                 p.dbobj.position.add(c.dbobj)
                 
         if not p.isfund:
             p.dbobj.save()
             
         el.dbobj.delete()
         
         self.view.save()
     else:
         el = None
     return el
Esempio n. 3
0
 def removechild(self, el):
     el.detach(self)
     return listpop(self.children, el.id)
Esempio n. 4
0
 def removechild(self, el):
     el.detach(self)
     return listpop(self.children, el.id)