def get_page(self, entry, level, parent): if self.progression: print 'downloading page: ' + entry.page_name.text landing = (entry.GetNodeId() == self.landing_page.id) page = Page(id=entry.GetNodeId(), kind=entry.Kind(), title=entry.title.text, author_name=entry.author[0].name.text, author_email=entry.author[0].email.text, updated=entry.updated.text, revision=entry.revision.text, pagename=entry.page_name.text, parent=parent, etag=entry.etag, landing=landing) if self.etag_old: self.etag_old.check_page(page.id, page.path) if page.kind == LIST_PAGE: list_page = ListPage() for header in entry.data.column: list_page.add_header(header.name) page.list_items = list_page content_str = self.request_page_content(entry.GetNodeId()) self.get_site_content(level=level + 1, parent=page) if page.landing: for attachment in page.attachments: attachment.link = './' + self.landing_page.rel_path + '/' + attachment.name if page.kind == ANNOUNCEMENT: content_str2 = content_str content_str2 = self.replace_paths(page_content=content_str2, level=level - 1, page=page) for attachment in page.attachments: content_str2 = self.replace_attachment_source( page=content_str2, attachment=attachment, parent=page, as_announcement=True) page.embedded_content = content_str2 content_str = self.replace_paths(page_content=content_str, level=level, page=page) for attachment in page.attachments: content_str = self.replace_attachment_source(page=content_str, attachment=attachment, parent=page) page.content = content_str parent.add_child(page)
def get_page(self, entry, level, parent): if self.progression: print 'downloading page: ' + entry.page_name.text landing = (entry.GetNodeId() == self.landing_page.id) page = Page(id=entry.GetNodeId(), kind=entry.Kind(), title=entry.title.text, author_name=entry.author[0].name.text, author_email=entry.author[0].email.text, updated=entry.updated.text, revision=entry.revision.text, pagename=entry.page_name.text, parent=parent, etag=entry.etag, landing=landing) if self.etag_old: self.etag_old.check_page(page.id, page.path) if page.kind == LIST_PAGE: list_page = ListPage() for header in entry.data.column: list_page.add_header(header.name) page.list_items = list_page content_str = self.request_page_content(entry.GetNodeId()) self.get_site_content(level=level+1, parent=page) if page.landing: for attachment in page.attachments: attachment.link = './' + self.landing_page.rel_path + '/' + attachment.name if page.kind == ANNOUNCEMENT: content_str2 = content_str content_str2 = self.replace_paths(page_content=content_str2, level=level-1, page=page) for attachment in page.attachments: content_str2 = self.replace_attachment_source(page=content_str2, attachment=attachment, parent=page, as_announcement=True) page.embedded_content = content_str2 content_str = self.replace_paths(page_content=content_str, level=level, page=page) for attachment in page.attachments: content_str = self.replace_attachment_source(page=content_str, attachment=attachment, parent=page) page.content = content_str parent.add_child(page)
def __page_save(self): # Retrieve/check data. page_str = self.api.get_data().get_str('page') new = self.api.post_data().get_bool('create') name = self.api.post_data().get_str('name', '') layout = self.api.post_data().get_str('layout', '') if name == '': self.__errors.append(_('Page name is missing')) if layout == '': self.__errors.append(_('Layout is missing')) if len(self.__errors) > 0: return False # Fetch the page from the database, or instanciate a new one. if new: page = Page(name) parent = page_str and self.api.get_requested_page() or None else: page = self.api.get_requested_page() assert page is not None # Check whether the caller has permission to edit this page. if not self.api.current_user_.may('edit'): err = _('Insufficient rights to change this page.') self.__errors.append(err) return False # Parse the layout to replace the extension names by handles. parser = LayoutParser(layout) parser.set_data_handler(self._layout_data_handler) parser.parse() if len(self.__errors) > 0: return False # Save the page. page.set_name(name) page.set_attribute('layout', parser.layout) if new and not self.page_db.add(parent, page): self.__errors.append(_('Error while creating the page.')) elif not self.page_db.save(page): self.__errors.append(_('Error while saving the page.')) return False self.__errors.append(_('Page saved.')) self.api.set_requested_page(page) return True