def add_or_update_sitemap(self): page_name = self.get_page_name() existing_page_name = webnotes.conn.get_value("Website Sitemap", {"ref_doctype": self.doc.doctype, "docname": self.doc.name}) opts = webnotes._dict({ "page_or_generator": "Generator", "ref_doctype":self.doc.doctype, "docname": self.doc.name, "page_name": page_name, "link_name": self._website_config.name, "lastmod": webnotes.utils.get_datetime(self.doc.modified).strftime("%Y-%m-%d"), "parent_website_sitemap": self.doc.parent_website_sitemap, "page_title": self.get_page_title() \ if hasattr(self, "get_page_title") else (self.doc.title or self.doc.name) }) if self.meta.get_field("public_read"): opts.public_read = self.doc.public_read opts.public_write = self.doc.public_write else: opts.public_read = 1 if existing_page_name: if existing_page_name != page_name: webnotes.rename_doc("Website Sitemap", existing_page_name, page_name, ignore_permissions=True) update_sitemap(page_name, opts) else: add_to_sitemap(opts)
def after_insert(self): if self.doc.page_or_generator == "Page": website_sitemap = webnotes.conn.get_value("Website Sitemap", {"website_sitemap_config": self.doc.name, "page_or_generator": "Page"}) if website_sitemap: update_sitemap(website_sitemap, self.doc.fields) else: add_to_sitemap(self.doc.fields) else: condition = "" if self.doc.condition_field: condition = " where ifnull(%s, 0)=1" % self.doc.condition_field for name in webnotes.conn.sql_list("""select name from `tab%s` %s""" \ % (self.doc.ref_doctype, condition)): webnotes.bean(self.doc.ref_doctype, name).run_method("on_update")