示例#1
0
	def after_insert(self):
		if self.doc.page_or_generator == "Page":
			website_route = frappe.db.get_value("Website Route", 
				{"website_template": self.doc.name, "page_or_generator": "Page"})
			
			opts = self.doc.fields.copy()
			opts.update({"public_read": 1})
						
			if website_route:
				update_sitemap(website_route, opts)
			else:
				add_to_sitemap(opts)
	
		else:
			condition = ""
			if self.doc.condition_field:
				condition = " where ifnull(%s, 0)=1" % self.doc.condition_field
						
			for name in frappe.db.sql_list("""select name from `tab{doctype}` 
				{condition} order by idx asc, {sort_field} {sort_order}""".format(
					doctype = self.doc.ref_doctype,
					condition = condition,
					sort_field = self.doc.sort_field or "name",
					sort_order = self.doc.sort_order or "asc"
				)):
				bean = frappe.bean(self.doc.ref_doctype, name)
				
				# regenerate route
				bean.run_method("on_update")
示例#2
0
    def after_insert(self):
        if self.page_or_generator == "Page":
            website_route = frappe.db.get_value(
                "Website Route", {"website_template": self.name, "page_or_generator": "Page"}
            )

            opts = self.as_dict()
            opts.update({"public_read": 1})

            if website_route:
                update_sitemap(website_route, opts)
            else:
                add_to_sitemap(opts)

        else:
            condition = ""
            if self.condition_field:
                condition = " where ifnull(%s, 0)=1" % self.condition_field

            for name in frappe.db.sql_list(
                """select name from `tab{doctype}` 
				{condition} order by idx asc, {sort_field} {sort_order}""".format(
                    doctype=self.ref_doctype,
                    condition=condition,
                    sort_field=getattr(self, "sort_field", "name"),
                    sort_order=getattr(self, "sort_order", "asc"),
                )
            ):
                doc = frappe.get_doc(self.ref_doctype, name)

                # regenerate route
                doc.run_method("on_update")
示例#3
0
	def add_or_update_sitemap(self):
		page_name = self.get_page_name()

		existing_site_map = frappe.db.get_value("Website Route", {"ref_doctype": self.doctype,
			"docname": self.name})

		if self.modified:
			lastmod = frappe.utils.get_datetime(self.modified).strftime("%Y-%m-%d")
		else:
			lastmod = now()

		opts = frappe._dict({
			"page_or_generator": "Generator",
			"ref_doctype":self.doctype,
			"idx": self.idx,
			"docname": self.name,
			"page_name": page_name,
			"link_name": self.website_template.name,
			"lastmod": lastmod,
			"parent_website_route": self.get_parent_website_route(),
			"page_title": self.get_page_title(),
			"public_read": 1 if not self.website_template.no_sidebar else 0
		})

		self.update_permissions(opts)

		if existing_site_map:
			idx = update_sitemap(existing_site_map, opts)
		else:
			idx = add_to_sitemap(opts)

		if idx!=None and self.idx != idx:
			frappe.db.set(self, "idx", idx)
示例#4
0
    def add_or_update_sitemap(self):
        page_name = self.get_page_name()

        existing_site_map = frappe.db.get_value("Website Route", {
            "ref_doctype": self.doctype,
            "docname": self.name
        })

        if self.modified:
            lastmod = frappe.utils.get_datetime(
                self.modified).strftime("%Y-%m-%d")
        else:
            lastmod = now()

        opts = frappe._dict({
            "page_or_generator":
            "Generator",
            "ref_doctype":
            self.doctype,
            "idx":
            self.idx,
            "docname":
            self.name,
            "page_name":
            page_name,
            "link_name":
            self.website_template.name,
            "lastmod":
            lastmod,
            "parent_website_route":
            self.get_parent_website_route(),
            "page_title":
            self.get_page_title(),
            "public_read":
            1 if not self.website_template.no_sidebar else 0
        })

        self.update_permissions(opts)

        if existing_site_map:
            idx = update_sitemap(existing_site_map, opts)
        else:
            idx = add_to_sitemap(opts)

        if idx != None and self.idx != idx:
            frappe.db.set(self, "idx", idx)