Пример #1
0
 def commonEmbedRemoteObject(self, item, path, mode, view, showid):
     "common part of embedRemoteObject for profile and non profile mode"
     formatid = '<p>%s</p>%s'
     if path:
         if path[0] == '/':
             path = path[1:]
         item = item.restrictedTraverse(path)
         if utility.isinstance(item, base.Base):
             if showid:
                 return formatid % (item.getCompoundDoc().getId(), item(mode=mode))
             else:
                 return item(mode=mode)
     elif utility.isinstance(item, base.Base):
         self.setDrawMode(mode)
         string = item.render(name=view, mode=mode)
         if showid:
             return formatid % (item.getId(), string)
         else:
             return string
     return ''
Пример #2
0
 def commonEmbedRemoteObject(self, item, path, mode, view, showid):
     "common part of embedRemoteObject for profile and non profile mode"
     formatid = '<p>%s</p>%s'
     if path:
         if path[0] == '/':
             path = path[1:]
         item = item.restrictedTraverse(path)
         if utility.isinstance(item, base.Base):
             if showid:
                 return formatid % (item.getCompoundDoc().getId(),
                                    item(mode=mode))
             else:
                 return item(mode=mode)
     elif utility.isinstance(item, base.Base):
         self.setDrawMode(mode)
         string = item.render(name=view, mode=mode)
         if showid:
             return formatid % (item.getId(), string)
         else:
             return string
     return ''
Пример #3
0
 def edit(self, *args, **kw):
     "Inline edit short object"
     temp = []
     format = '<p>%(name)s %(form)s</p>\n'
     list = [''] + [id for id,object in self.getCompoundDoc().objectItems() if utility.isinstance(object, SimpleList)]
     temp.append(format % {'name':'To', 'form':self.option_select(list, 'listName', [self.listName])})
     temp.append(format % {'name':'From', 'form':self.input_text('listFrom', self.listFrom)})
     temp.append(format % {'name':'Subject', 'form':self.input_text('subject', self.subject)})
     temp.append(format % {'name':'Header', 'form':self.text_area('header', self.header)})
     temp.append(format % {'name':'Message', 'form':self.text_area('message', self.message)})
     temp.append(format % {'name':'Footer', 'form':self.text_area('footer', self.footer)})
     temp.append(format % {'name':'Mail Server', 'form':self.input_text('server', self.server)})
     temp.append(self.create_button("sendMail", "Send All Messages"))
     return ''.join(temp)
Пример #4
0
 def edit(self, *args, **kw):
     "Inline edit short object"
     temp = []
     format = '<p>%(name)s %(form)s</p>\n'
     list = [''] + [
         id for id, object in self.getCompoundDoc().objectItems()
         if utility.isinstance(object, SimpleList)
     ]
     temp.append(
         format % {
             'name': 'To',
             'form': self.option_select(list, 'listName', [self.listName])
         })
     temp.append(format % {
         'name': 'From',
         'form': self.input_text('listFrom', self.listFrom)
     })
     temp.append(format % {
         'name': 'Subject',
         'form': self.input_text('subject', self.subject)
     })
     temp.append(format % {
         'name': 'Header',
         'form': self.text_area('header', self.header)
     })
     temp.append(format % {
         'name': 'Message',
         'form': self.text_area('message', self.message)
     })
     temp.append(format % {
         'name': 'Footer',
         'form': self.text_area('footer', self.footer)
     })
     temp.append(format % {
         'name': 'Mail Server',
         'form': self.input_text('server', self.server)
     })
     temp.append(self.create_button("sendMail", "Send All Messages"))
     return ''.join(temp)
Пример #5
0
 def getAllEvents(self):
     "Return a list of all items that are a BaseEvent"
     return [
         object for object in self.objectValues()
         if utility.isinstance(object, BaseEvent)
     ]
Пример #6
0
 def getAllEvents(self):
     "Return a list of all items that are a BaseEvent"
     return [object for object in self.objectValues() if utility.isinstance(object, BaseEvent)]
Пример #7
0
    def objectLoadCDoc(self, cdoc):
        "load another compounddoc into this compounddoc and treat it as a template"
        replaceList = ['DisplayManager', 'EventManager', 'TabManager', 'CatalogManager', 'MethodManager', 'profileTypeKeep', 'objectConfig', 'masterLocation', 'displayMap', 'defaultDisplay']
        
        replaceList.extend(self.updateReplaceList)
        
        noreplace = ['manage_workspace', 'manage_main', 'manage', 'manage_edit_form', 'ControlPanel', 'submitChanges']
        objectIds = [i for i in cdoc.objectIds() if i not in noreplace]

        if cdoc.masterLocation is not None and cdoc.masterLocation != self.getPath():
            master = self.unrestrictedTraverse(cdoc.masterLocation, None)
            if master is not None and master.meta_type == 'CompoundDoc' and master.DisplayManager is not None:
                self.setObject('DisplayManager', aq_base(master.DisplayManager))
        replaceList.remove('DisplayManager')
        noreplace.append('DisplayManager')
        #do replacemants
        for i in replaceList:
            if i in cdoc.__dict__:
                temp = aq_base(getattr(cdoc, i))
                self.delObjects([i])
                self.setObject(i, temp)
                if i in objectIds:
                    objectIds.remove(i)
            else: #if the item is a replacement item and that item is not in the profile doc remove that attribute
                self.delObjects([i])
                if i in objectIds:
                    objectIds.remove(i)
        
        #add items that we don't have
        for i in copy.copy(objectIds):
            if not i in self.__dict__:
                self.delObjects([i])
                self.setObject(i, aq_base(getattr(cdoc, i)))
                objectIds.remove(i)

        #replace other items that we do have
        for i in copy.copy(objectIds):
            if i in self.__dict__:
                temp = aq_base(getattr(cdoc, i))
                local = getattr(self, i)
                if temp.meta_type != local.meta_type:
                    self.delObjects([i])
                    self.setObject(i, temp)
                elif local.meta_type == 'CompoundDoc':
                    #if the item is a CompoundDoc it must be treated differently
                    local.objectLoadCDoc(temp)
                elif utility.isinstance(local, BaseObject):
                    #only use loadData on items derived from BaseObject
                    local.loadData(temp)
                objectIds.remove(i)

        typeKeepList = self.getProfileTypeKeep()
        keeplist = cdoc.__dict__.keys()

        assistants = self.aq_parent.objectValues(['CreationAssistant', 'CreationAssistantString', 'CreationAssistantDTML'])
        if assistants:
            for i in assistants:
                if i.idTypeMapping is not None:
                    keeplist.extend(i.idTypeMapping.keys())
        available = cdoc.availableObjects()
        temp = [(name, getattr(cdoc, 'meta_type', None)) for name, cdoc in self.objectItems()]
        self.delObjects([name for name, meta_type in temp if meta_type in available and name not in keeplist and meta_type not in typeKeepList])

        if assistants:
            for i in assistants:
                i.setupObject(self)